INDEX( SMALL( IF(... 今天结果是 #NUM,昨天是正确的

INDEX( SMALL( IF(... 今天结果是 #NUM,昨天是正确的
{=INDEX(Sheet1!$A:$M,SMALL(IF(Sheet1!$O:$O=TRUE,ROW(Sheet1!$O:$O)),ROW(1:1)),1)}

昨天它充满了有用的值,但今天#NUM每个单元格都有错误。不知道哪里出了问题?有什么想法吗?

正在检查的“TRUE”基于逻辑表(列 O),该逻辑表检查 4 列是否符合条件。我这样做是因为数组公式中的 AND/OR 存在问题。而且我还不太擅长使用 Excel。这是 Sheet 1 上列 O 中的代码。

=IF(AND(OR($I:$I="D",$I:$I="none",$I:$I="NA"),
        OR($J:$J="D",$J:$J="none",$J:$J="NA"),
        OR($K:$K="D",$K:$K="none",$K:$K="NA"),
        OR($L:$L="D",$L:$L="none",$L:$L="NA")),
     TRUE,FALSE)

因此,如果这是 TRUE,则给我找到 TRUE 的行,并从第一行开始创建一个行数组 (ROW(1:1))。然后,它会给我 INDEX 范围第一列中的相应值。

答案1

原始公式是数组公式。也就是说,要正常工作,必须使用Ctrl++组合键输入。正确输入后,公式将显示在公式栏中。如果缺少这个,那么您已经确定了问题所在。ShiftEnter{=...}

数组公式非常烦人。如果您双击包含数组公式的单元格,或者在选中此类单元格的情况下单击公式栏,然后按Enter,您将删除数组条目并破坏公式。这解释了为什么前一分钟还在运行的公式可能毫无理由地停止运行。

要解决此问题,请选择包含公式的单元格,单击公式栏,然后按Ctrl+ Shift+ Enter

相关内容