如何查找Excel单元格块中非空的第一列并返回相应的列标头



我正在尝试查找非空的第一列,并在Excel单元格块中返回相应的列标头(我认为称为Array?)

例如:

在这张图中,我想查看B4:G9中的所有条目,并让我的公式告诉我第一个不为空的列是标记为1的列。

到目前为止,我有以下公式似乎有效,我搜索每一行,让每一行返回第一个非零数字出现的列标题,然后搜索返回的列标题的最小值。然而,我的实际数据有超过100列和100行,所以我正在寻找更干净的东西。

=MIN(
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B9:G9<>0),0),0)),
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B8:G8<>0),0),0)),
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B7:G7<>0),0),0)),
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B6:G6<>0),0),0)),
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B5:G5<>0),0),0)),
INDEX($B$3:$G$3,MATCH(TRUE,INDEX((B4:G4<>0),0),0)))

这个公式应该适合你,调整$B$4:$G$9以匹配你的实际数据集:

=INDEX($3:$3,1,MIN(IF($B$4:$G$9<>0,COLUMN($B$4:$G$9),COLUMNS($3:$3))))

注意:根据您的Excel版本,您可能必须使用CtrlShiftEnter来确认公式,而不仅仅是Enter。这将强制将公式作为数组进行计算。当公式被花括号{formula}包围时,你就知道你做的是正确的(花括号不是手动输入的,它们是在数组成功进入时自动输入的,通过CtrlShiftEnter)

最新更新