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

如何用Apps Script实现谷歌表格产品对应店铺的批量匹配与单单元格展示?

谷歌表格产品-店铺汇总方案(可扩展版)

方案一:使用原生函数实现(无需脚本)

原逐个列判断的函数扩展性差,改用FLATTEN+FILTER+TEXTJOIN组合,自动适配任意数量的店铺列。在产品列表工作表的B2单元格输入以下公式,下拉填充整列即可:

=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(FLATTEN('Base1'!$1:$1), FLATTEN('Base1'!$2:$1000)=A2)))

公式说明

  • FLATTEN('Base1'!$2:$1000):将店铺表中所有产品单元格展开为一维列表
  • FLATTEN('Base1'!$1:$1):对应展开每个产品所属的店铺名
  • FILTER(...):筛选出当前产品(A2)对应的所有店铺名
  • UNIQUE:自动去除重复的店铺记录(避免同一店铺多次关联同一产品)
  • TEXTJOIN:用逗号+空格将店铺名拼接成单个字符串

只要店铺表保持「首行是店铺名,下方列是对应产品」的结构,新增店铺列时无需修改公式,自动生效。

方案二:使用Google Apps Script实现(适合复杂场景)

如果需要更灵活的逻辑(比如定时更新、自定义格式),可以用脚本批量处理:

  1. 打开目标表格,点击「扩展程序」→「Apps 脚本」进入编辑器
  2. 替换默认代码为以下脚本:
function aggregateShopsForProducts() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const productSheet = ss.getSheetByName('产品列表');
  const shopSheet = ss.getSheetByName('Base1');
  
  // 读取店铺表数据
  const shopData = shopSheet.getDataRange().getValues();
  const shopNames = shopData[0];
  const productRows = shopData.slice(1);
  
  // 构建产品-店铺映射(自动去重)
  const productShopMap = new Map();
  productRows.forEach(row => {
    row.forEach((product, colIdx) => {
      if (!product) return;
      const shop = shopNames[colIdx];
      productShopMap.has(product) 
        ? productShopMap.get(product).add(shop) 
        : productShopMap.set(product, new Set([shop]));
    });
  });
  
  // 处理产品列表并写入结果
  const productRange = productSheet.getRange('A2:A').getValues().filter(row => row[0]);
  const results = productRange.map(([product]) => {
    const shops = productShopMap.get(product) || new Set();
    return [Array.from(shops).join(', ')];
  });
  
  if (results.length) {
    productSheet.getRange(2, 2, results.length, 1).setValues(results);
  }
}
  1. 保存脚本(命名任意,比如ShopAggregator),首次运行需完成授权验证
  2. 回到表格,运行脚本即可批量填充B列数据

脚本扩展建议

  • 添加触发器:在脚本编辑器的「触发器」页面,设置当表格编辑时自动运行脚本,实现实时更新
  • 自定义分隔符:修改join(', ')中的符号,比如改成join('; ')使用分号分隔

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:32:51