我正在尝试过滤掉可能在特定时间段内发生的事件。这些事件超过一天,因此它们具有开始日期和结束日期。
我认为与我正在寻找的内容最接近的示例是来自以下链接:https://www.extendoffice.com/documents/excel/4647-excel-extract-records-between-two-dates.html。唯一的区别是,工作表1中的数据还具有开始日期和结束日期,它们之间的差异大于一天的差异,而不是单一的一天。
=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5))))
问题在于,当前的开始日期可能与研究日期的范围不一致,但是工作表1中数据的结束日期确实在这些范围之内。
我希望做的一个例子是:
但是,我希望日期不再是一天,而是希望有一种方法可以对开始日期为和结束日期的数据进行排序。
答案 0 :(得分:0)
此解决方案似乎有效:
假设在Sheet1中,A列和B列分别包含开始日期和结束日期。
将Sheet2 C1中的公式更改为此,并按照示例中给出的其他说明进行操作。
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2)*(Sheet1!$B$2:$B$22>=A2)*(Sheet1!$B$2:$B$22<=B2))
注意:如果这不是您期望的输出,请共享您的期望输入和输出,而不是样本中的输出。
修改:
根据您的样本图像,我更新了公式。希望这会有所帮助。
H2单元格的公式:
=SUMPRODUCT((($B$2:$B$16>=F2)*($B$2:$B$16<=G2)*($C$2:$C$16>=F2)*($C$2:$C$16<=G2))+((B2:B16<F2)*(C2:C16>=F2)*(C2:C16<=G2))+((B2:B16>=F2)*(B2:B16<=G2)*(C2:C16>G2))+((B2:B16<F2)*(C2:C16)>G2))
单元格F5的公式:
=IF(ROWS(F$5:F5)>$H$2,"",INDEX(B$2:B$16,SMALL(IF((($B$2:$B$16>=$F$2)*($B$2:$B$16<=$G$2)*($C$2:$C$16>=$F$2)*($C$2:$C$16<=$G$2))+(($B$2:$B$16<$F$2)*($C$2:$C$16>=$F$2)*($C$2:$C$16<=$G$2))+(($B$2:$B$16>=$F$2)*($B$2:$B$16<=$G$2)*($C$2:$C$16>$G$2))+(($B$2:$B$16<$F$2)*($C$2:$C$16)>$G$2),ROW(B$2:B$16)-ROW($B$2)+1),ROWS(F$5:F5))))
在F5中使用公式时,请不要忘记按 Shift + Ctrl + Enter 。 然后扩展到其他单元格。