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

时间:2016-10-10 23:44:40

标签: excel excel-formula

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

在Sheet2中输入的公式!A2 =

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

显示Sheet1中的单元格列表!当条件1 时:现在 - O2中的时间&lt; 1天&amp; D2 =“关闭”

条件2 :D2 =“待定”

感谢帮助人员

2 个答案:

答案 0 :(得分:0)

语法错误 你有:

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

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

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

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

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

答案 1 :(得分:0)

好吧我想我得到了它,这是一个数组公式,所以你想把它复制到单元格G2并按CTRL + SHIFT + ENTER,然后将公式拖得足够远以保存所有结果。我将条件从“打开,等待,等待或在过去24小时内关闭”更改为“未关闭超过24小时前”以便于阅读

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

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

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

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