切片表以根据日期间隔(Excel)生成数组

问题描述 投票:0回答:2

我在Excel表格上有下表:

AN_DATE     PORT_RET     PORT_MKTVALUE 
1-Jul-15    0.04%        749,708,691.20 
2-Jul-15    0.10%        750,456,134.73 
3-Jul-15    -0.01%       750,387,777.34 
6-Jul-15    -0.13%       749,424,519.97 
7-Jul-15    -0.04%       749,093,484.64 
8-Jul-15    -0.19%       747,704,970.94 
9-Jul-15    0.11%        747,189,760.25 
10-Jul-15   0.30%        749,417,098.50 

是否可以使用公式在两个日期之间提取数组?例如我想要一个在7月7日到10日之间返回PORT_RET的公式,结果数组应该是(因为在一组新的单元格中):

7-Jul-15    -0.04%
8-Jul-15    -0.19%
9-Jul-15    0.11%
10-Jul-15   0.30%
arrays excel excel-formula
2个回答
0
投票

将2015年7月7日放在Z1和2015年7月10日的Z2中,创建一个命名范围(公式,定义名称,名称管理器),其中包含以下内容:

=index('sheet1'!$A:$B, 'sheet1'!$Z$1, 0):index('sheet1'!$A:$B, 'sheet1'!$Z$2, 0)

这会创建'sheet1'的'切片'!$ A:$ B等于'sheet1'!$ A $ 6:$ B $ 9。


0
投票

将您的开始和结束日期放在E1:F1中,将其放在第一个单元格中并向下复制:

=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$9)/(($A$2:$A$9>=$E$1)*($A$2:$A$9<=$F$1)),ROW(1:1))),"")

enter image description here


现在我想要清晰的原因,说你想要PORT_RET的MEDIAN用于该范围。您可以轻松跳过辅助单元格并使用此数组公式直接引用数据:

=MEDIAN(IF(($A$2:$A$9>=$E$1)*($A$2:$A$9<=$F$1),$B$2:$B$9))

作为数组公式,必须使用Ctrl-Shift-enter而不是Enter来确认。

正如你在下面看到的,我得到了相同的答案,而不需要辅助列。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.