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

Google Sheets/Excel多列多逗号分隔值匹配公式求助

宠物产品与品种匹配的公式解决方案

Google Sheets 实现方案

单单元格公式(以J2为例)

在J2单元格输入以下公式,可返回当前产品匹配的所有品种名称:

=TEXTJOIN(", ", TRUE, FILTER(A:A, 
  BYROW(B:B, LAMBDA(x, COUNTIF(SPLIT(G2, ", "), x)>0)),
  BYROW(C:C, LAMBDA(y, COUNTIF(SPLIT(H2, ", "), y)>0)),
  D:D=I2
))

公式逻辑:

  • FILTER(A:A, ...):筛选出满足所有条件的品种名称
  • BYROW(B:B, LAMBDA(x, COUNTIF(SPLIT(G2, ", "), x)>0)):验证品种的动物类型是否与当前产品的任一动物类型匹配
  • BYROW(C:C, LAMBDA(y, COUNTIF(SPLIT(H2, ", "), y)>0)):验证品种的尺寸是否与当前产品的任一尺寸匹配
  • D:D=I2:匹配Red列的对应值
  • TEXTJOIN(", ", TRUE, ...):将筛选结果用逗号+空格拼接成单个字符串

批量应用公式

如果需要为J列所有产品批量生成结果,用MAP函数实现逐行处理:

=ARRAYFORMULA(IF(J2:J="",,MAP(G2:G, H2:H, I2:I, LAMBDA(g, h, i, 
  TEXTJOIN(", ", TRUE, FILTER(A:A, 
    BYROW(B:B, LAMBDA(x, COUNTIF(SPLIT(g, ", "), x)>0)),
    BYROW(C:C, LAMBDA(y, COUNTIF(SPLIT(h, ", "), y)>0)),
    D:D=i
  ))
))))

Excel 365 实现方案

Excel 365支持动态数组函数,可实现相同逻辑:

单单元格公式(以J2为例)

=TEXTJOIN(", ", TRUE, FILTER(A:A, 
  BYROW(B:B, LAMBDA(x, SUMPRODUCT(--ISNUMBER(SEARCH(TRIM(x), TRIM(TEXTSPLIT(G2, ", ")))))>0)),
  BYROW(C:C, LAMBDA(y, SUMPRODUCT(--ISNUMBER(SEARCH(TRIM(y), TRIM(TEXTSPLIT(H2, ", ")))))>0)),
  D:D=I2
))

公式逻辑:

  • TEXTSPLIT(G2, ", "):拆分产品的动物类型为数组,TRIM去除多余空格避免匹配误差
  • SUMPRODUCT(--ISNUMBER(SEARCH(...)))>0:检查品种的动物类型是否存在于产品的动物类型列表中
  • 其余逻辑与Google Sheets版本一致

批量应用公式

=MAP(G2:G, H2:H, I2:I, LAMBDA(g, h, i, 
  IF(g="", "", TEXTJOIN(", ", TRUE, FILTER(A:A, 
    BYROW(B:B, LAMBDA(x, SUMPRODUCT(--ISNUMBER(SEARCH(TRIM(x), TRIM(TEXTSPLIT(g, ", ")))))>0)),
    BYROW(C:C, LAMBDA(y, SUMPRODUCT(--ISNUMBER(SEARCH(TRIM(y), TRIM(TEXTSPLIT(h, ", ")))))>0)),
    D:D=i
  ))
))

注意事项

  • 若表格包含表头,需将公式中的A:A、B:B等范围改为实际数据区域(如A2:A100),避免表头干扰
  • 确保逗号分隔的内容格式统一,必要时用TRIM清理空格,防止匹配失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:58:15