Excel公式需求:匹配单元格子串并提取对应列关联数据
Excel批量匹配子串并提取关联数据方案
适用Excel 365/2021(支持动态数组)
直接使用XLOOKUP函数即可快速实现,无需复杂数组操作:
- G2(提取匹配的A列数字):
=XLOOKUP(TRUE,ISNUMBER(SEARCH(A:A,F2)),A:A,"无匹配") - H2(提取对应B列内容):
=XLOOKUP(TRUE,ISNUMBER(SEARCH(A:A,F2)),B:B,"无匹配") - I2(提取对应C列内容):
=XLOOKUP(TRUE,ISNUMBER(SEARCH(A:A,F2)),C:C,"无匹配")
输入任意一个公式后,下拉填充到F列所有对应行即可。公式会自动定位A列中第一个是F列单元格子串的内容,无匹配时返回"无匹配",可自行修改该提示文本。
适用旧版Excel(无动态数组支持)
需使用数组公式,输入完成后按Ctrl+Shift+Enter确认(而非单独回车):
- G2:
=INDEX(A:A,MIN(IF(ISNUMBER(SEARCH(A:A,F2)),ROW(A:A),99999)))&"" - H2:
=INDEX(B:B,MIN(IF(ISNUMBER(SEARCH(A:A,F2)),ROW(A:A),99999)))&"" - I2:
=INDEX(C:C,MIN(IF(ISNUMBER(SEARCH(A:A,F2)),ROW(A:A),99999)))&""
确认公式后下拉填充,无匹配时返回空值,若需显示提示文本,可将&""替换为&"无匹配"。
多匹配值提取(仅Excel 365)
如果F列单元格匹配A列多个子串,可使用FILTER+TEXTJOIN将所有结果合并显示:
- G2:
=TEXTJOIN(", ",TRUE,FILTER(A:A,ISNUMBER(SEARCH(A:A,F2)),"无匹配")) - H2/I2同理,将公式中的
A:A替换为B:B或C:C即可。
内容的提问来源于stack exchange,提问作者CallSignPhoenix
相关产品推荐
相关产品推荐

