我无法理解返回两个特定日期之间excel中所有行的数据列表所需的公式。
Sheet1包含以下数据:
Date Region Reference
01/01/2015 B 4458
01/02/2015 B 6635
01/02/2016 A 3175
01/03/2016 C 2458
01/03/2016 A 2194
01/04/2016 A 3594
01/04/2016 C
01/05/2016 C 1654
12/05/2016 B 3648
01/06/2016 B
01/06/2016 B 3296
在Sheet2中,我在单元格C2中指定开始日期,在单元格C3中指定结束日期。
我想在sheet2中显示一个列表,它列出了sheet1中属于该日期范围的所有参考号。但我也希望它忽略任何空白且不包含参考编号的单元格。
我已经尝试了一些方法来实现这一点,我认为使用INDEX函数的数组公式可能是最好的选择,但我很难让日期范围方面起作用。< / p>
有人能帮忙吗?
由于
答案 0 :(得分:1)
我建议您将数据格式化为表格,如果还没有,因为它使索引函数更容易阅读。
下面的公式应该符合您的要求。 if语句中的*就像“和”。公式末尾附近的-4是源表和它所在表单顶部之间的行数。公式末尾的最后一个是您希望从vlookup中获取数据的列。记得使用 SHIFT + CTRL + ENTER 使其成为一个数组公式。
=IFERROR(INDEX(Table1,SMALL(IF((Table1[Date]>=$C$2)*(Table1[Date]<=$C$3)*(Table1[Reference]<>""),ROW(Table1)-4),ROW(1:1)),1),"")
如果您不想格式化为表
,则为公式=IFERROR(INDEX(Sheet2!$C$5:$E$15,SMALL(IF((Sheet2!$C$5:$C$15>=$C$2)*(Sheet2!$C$5:$C$15<=$C$3)*(Sheet2!$E$5:$E$15<>""),ROW(Sheet2!$C$5:$E$15)-4),ROW(1:1)),1),"")
使用公式
我不建议将此公式从一个单元格复制并粘贴到另一个单元格,而是复制公式文本并粘贴它以避免公式的某些部分发生变化。
注意公式末尾的ROW(1:1),它指定匹配结果中的哪一行将从数据中提取,并且当您在表格下自动填充公式时它应该递增。