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

Google Sheets公式返回全部结果而非指定结果的求助

Google Sheets 公式修正:精准匹配代码关联结果

问题概述

当前公式会返回所有商品结果,无法仅筛选出与C10中输入的代码(如AC/12345)关联的内容:

原始单元格内容:#CLIENTCODE#12345_DATE_BARCODE_Bread#67891_DATE_BARCODE_Whine#12345_DATE_BARCODE_Tea

  • 输入AC/12345时,期望返回Bread、Tea,但实际返回全部3个商品
  • 输入AC/67891时,期望返回Whine,但实际返回全部3个商品

原公式问题

原公式仅判断单元格是否包含目标代码,一旦单元格中存在目标代码,就会把该单元格内所有商品都提取出来,而非仅匹配目标代码对应的商品。

修正后的公式

=IF(ISBLANK(C10),"No search value",
LET(
  target_code, REGEXEXTRACT(C10,"AC/(.*)"),
  get_matches, LAMBDA(range,
    FLATTEN(
      MAP(FILTER(range, FIND("#"&target_code&"_", range) > 0), LAMBDA(cell,
        LET(
          regex_pattern, "#"&target_code&"_DATE_BARCODE_([A-Za-z]+)",
          matches, REGEXMATCH(cell, regex_pattern),
          results, REGEXEXTRACT(cell, regex_pattern),
          FILTER(results, matches)
        )
      )
    )
  ),
  lor_results, get_matches(LOR!A:A),
  lor25_results, get_matches('LOR25'!A:A),
  combined, TEXTJOIN(", ", TRUE, IFERROR(lor_results), IFERROR(lor25_results)),
  IF(combined="", "No data found", TRANSPOSE(SPLIT(combined, ", ")))
))

修正说明

  1. 精准提取目标代码:用REGEXEXTRACT(C10,"AC/(.*)")直接获取C10中的数字代码部分
  2. 自定义匹配函数:get_matches函数负责处理单个数据范围:
    • 先筛选出包含目标代码的单元格
    • 用正则表达式#目标代码_DATE_BARCODE_([A-Za-z]+)精确匹配代码与商品的对应关系
    • 只提取符合条件的商品名称,排除无关结果
  3. 合并结果:整合两个工作表的结果,空值自动忽略,最终转置输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:50:03