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

如何使用Google App Script按列条件提取对应行的指定列值

Google App Script 按列条件提取匹配行数值方案

核心逻辑

  • 通过可配置的列编号定位目标字段,列位置变动时无需修改核心遍历逻辑
  • 读取工作表全量数据后跳过表头行逐行判断
  • 匹配到MED TIMING列的目标值时,将同行PHONE列的值存入结果数组,最终输出目标数组

完整实现代码

列编号规则和表格原生列序一致,从1开始计数:A列对应1、B列对应2,直接修改代码开头的配置项即可适配你的表格结构

function getMatchedPhoneList() {
  // -------------------------- 配置项 按需修改 --------------------------
  const MED_TIMING_COL = 1;  // MED TIMING字段所在的列编号,示例表中为A列故填1
  const PHONE_COL = 2;       // PHONE字段所在的列编号,示例表中为B列故填2
  const TARGET_VALUE = "Breakfast"; // 需要匹配的MED TIMING值
  const SHEET_NAME = "Sheet1";      // 数据所在的工作表名称
  // -------------------------------------------------------------------

  // 读取工作表全量数据
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const sheetData = activeSheet.getDataRange().getValues();

  const resultArray = [];
  // 从索引1开始遍历,跳过第1行表头(数组索引从0开始)
  for (let rowIndex = 1; rowIndex < sheetData.length; rowIndex++) {
    // 代码自动处理数组索引偏移,配置列号时无需手动减1
    const currentTiming = sheetData[rowIndex][MED_TIMING_COL - 1];
    if (currentTiming === TARGET_VALUE) {
      resultArray.push(sheetData[rowIndex][PHONE_COL - 1]);
    }
  }

  // *示例数据下resultArray输出为 [1,4]*,可直接调用该变量做后续逻辑处理
  console.log('匹配结果:', resultArray);
  return resultArray;
}

配置&调整说明

  • 列位置变动适配:如果后续调整了表格列顺序,只需要修改配置项里的两个列编号数值即可,核心逻辑无需改动
  • 匹配目标调整:如果需要提取Lunch、Dinner对应的PHONE列表,直接修改TARGET_VALUE的赋值即可,例如赋值为"Dinner"时返回结果为[5]
  • 空值过滤:如果需要跳过PHONE列为空的行,在push逻辑前增加空值判断即可:if (sheetData[rowIndex][PHONE_COL - 1] !== '') 再执行存入操作
  • 数据类型兼容:如果PHONE列存的是文本格式的号码,脚本会原样保留文本类型,不会自动转成数字导致前导零丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:57:27