Excel – 列出两个date之间所有行的数据,同时忽略空白条目

我无法绕过所需的公式来返回Excel中所有行的数据列表,这些数据位于两个特定date之间。

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中指定开始date,在单元格C3中指定结束date。

我想在sheet2中显示一个列表,该列表给出了表1中所有在该date范围内的参考编号的列表。 我也希望它忽略任何空白的单元格,但不包含参考号码。

我已经尝试了一些东西来得到这个工作,我认为使用INDEX函数的数组公式可能是最好的select,但是我正在努力获得date范围方面的工作。

有人能帮忙吗?

谢谢

我build议您将数据格式化为表格,如果尚未使索引函数更容易阅读。

下面的公式应该做你需要的。 if语句中的*就像一个“和”。 在公式的结尾附近是源表格和表格顶部之间的行数。 公式末尾的最后1是你想要从一个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),"") 

使用公式

我不build议将这个公式从一个单元复制并粘贴到另一个单元,而是复制公式文本并粘贴,以避免公式的部分发生变化。

请注意公式末尾的行(1:1),它将指定匹配结果中的哪一行将从数据中提取出来,并且在向公式向下自动填充公式时,它应该递增。

格式如表格

结果的屏幕截图