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

如何为谷歌表格Search函数添加周+练习双查询条件?

修改后的Search函数代码

首先,我们需要在Form表中新增一个用于输入练习名称的单元格(示例中用J2,你可以根据实际需求调整位置),然后修改函数逻辑,同时匹配周数和练习两个查询条件:

var Search_Col_IDX = 0; // 周数所在的Data表列索引(对应Data表第1列)
var Exercise_Col_IDX = 1; // 练习名称所在的Data表列索引(对应Data表第2列)

function Search() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formS = ss.getSheetByName("Form"); // 表单Sheet

  // 获取两个查询条件的值
  var weekStr = formS.getRange("h2").getValue(); // 原周数条件
  var exerciseStr = formS.getRange("j2").getValue(); // 新增的练习名称条件

  var values = ss.getSheetByName("Data").getDataRange().getValues();
  
  // 遍历Data表所有行,匹配双条件
  for (var i = 0; i < values.length; i++) {
    var row = values[i];
    // 同时满足周数匹配和练习名称匹配
    if (row[Search_Col_IDX] == weekStr && row[Exercise_Col_IDX] == exerciseStr) {
      // 将匹配行的数据写入Form表对应单元格
      formS.getRange("h7").setValue(row[2]);
      formS.getRange("h9").setValue(row[3]);
      formS.getRange("h11").setValue(row[4]);
      formS.getRange("h5").setValue(row[0]);
      formS.getRange("j5").setValue(row[1]);
      formS.getRange("j7").setValue(row[5]);
      formS.getRange("j9").setValue(row[6]);
      formS.getRange("j11").setValue(row[7]);
      // 找到第一个匹配项后退出循环(若需匹配所有同条件行可删除此行)
      break;
    }
  }
}

修改说明

  • 新增Exercise_Col_IDX变量,用于定义练习名称在Data表中的列索引(示例设为1,对应Data表第2列,可根据实际数据位置调整)
  • 添加获取练习名称条件的代码:var exerciseStr = formS.getRange("j2").getValue();,其中j2是练习名称的输入单元格,可自行修改位置
  • 修改if判断逻辑,同时校验周数和练习名称两个条件是否匹配
  • 新增break语句,找到第一个匹配行后停止遍历(如果Data表存在同周同练习的多行数据,需要全部匹配的话可以删除这行)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:20:24