刚在EH看到有位专家讨论这个问题, | |||||||||||
主要就是说,怎么使用函数公式,提取某列里最后一个非空单元格的值? | |||||||||||
不管单元格的值为文本还是数字…… | |||||||||||
其实讨论的起因在于,使用LOOKUP()函数,我们一般都只能得到文本或只能得到数字,但无法同时兼得字符或数字,如: | |||||||||||
文本:=LOOKUP(“座”,A:A) | |||||||||||
数字:=LOOKUP(9^9,A:A) | |||||||||||
当然,“座”或者9^9可以根据需要作相应的变化,如“々”或9E307…… | |||||||||||
都是指文本或数字里的“极”值…… | |||||||||||
但是,其实LOOKUP()是可以同时满足这两个要求的,如下公式: | |||||||||||
=LOOKUP(1,0/(A:A<>””),A:A) | |||||||||||
当然,因为涉及到全列引用,所以上面这个公式只适合用在Excel2007、Excel2010版本; | |||||||||||
而对于2003版本,只能用下面的公式: | |||||||||||
=LOOKUP(1,0/(A1:A65535<>””),A1:A65535) | |||||||||||
同时,其他朋友也提出他们的解法,下面供参考,均为【数组公式】: | |||||||||||
1. =INDEX(A:A,MAX(ROW(A1:A65535)*(A1:A65535<>""))) | |||||||||||
------ By twoleavs | |||||||||||
2. =INDEX(A:A,MAX(MATCH({"座";9E+307},A:A))) | |||||||||||
3. =LOOKUP(MAX(MATCH({"座";9E+307},A:A)),ROW(A:A),A:A) | |||||||||||
------ By 李兴德 | |||||||||||