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

Google Sheets用Regex、数组公式搭配MATCH实现姓氏全匹配问题

你的思路是合理的,你之前尝试数组化MATCH失败是因为MATCH的第二个参数如果要输出数组结果,需要外层套ARRAYFORMULA,不过也可以换更简洁的写法,无需将中间步骤拆分到单独单元格,直接通过数组公式在单个单元格内完成全部逻辑,以下是两种谷歌表格可用的实现方案:

方案1:LET变量简化版(可读性更高)

=LET(
  target_last,REGEXEXTRACT(B2,"\w+$"),
  all_names,TRIM(SPLIT(SUBSTITUTE(A2," and",","),",")),
  all_last,ARRAYFORMULA(REGEXEXTRACT(all_names,"\w+$")),
  IF(COUNTIF(all_last,target_last)=COUNTA(all_last),"MATCH","NO MATCH")
)

逻辑说明:

  • 先提取B列指定的目标姓氏存入target_last变量
  • 拆分清洗A列的所有姓名,存入all_names变量
  • 批量提取所有姓名的姓氏存入all_last变量
  • 对比匹配成功的姓氏数量和总姓名数量,二者相等则说明所有姓氏都匹配,返回对应结果

方案2:BYROW遍历版

=IF(AND(
  BYROW(
    ARRAYFORMULA(REGEXEXTRACT(TRIM(SPLIT(SUBSTITUTE(A2," and",","),",")),"\w+$")),
    LAMBDA(x,x=REGEXEXTRACT(B2,"\w+$"))
  )
),"MATCH","NO MATCH")

逻辑说明:

  • 直接在数组层完成姓名拆分、姓氏提取操作
  • 用BYROW遍历每个提取出的姓氏和目标姓氏做匹配,返回布尔值数组
  • 用AND判断所有布尔值是否都为真,输出对应结果

两个方案都支持直接下拉适配整行数据,不需要修改中间参数。

内容的提问来源于stack exchange,提问作者Debora S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:36:04