EXCEL中返回非空最后一行的行号 A1-A9:数字/字母/汉字 A10-A12:空格 A13:汉字
如何返回A13的行数13
就是说一列数,中间不定单元格有空格要返回最后个有数据的行数
=LOOKUP(1,0/(A1:A65535<>\"\"),ROW(1:65535)) 或者数组公式:
=MAX((A1:A65535<>\"\")*ROW(A1:A65535)) 输入后要按Ctrl+Shift+Enter
LOOKUP()函数采用“二分法”进行查数,因此,要求源数 据必须进行升序排序。但是,世事无绝对,总有一些牛人能想出各种办法,在不排序的情况下用LOOKUP()!!
公式:=LOOKUP(1,0/($A$2:A$696=F2),$C$2:C$696) 公式释义:$A$2:A$696=F2得到的是False、True的序列,在Excel中,涉及到数学运算时,False=0,True=1,因此用0除后,得到的是#DIV/0!、0序列。注意:在Excel中,所有错误值不参与排序,不参与字符串的比较,或者说:错误值比所有的数值、字符串都要“大”。而公式的作用是在生成的#DIV/0!、0序列中找到小于或等于1的最大值,因为错误值不参与排序,因此只能找到0(也就是$A$2:$A$696=F2成立的地方并且只有一个!!!),然后返回相对应的$C$2:$C$696中的数值。另外,因为“二分法”的缘故,如果源数据中有好几个符合条件的值(这些值肯定是相等的!!),那么LOOKUP()总会返回排在最后面的一个(而VLOOKUP()总会返回第一次!!)。因此,假设A列有许多数据,并且里面还有空格,想找到最后一个单元格的位置,怎么办?如果没有空格,可以用公式:
=COUNTA(A1:A65535)
现在有空单元格,可以用公式:
=LOOKUP(1,0/(A1:A65535<>\"\"),ROW(A1:A65535)) 与上面的公式原理相同。
因篇幅问题不能全部显示,请点此查看更多更全内容