Excel多匹配问题:用Sheet1四位数字匹配手机号并返回全部结果
Excel多匹配结果提取解决方案
针对「Sheet1 A列四位数字匹配Sheet2 B列手机号后四位,返回所有匹配手机号」的问题,以下是两种实用解决方案:
方案1:新版Excel(支持FILTER函数)
合并显示所有匹配项(单单元格)
在Sheet1对应行的B列(如B3)输入公式:
=TEXTJOIN(", ", TRUE, FILTER(Sheet2!B:B, RIGHT(Sheet2!B:B,4)=A3, "#N/A"))
- 功能:将所有匹配的手机号用逗号分隔显示在同一单元格,无匹配时返回
#N/A - 操作:输入后直接回车即可
分列显示匹配项(多单元格)
若需将不同匹配项放到不同列(如B列第一个、C列第二个):
- B3单元格(第一个匹配项):
=IFERROR(INDEX(FILTER(Sheet2!B:B, RIGHT(Sheet2!B:B,4)=A3, ""),1), "#N/A")
- C3单元格(第二个匹配项):
=IFERROR(INDEX(FILTER(Sheet2!B:B, RIGHT(Sheet2!B:B,4)=A3, ""),2), "")
- 操作:输入后回车,向下拖拽公式即可
方案2:旧版Excel(无FILTER函数,需数组公式)
合并显示所有匹配项(单单元格)
在Sheet1对应行的B列输入公式:
=TEXTJOIN(", ", TRUE, IF(RIGHT(Sheet2!B:B,4)=A3, Sheet2!B:B, ""))
- 操作:输入完成后,按Ctrl+Shift+Enter组合键确认(公式会自动被大括号包裹)
分列显示匹配项(多单元格)
- B3单元格(第一个匹配项):
=IFERROR(INDEX(Sheet2!B:B, SMALL(IF(RIGHT(Sheet2!B:B,4)=A3, ROW(Sheet2!B:B)),1)), "#N/A")
- C3单元格(第二个匹配项):
=IFERROR(INDEX(Sheet2!B:B, SMALL(IF(RIGHT(Sheet2!B:B,4)=A3, ROW(Sheet2!B:B)),2)), "")
- 操作:每个公式输入后,按Ctrl+Shift+Enter确认,再向下拖拽公式
效果验证
以示例数据为例,Sheet1 A8单元格的7405会匹配到Sheet2中的4802227405和6025557405,使用分列公式时,B8显示第一个手机号,C8显示第二个,完全符合期望输出。
内容的提问来源于stack exchange,提问作者Derek Long
相关产品推荐
相关产品推荐

