excel 如何得到每一行中第一个和最后一个 不为空的单元格列数

各位高手,问题是这样的 我想找一个通式 对每一行适用,检索第一个不为空和最后一个不为空的列
如图

比如说第一行 不为空的单元格 是J 最后一个是O列

第一个:=CHAR(64+MATCH(1,1/(1:1<>""),0))
数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,在向下填充。
最后一个:=CHAR(64+LOOKUP(1,0/(1:1<>""),COLUMN(1:1)))
回车并向下填充。
两个公式也可用&组合起来。追问

问一个问题,match中 1/(1:1""),得怎么理解呢,是1除以一个条件(1:1"")返回值?

追答

呵呵!解释函数公式很费事的哦。
MATCH(1,1/(1:1""),0)当中的1/(1:1""),这是一个判断真假的列式:1为真、0为假。
在1:1行里面,哪些符合""呢?按照你的抓图,J1(第10列)开始才出现有数据(即""),故1:1行里面的真假就是:{#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,1,1,1,1,1,1,#DIV/0!,……}
用1除以{……}这连串真假,等于1的只有第10~15位的“1”。
再用MATCH(1,****)匹配1:1行的数据,第一个符合条件的就是第10位的“1”,得数=10(也即是J列)。

温馨提示:答案为网友推荐,仅供参考
相似回答