Excel函数,如果它们落在2个date范围内,则复制行

所以在我的Excel工作表的顶部,我有2个单元格, A2B2 ,人们可以input开始date和结束date。

在一个单独的工作表中,我列出了列A和列B中开始和结束date的大量列表,以及列D到列G每个“事件”的相应数据。 我需要我的函数来复制开始date落在两个指定date之间的所有行,并将数据复制到单元格A4 - G4A100 - G100的第一个表单。 (我只是select100作为一个大数字,以确保数据放置的区域足够大)

我猜这个function我需要包括INDEXfunction,但我只知道如何使用它来查找一个数据单元,而不是如何复制整个范围的单元格。

谁能帮忙?

没有帮手列需要。

将此公式input到单元格A4中:

 =IFERROR(INDEX(data!D$2:D$9999,SMALL(IF((data!$A$2:$A$9999>=$A$2)*(data!$A$2:$A$9999<=$B$2),ROW(data!$D$2:$D$9999),9E+99),ROW(1:1))-1),"") 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

现在将公式复制到范围B4:D4。

现在将A4:D4复制到范围A5:D100。

而已。

假设数据表中的列C是空白的,可以自由添加公式。

我们还假设数据从第2行开始。

然后下面的公式可以放在C2&复制下来:

 =IF(AND(A2>=Sheet1!$A$2,B2<=Sheet1!$B$2),C1+1,C1) 

基本上是说,如果当前logging的开始date大于或等于用户正在查找的date,且结束date同样在范围内,则重复logging,否则不重复logging。

在这一点上用户表可以有一个简单的VlookUp如下:

在D1: =VLOOKUP(ROW($A1),Sheet2!$C:$G,COLUMN(B$1),0)

把它复制到G然后放下你喜欢的许多行。