Google Sheets 按列内值动态匹配对应列名的函数实现咨询
Google Sheets匹配值返回对应列表头解决方案
单单元格下拉公式(适合新手使用)
直接在F4单元格输入以下公式,下拉即可适配所有行:=IF(COUNTIF(B:B,E4)>0,B$2,IF(COUNTIF(C:C,E4)>0,C$2,"未匹配"))
- 逻辑说明:先用
COUNTIF判断E列当前行的值是否存在于B列,存在则返回B2的固定表头;不存在则继续判断是否在C列,存在返回C2表头,都匹配不到返回「未匹配」 - 注意
B$2/C$2的行号加了绝对引用符号$,下拉时表头行号不会跟随变化
自动溢出数组公式(无需下拉)
直接在F3单元格输入以下公式,即可自动适配E列所有行,一次性生成所有结果:=BYROW(E3:E,LAMBDA(val,IF(val="","",IFERROR(FILTER(B2:C2,BYCOL(B3:C,LAMBDA(col,COUNTIF(col,val)>0))),"未匹配"))))
- 适配场景:数据量较大、后续会新增E列输入内容的场景,不用每次新增行都手动下拉公式
- 扩展说明:如果后续匹配范围扩展到更多列,只需要修改公式中的
B2:C2和B3:C为对应的表头范围和数据范围即可,不用调整其他逻辑
特殊场景调整
如果存在E列的值同时出现在B、C两列的情况,需要返回所有匹配的表头,可以把数组公式里的FILTER部分用TEXTJOIN包裹:=BYROW(E3:E,LAMBDA(val,IF(val="","",IFERROR(TEXTJOIN("、",TRUE,FILTER(B2:C2,BYCOL(B3:C,LAMBDA(col,COUNTIF(col,val)>0)))),"未匹配"))))
内容的提问来源于stack exchange,提问作者Janette
相关产品推荐
相关产品推荐

