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

如何让Google Form将单次提交的多库存条目拆分至表格单独行

解决Google Form单次多库存项入库的重复填写问题

方案1:利用Google Form内置的重复区块+条件分支(无需代码)

这是最适合非技术团队的轻量方案,核心让用户只填一次通用信息,重复填写库存项:

  • 先创建通用前置区块:包含交付单号、供应商、收货日期等仅需提交一次的信息。
  • 创建库存项区块:包含SKU、入库数量、批次号等单库存项所需字段。
  • 在库存项区块末尾加选择题:"是否需要添加下一项库存?",选项设为「是」「否」。
  • 设置条件分支:
    • 选「是」则跳转回库存项区块开头(可在表单说明里提示单次最多5项,或通过分支设置限制循环次数)。
    • 选「否」则跳转至表单提交页。
  • 提交后原始响应会把重复库存项合并在同一行,可后续用表格「数据拆分」功能或简单公式提取拆分。

方案2:用Google Apps Script自动拆分响应到单独行(适合自动化需求)

如果需要直接将多库存项拆分成表格独立行,可在表单关联的Google表格中编写脚本自动处理:

  1. 在表单里设置5组库存项字段(比如「库存1 SKU」「库存1 数量」「库存2 SKU」「库存2 数量」…直到第5组)。
  2. 打开表单关联的Google表格,点击「扩展程序」→「Apps脚本」,粘贴以下示例代码:
function onFormSubmit(e) {
  const responseItems = e.response.getItemResponses();
  // 提取通用信息(根据你的表单字段顺序调整索引)
  const deliveryNo = responseItems[0].getResponse();
  const supplier = responseItems[1].getResponse();
  const receiveDate = responseItems[2].getResponse();

  // 定义5组库存项的字段索引(索引从0开始,根据实际表单调整)
  const inventoryGroups = [
    {skuIdx: 3, qtyIdx: 4},
    {skuIdx: 5, qtyIdx: 6},
    {skuIdx: 7, qtyIdx: 8},
    {skuIdx: 9, qtyIdx: 10},
    {skuIdx: 11, qtyIdx: 12}
  ];

  // 指定拆分后数据存储的工作表
  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("拆分后库存");
  
  // 遍历每组库存项,有内容则新增行
  inventoryGroups.forEach(group => {
    const sku = responseItems[group.skuIdx]?.getResponse();
    const qty = responseItems[group.qtyIdx]?.getResponse();
    if (sku && qty) {
      targetSheet.appendRow([deliveryNo, supplier, receiveDate, sku, qty]);
    }
  });
}
  1. 修改代码中的字段索引和目标工作表名称,匹配你的表单结构。
  2. 设置触发条件:在脚本编辑器中点击「触发器」→「添加触发器」,选择「事件源:从电子表格」,「事件类型:表单提交」,保存并完成授权。
  3. 后续表单提交后,脚本会自动将每组填写了的库存项拆分成单独行,存入指定工作表。

方案3:用网格题简化表单填写(配合脚本拆分)

如果希望表单界面更紧凑,可使用网格题承载多库存项:

  • 创建网格题,列设置为「SKU」「数量」「批次号」,行设置为「库存项1」「库存项2」…「库存项5」。
  • 通用信息仍放在网格题之前,提交后用类似方案2的脚本,遍历网格题的每一行响应,将有内容的行拆分成独立表格行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:12:18