如何识别值低于 0 的列

如何识别值低于 0 的列

我正在尝试找出一个公式来确定哪一列的值低于 0。

我有数千行和数十列,因此手动执行此操作不是一个选择

因此,如果我的列和值如下:

    A   B   C   D
1   Jul Aug Sep Oct
2   25  10  5   -2
3   10  2   -6  -10

因此,对于第 2 行,我希望返回结果“Oct”(或第 4 列为 4),因为这是值降至 0 以下的月份。对于第 3 行,我希望返回值“Sep”(或第 3 列为 3)。

有任何想法吗?

答案1

使用 INDEX/MATCH 可能会更简单一些,例如 AV10 中的这个数组公式

=INDEX(AW$1:BM$1,MATCH(TRUE,AW10:BM10<0,0))

已确认CTRL++SHIFTENTER

或者,如果您不想使用 CSE,则添加另一个这样的 INDEX 函数,这样公式就可以“正常”输入

=INDEX(AW$1:BM$1,MATCH(TRUE,INDEX(AW10:BM10<0,0),0))

如果没有小于 0 的数字,那么将返回 #N/A 错误......或者您可以使用 IFERROR 函数替换一些文本,例如

=IFERROR(INDEX(AW$1:BM$1,MATCH(TRUE,INDEX(AW10:BM10<0,0),0)),"No negative numbers")

答案2

您可以使用数组公式执行此操作。在第 2 行中,选择要在其中输入公式的单元格,将以下内容粘贴到公式栏中,然后按Ctrl+ Shift+ Enter

=INDEX($A$1:$D$1,MIN(IF(A2:D2<0,COLUMN(A2:D2))))

作为参考,A1:D1是列标题(月份)的范围,A2:D2是行中的值。此公式的作用是查找小于 0 的值,然后取列号最小的值。然后返回该列号中的月份标题。

此公式可以填充至所有行。

编辑:
如果您的数据不是从 A 列开始,则必须对公式进行小幅调整才能使其正常工作。公式中的所有内容保持不变,只是函数的第一个参数INDEX必须扩展到 A 列。例如,如果您的数据从 C 列开始,则可以使用以下公式(作为数组公式输入)。

=INDEX($A$1:$F$1,MIN(IF(C2:F2<0,COLUMN(C2:F2))))

原因是INDEX函数的第二个参数表示数组中的位置,不一定是列号。但是,如果您只是将数组一直扩展到 A 列,则此区别将被消除(即数组中的位置将等于列号)。

相关内容