Excel中最后一个非零值的列名称

如何使用Excel函数获取行中最后一个非零值的列名。

例:

答:E – 值为x的列 – 函数结果

ABCDE x 0 0 1 0 0 C 1 0 2 1 2 E 0 1 1 0 1 E 1 1 1 1 1 E 0 0 0 0 0 

CTRL + Shift + Enterinput

 =IFERROR(MID(ADDRESS(ROW(),MAX(IF(A2:E2,COLUMN(A2:E2)))),2,SEARCH("$",ADDRESS(ROW(),MAX(IF(A2:E2,COLUMN(A2:E2)))),2)-2),"") 

在这里输入图像说明

这工作:

 =IFERROR(CHAR(AGGREGATE(14,6,COLUMN(A1:E1)/(A1:E1<>0),1)+64),"") 

在这里输入图像说明

这些是必须使用CTRL + SHIFT + ENTERinput的数组公式:

这工作到ZZ:

=IFERROR(SUBSTITUTE(MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AA1<>0,COLUMN(A1:AA1),0))-1)),2,2),"$",""),"")

这适用于所有列:

=IFERROR(MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AAA1<>0,COLUMN(A1:AAA1),0))-1)),2,FIND("$",MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AAA1<>0,COLUMN(A1:AAA1),0))-1)),2,99))-1),"")

更新:接受的答案更有效率。 它假设数字值,但可以很容易地更新以处理非数字值。 但是可以进一步优化:

=IFERROR(MID(SUBSTITUTE(ADDRESS(1,MAX(IF(A2:XED2,COLUMN(A2:XED2)))),"$1",""),2,3),"")