You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Spreadsheet中实现列表模糊匹配并填充对应姓氏?

带职业前缀姓名的姓氏匹配解决方案

针对Table2中带职业前缀的姓名,匹配Table1的完整姓名并提取姓氏,以下是几种可行方法:

方法1:使用TEXTAFTER + VLOOKUP(Excel 365/2021及以上)

直接提取Data列中职业前缀后的完整姓名,再用VLOOKUP精确匹配:
在Table2需要填充姓氏的单元格(如B2)输入公式:

=VLOOKUP(TEXTAFTER(A2, " "), Table1!A:B, 2, FALSE)
  • 原理:TEXTAFTER(A2, " ")提取第一个空格后的内容(即完整姓名),再用VLOOKUP在Table1的Name列匹配,返回对应Surname列的值。

方法2:使用MID + FIND + VLOOKUP(兼容所有Excel版本)

如果没有TEXTAFTER函数,用字符串截取提取姓名:

=VLOOKUP(MID(A2, FIND(" ", A2)+1, LEN(A2)-FIND(" ", A2)), Table1!A:B, 2, FALSE)
  • 原理:FIND(" ", A2)定位第一个空格的位置,MID截取空格后的所有字符作为姓名,再执行VLOOKUP匹配。

方法3:使用INDEX + MATCH + SEARCH(灵活匹配)

适用于姓名可能出现在任意位置的场景,无需严格前缀:

=INDEX(Table1!B:B, MATCH(TRUE, ISNUMBER(SEARCH(Table1!A:A, A2)), 0))
  • 原理:SEARCH(Table1!A:A, A2)检查Table1的每个姓名是否包含在Table2的Data单元格中,MATCH找到第一个匹配的行号,INDEX返回对应姓氏。
  • 注意:旧版Excel需按Ctrl+Shift+Enter作为数组公式执行,Excel 365/2021自动支持动态数组。

方法4:VLOOKUP通配符模糊匹配

直接用通配符让VLOOKUP识别包含完整姓名的行:

=VLOOKUP("*"&MID(A2, FIND(" ", A2)+1, LEN(A2))&"*", Table1!A:B, 2, FALSE)
  • 原理:在提取的姓名前后添加*通配符,让VLOOKUP匹配包含该姓名的任意行(适合姓名可能有额外后缀的情况)。

内容的提问来源于stack exchange,提问作者Perito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:10:33