显示最后一个非空单元格的地址(如果值不唯一)
我有以下Excel电子表格:
ABCDEF 1 | | Jan. Feb. March April May 2 | Profit | 100 200 200 3 | Cell Reference last non-empty cell | ??
在第二行,你可以find每个月的利润。 在单元格B3中,我想要显示第2行中 最后一个非空单元格的地址。 为此,我尝试了以下公式:
=ADDRESS(ROW(B2),MATCH((IFERROR(LOOKUP(2,1/($A2:$F2<>0),$A2:$F2),0)),$A2:$F2,0),4,1)
如果第二行中的所有数字都是唯一的,那么这个公式完美地工作 然而,在我上面的例子中,你可以看到,在Februay
的利润等于March
的利润; 因此,上面的公式给出了地址C2
而不是D2
。
在我的公式中,我必须改变什么来总是得到最后一个非空单元的地址,而不pipe它是否唯一?
使用:
=ADDRESS(ROW(B2),MATCH(1E+99,$A2:$F2),4,1)
哪一个会返回最后一个单元格的数字。
对于文本和数字:
=ADDRESS(ROW(B2),MAX(IFERROR(MATCH(1E+99,$A2:$F2),0),IFERROR(MATCH("zzz",$A2:$F2),0)),4,1)
考虑:
=ADDRESS(2,MATCH(TRUE,INDEX(ISBLANK(2:2),0,0),0)-1)
注意:
- 将处理文本或数字,唯一或不
- 不是一个数组公式
- 数据必须紧凑….没有中间空虚
最后一个限制是重要的,因为公式依赖于find行中的第一个空,并退一步!
您可以使用以下数组公式:
= ADDRESS(ROW(B2),MAX(COLUMN(2:2)*NOT(ISBLANK(2:2))))
这将返回第二行中最后一个非空单元格的地址。
注意这是一个数组公式,所以你在input这个公式时按下键盘上的Ctrl + Shift + Enter键而不是按Enter键 。
我同意@ScottCraner通常返回地址是没有用的。 如果你打算使用这个值,作为另一个公式的一部分,你不应该这样做:
= INDIRECT(ADDRESS(ROW(B2),MAX(COLUMN(2:2)*NOT(ISBLANK(2:2)))))
相反,完全跳过使用INDIRECT
和ADDRESS
,而是使用INDEX
来获取该单元格中的值,即
= INDEX(2:2,MAX(COLUMN(2:2)*NOT(ISBLANK(2:2)))))