我想列出所有值在相邻单元格值的范围内:1)时间差小于24小时,其他单元格2)等于特定文本

TABLE + DESIRED RESULT这是我得到的,但不知道为什么它不起作用:

在Sheet2中input的公式!A2 =

index($A$2:$A$100, match(0,if(OR(AND(now()-Sheet1!O2<1,D2="closed"),D2="Pending",""),0)) 

向我展示Sheet1中的单元格列表! 当条件1 :现在时间在O2 <1天&D2 =“closures”

条件2 :D2 =“待定”

谢谢你们的帮助

好吧,我想我知道了,这是一个数组公式,所以你想将它复制到单元格G2中,然后按下CTRL + SHIFT + ENTER,然后将公式向下拖动到足以容纳所有结果。 我把条件从“打开,等待,挂起或在过去24小时内closures”更改为“不超过24小时前closures”,以便阅读

G2的公式是:

 =IFERROR(INDEX(A$2:A$11, SMALL(IF(NOT((C$2:C$11="Closed")*(NOW()-D$2:D$11>1)), ROW(A$2:A$11)-ROW(A$2)+1), ROWS(A$2:A2))), "") 

SMALL函数看起来像这样= SMALL(array,n)并返回数组的第n个最小元素。 在我们的例子中,n由ROWS(A $ 2:A2)给出,它将给出结果输出中当前行的行号。 即你的结果的第一行将包含第一个最小的数字,第二行将包含第二个最小的数字等等,诀窍是它没有给予最小的数字在ID列表中,但它提供的数组中最小的数字定义这一行:

 IF(NOT((C$2:C$11="Closed")*(NOW()-D$2:D$11>1)), ROW(A$2:A$11)-ROW(A$2)+1 

这部分有点复杂,因为它的所有数组公式/逻辑。 请注意*在这个上下文中表示一个逻辑与。 如果您想更好地理解它,可以在Excel中的公式栏中突出显示公式的这一部分,然后按F9,这将显示数组的值。 点击单元格G2并突出显示上面的行给出了这个:

{1; FALSE; 3; 4; 5; FALSE; FALSE; 8; 9; 10}

您可以看到生成的数组包含符合条件的行的行号,对于不符合条件的行则包含FALSE。 INDEX和SMALL函数然后显示第一个最小值的行的id,然后是第二个等,用FALSE来忽略不符合条件的行。

语法错误,你有:

 AND(now()-Sheet1!O2<1, D2="closed") 

这很好,问题在于你的OR语句:

 OR(AND(now()-Sheet1!O2<1,D2="closed"),D2="Pending","") 

最后的括号应该在我相信的最后一个逗号之前。 目前你有一个带有3个参数的OR语句,最后一个是“”,这不会给你想要的东西。 我认为你打算将IF作为IF声明的结果而不是OR声明的条件,试试这个:

 if(OR(AND(now()-Sheet1!O2<1, D2="closed"), D2="Pending"),"",0)