2013-11-08 16:43:38 +0000 2013-11-08 16:43:38 +0000
7
7

获取行中第一个非零值并返回列头的Excel公式

我试图找到一个公式,在这个公式中,我可以查看一行中的列范围,并返回该行中第一个非零值所在的列头,从左到右移动。

下面是我的数据截图。 9 = 10/31/2011 10 = 11/30/2011 11 = 11/30/2011 12 = 12/31/2011

我想在H列中看到的结果如下,每一行:

我玩过一些数组公式,也搜索过函数,但还没有找到任何成功的方法。我希望另一位excel高手能有办法。

如果可以的话,我想暂时避免写UDF。

答案 (4)

12
12
12
2013-11-08 17:31:38 +0000

当然,试试这个

=INDEX(J$8:N$8,MATCH(TRUE,INDEX(J9:N9<>0,),0))

3
3
3
2013-11-08 17:58:40 +0000

我接受了上面的答案,但是想展示一下我找到的另一种方法,以防对大家有所帮助。

=OFFSET($I$8,0,MATCH(0,J10:N10,1)+1)

你也可以把它写成。

=INDEX(J$8:N$8,MATCH(0,J9:N9,1)+1)
0
0
0
2015-06-16 09:42:51 +0000

好吧!如果要求只是将J8 .N8的值放在H列中,那么复制和转置(粘贴选项)应该可以解决这个问题。在H列中放置J8 : N8的值,那么复制和转置(粘贴选项)应该可以解决这个问题。

-1
-1
-1
2015-04-21 13:03:42 +0000

无法让上面的公式发挥作用,因为公式会返回最大的一列(数字)非零。我使用了=MATCH(SMALL(J10:N10,1),J10:N10,0)。小忽略零值。