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

Google Sheets:通过下拉菜单同步主表与隐藏店铺表库存数据

实现Google Sheets店铺库存联动与同步方案

我来帮你搞定这个店铺库存联动的需求,从下拉选店铺调取数据,到修改后同步回对应隐藏表,分三个核心步骤来实现:

1. 先搭好基础结构

确保你的表格满足以下前提:

  • 有一个主工作表(比如命名为「主工作表」)
  • 每个店铺对应一个隐藏的工作表,命名要清晰(比如「店铺A」「店铺B」)
  • 所有工作表的商品名称列统一(比如都放在A列),库存列也统一(比如都放在B列),表头在第1行

2. 设置店铺下拉菜单并自动调取库存

第一步:添加店铺下拉选择

在主工作表的某个单元格(比如B1,用来放选中的店铺名)设置数据验证:

  • 选中B1单元格,点击「数据」->「数据验证」
  • 验证规则选择「列表」,如果店铺少可以手动输入名称;如果店铺多,用动态公式自动获取所有非主表的工作表名称:
    =QUERY(GET_SHEETS(), "SELECT Col1 WHERE Col1 <> '主工作表'")
    
  • 勾选「显示下拉箭头」,保存设置

第二步:自动拉取对应店铺的库存

在主工作表的库存列(比如B2单元格,对应A2的商品)输入公式:

=XLOOKUP(A2, INDIRECT(B1&"!A:A"), INDIRECT(B1&"!B:B"), "无数据")

然后把这个公式下拉填充到所有商品行。

  • INDIRECT(B1&"!A:A") 会根据B1选中的店铺名,自动引用对应工作表的A列(商品名)
  • XLOOKUP 会匹配当前商品名,拉取对应店铺的库存值,找不到就显示「无数据」

3. 实现库存修改同步回对应店铺表

公式只能单向拉取数据,要实现修改主表库存同步回隐藏表,得用Google Apps Script:

  1. 打开脚本编辑器:点击「扩展」->「Apps脚本」
  2. 清空默认代码,粘贴下面的脚本:
function onEdit(e) {
  const mainSheetName = "主工作表"; // 替换成你的主工作表名称
  const editedSheet = e.source.getActiveSheet();
  
  // 只处理主工作表的库存列修改
  if (editedSheet.getName() !== mainSheetName) return;
  
  const editedRange = e.range;
  const col = editedRange.getColumn();
  const row = editedRange.getRow();
  
  // 假设库存列是B列(列号2),且修改的是第2行及以后(跳过表头)
  if (col !== 2 || row < 2) return;
  
  // 获取当前选中的店铺
  const selectedStore = editedSheet.getRange("B1").getValue();
  if (!selectedStore) return;
  
  // 找到对应的店铺工作表
  const storeSheet = e.source.getSheetByName(selectedStore);
  if (!storeSheet) return;
  
  // 获取修改的商品名和新库存值
  const productName = editedSheet.getRange(row, 1).getValue();
  const newStock = editedRange.getValue();
  
  // 在店铺表中查找对应商品并更新库存
  const productMatch = storeSheet.getRange("A:A").createTextFinder(productName).findNext();
  if (productMatch) {
    productMatch.offset(0, 1).setValue(newStock);
  }
}
  1. 保存脚本(给脚本起个名字,比如「StockSync」),然后关闭编辑器

脚本说明:

  • 当你修改主工作表B列(库存列)的数值时,脚本会自动触发
  • 它会读取B1选中的店铺名,找到对应的隐藏工作表
  • 根据当前行的商品名,在店铺表中匹配到对应行,然后把新库存值同步过去

注意事项

  • 如果你的商品列/库存列不是A/B列,要修改脚本里的列号(比如库存列是C列,就把col !== 2改成col !== 3)
  • 确保店铺工作表的名称和下拉菜单里的完全一致,不然脚本找不到对应表
  • 第一次运行脚本时会要求授权,按照提示完成授权即可
  • 商品名称要唯一,不然脚本只会修改第一个匹配到的商品库存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:14:29