Excel中首个MATCH公式返回空值时如何调用另一个MATCH取值
多列匹配返回对应姓名公式解决方案
方案1:全Excel版本兼容写法
逻辑:优先匹配C列工作邮箱,匹配失败时自动触发D列私人邮箱匹配,完全符合你的需求
=IFERROR(INDEX('Sheet1'!$A:$A,MATCH(A2,'Sheet1'!$C:$C,0)),INDEX('Sheet1'!$A:$A,MATCH(A2,'Sheet1'!$D:$D,0)))
方案2:Excel 365/2021及以上版本精简写法
用XLOOKUP实现,逻辑更直观,支持自定义无匹配提示:
=XLOOKUP(A2,'Sheet1'!$C:$C,'Sheet1'!$A:$A,XLOOKUP(A2,'Sheet1'!$D:$D,'Sheet1'!$A:$A,"无匹配"))
扩展方案:适配多邮箱列的通用写法
如果后续还要新增其他邮箱列(比如备用邮箱列E),不需要多层嵌套,直接修改查询范围即可:
=XLOOKUP(A2,TOCOL('Sheet1'!$C:$E),TOCOL(IF(SEQUENCE(,COLUMNS('Sheet1'!$C:$E)),'Sheet1'!$A:$A)),"无匹配")
注意事项
- 匹配优先级严格按照列从左到右的顺序,同一邮箱同时出现在多列时,会优先返回最左侧匹配列对应的姓名
- 如果不需要自定义无匹配提示,删除公式最后的
"无匹配"参数即可,无匹配时默认返回#N/A
内容的提问来源于stack exchange,提问作者David Patterson
相关产品推荐
相关产品推荐

