https://www.shangyexinzhi.com/article/4845500.html
=INDEX($A$1:$E$1,1,LOOKUP(1,0/(B2:E2<>""),COLUMN(B2:E2)))
LOOKUP(1,0/(B2:E2<>""),COLUMN(B2:E2))
返回列数,B2:E2<>"" 也可以改为 =“” 把找到符合内容的列数返回
INDEX用来返回那一列对应的$A$1:$E$1 标题范围
我自己还遇到了标题里面是合并单元格,要知道合并以后数据就在左上角
其他地方空的,所以我干脆使得空的列数-n 使得返回左上角的值
——————
如果合并单元格复杂的可以看:
https://www.office68.com/excel/24322.html Excel如何精确查询带合并单元格数据,使用到了lookup和match函数嵌套来完成
一起来看看这个带合并单元格的数据查询案例。
https://www.sohu.com/a/403525665_120293083?_f=index_betapagehotnews_5
当Vlookup函数的查询条件碰到合并单元格,用这些方法解决
——————
以下是原文:
Excel提取每行中最后一个出现的数据(3种情况全面解析)
今天有一位粉丝在之前问题的基础上又咨询了一个进阶版问题:
请教一下,这个例子,如果想要提取的是每行数据中最后一个出现的数据对应的日期列标题,要怎么操作呢?
如下图所示:
A列为产品名称标题 , 第一行为日期标题 , B2:E5区域为产量数据 ,我们想要在F列快速获取每行最后一个数据的列标题!比如第2行的最后一个数据为E2单元格中的数据9,那么我们就在F2单元格获取E2单元格所对应的列标题“5月15日”。
2
总体思路
解决这个问题的总体思路大致可以分为两步:
第一步:
获取每行最后一个数据单元格的列号。
第二步:
利用Index函数,获取固定列标题区域A1:E1中,固定的第1行与以下每行最后一个数据单元格位于的第N列交叉位置的数据,即对应的列标题。
3
解题步骤
01
获取每行末尾数据的列号
在F2单元格输入函数公式:
=LOOKUP(1,0/(B2:E2<>""),COLUMN(B2:E2))
即可获得获取每行最后一个数据单元格的列号。
公式含义:
第二个参数的分母(B2:E2<>"")中的判断结果有两个会返回true,因为有两个不等于空值的单元格。
所以0/(B2:E2<>"")返回的结果为:
{0,#DIV/0!,#DIV/0!,0}
而Lookup函数查找不到满足条件的值时,会忽略错误并返回最后一个值。所以此处会查找到B2:E2区域最后一个单元格。此处用的是COLUMN函数获取B2:E2区域内对应单元格的列号。得到最后一个非空单元格的列号为5。
02
获取每行末尾数据的列标题
在F2单元格继续完善公式:
=INDEX($A$1:$E$1,1,LOOKUP(1,0/(B2:E2<>""),COLUMN(B2:E2)))
Index函数获取$A$1:$E$1固定区域内,固定的第1行与第N列(即每行最后一个数据的列号)交叉位置的数据。
Index函数语法:
Index(所选区域,行号,列号)
返回所选区域内指定行与指定列交叉位置的数据。
最后将的到的结果,由常规格式修改为日期格式,即可正常显示出日期数据。
)————————
也可以参考:Excel 提取每行最后一个出现的数据(全情况解析)https://zhuanlan.zhihu.com/p/464869068