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

如何修改Google Apps Script实现按C列多ID过滤导入表格数据?

实现Google Apps Script数据过滤导入功能

原代码可将指定源表格的"A:J"全量数据导入到当前表格的"test_ee"标签页,现修改为仅导入源表格C列(门店ID列)中匹配指定ID值的数据,同时支持自定义过滤列和目标值:

function importhistorical_sales_ee() {
  // -------------------------- 过滤配置区 --------------------------
  const filterColumnIndex = 2; // 过滤列的索引,C列对应索引2(数组从0开始计数)
  const targetStoreIds = ['ID1', 'ID2', 'ID3', 'ID4', 'ID5', 'ID6', 'ID7', 'ID8']; // 替换为你的8个指定门店ID
  // -------------------------- 配置结束 --------------------------

  // 获取源表格数据
  const sourceSheet = SpreadsheetApp.openById('1mVECYu27lnOIFf7vHk1kI_55DID3APvWr_toWuZho14')
    .getSheetByName('Historical sales for SC planning -.csv');
  const values = sourceSheet.getRange('A:J').getValues();

  // 过滤数据:保留表头 + 匹配目标ID的行
  const filteredValues = values.filter((row, index) => {
    // 第一行是表头,直接保留
    if (index === 0) return true;
    // 检查当前行的过滤列值是否在目标ID数组中
    return targetStoreIds.includes(row[filterColumnIndex]);
  });

  // 写入目标表格
  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('test_ee');
  targetSheet.getRange("A3:J").clearContent();
  // 仅当过滤后有数据时才写入,避免报错
  if (filteredValues.length > 0) {
    targetSheet.getRange(3, 1, filteredValues.length, filteredValues[0].length).setValues(filteredValues);
  }
}

关键修改说明

  • 可配置过滤规则:在过滤配置区可直接修改filterColumnIndex(比如要过滤D列就改成3)和targetStoreIds(替换为实际需要的ID值),无需改动核心逻辑
  • 表头保留逻辑:过滤时自动保留第一行表头,避免数据结构混乱
  • 容错处理:添加判断逻辑,确保只有过滤到数据时才执行写入操作,防止因空数据导致的脚本报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:10:20