Excel-列出两个日期之间所有行的数据,同时忽略空白项

Excel-列出两个日期之间所有行的数据,同时忽略空白项,excel,indexing,Excel,Indexing,我无法理解返回excel中位于两个特定日期之间的所有行的数据列表所需的公式 表1包含以下数据: 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

我无法理解返回excel中位于两个特定日期之间的所有行的数据列表所需的公式

表1包含以下数据:

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
在表2中,我在单元格C2中指定了开始日期,在单元格C3中指定了结束日期

我想在表2中显示一个列表,该列表给出了表1中属于该日期范围的所有参考号的列表。但是,我也希望它忽略任何空白的单元格,并且不包含参考号

我尝试了一些方法来实现这一点,我认为使用索引函数的数组公式可能是最好的选择,但我正在努力使日期范围方面发挥作用

有人能帮忙吗


谢谢

如果您还没有将数据格式化为表格,我建议您将数据格式化为表格,因为它使索引函数更易于阅读

下面的公式可以满足您的要求。if语句中的*类似于“and”-公式末尾附近的4是源表与其所在工作表顶部之间的行数。公式末尾的最后一个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(索引(表1,小)(如果((表1[日期]>=$C$2)*)(表1[日期]非常感谢Gordon。有没有一种方法可以在不将数据格式化为表格的情况下实现这一点?我很欣赏您这样做的逻辑,但是我希望能够将其应用到需要以其他几种方式使用的非常大的数据集,而其他用户不希望我以任何方式修改数据,包括修改格式……您可以o在不转换为表格的情况下执行。将表格中的第一个和最后一个表格1替换为要索引的范围。替换表格1[日期]wiith a range for the Date(日期)列与Reference(参考)列相同。我会将新公式添加到我的答案中,以便您可以看到它的外观。转换为表格并不意味着您必须更改数据格式(colous等)。更多的是定义数据集,以便excel能够理解结构。如果您不使用表,则可能需要使范围超出数据集,以避免每次添加新数据时都必须更改范围。如果您将数据转换为表,则无需执行此操作。非常感谢Gordon。我花了一段时间才完成o让我的头脑围绕解决方案,但它工作得很好!我刚刚尝试将其应用于包含约2000行数据的较大电子表格。它通过ok提取一些数据行,但是,如果源工作表中没有数据,它会保留一些行为空或带有零。最好我希望此显示不间断的list.我对公式的修改是否有明显错误?=IFERROR(索引)(表1!$A$3:$V$6000,小)(如果((表1!$C$3:$C$6000>)=Crynodeb!$D$3)*(表1!$C$3:$C$6000)
=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),"")