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

Google Apps Script仅匹配表单响应最后一行查找索引对应值

问题根源

原代码读取了「Form Responses」工作表I列从第3行到末行的全部姓名数据,匹配逻辑是找出「Match」表中所有在这整列姓名里存在的记录,因此会输出全量历史提交对应的匹配结果,没有单独提取最新一次提交(最后一行)的姓名做单条匹配。

修正后可直接运行的代码
function findLocation() {
  const ss = SpreadsheetApp.getActive();
  const formRespSheet = ss.getSheetByName('Form Responses');
  // 直接取最后一行I列(第9列)的最新提交姓名,无需拉取整列历史数据
  const latestName = formRespSheet.getRange(formRespSheet.getLastRow(), 9).getValue();

  const matchSheet = ss.getSheetByName('Match');
  const matchTableData = matchSheet.getRange(`A2:C${matchSheet.getLastRow()}`).getValues();
  // 仅查找和最新提交姓名完全匹配的单条记录
  const matchedRow = matchTableData.find(row => row[0] === latestName);

  if (matchedRow) {
    const [, location, email] = matchedRow;
    Logger.log(`匹配位置:${JSON.stringify(location)}`);
    Logger.log(`匹配邮箱:${JSON.stringify(email)}`);
  } else {
    Logger.log(`未查询到姓名「${latestName}」对应的位置、邮箱信息`);
  }
}
核心改动说明
  • 删除原逻辑中拉取I列所有历史提交姓名的代码,直接定位到表单响应表最后一行的姓名单元格,精准获取最新提交的姓名值
  • 将原批量过滤全量匹配项的filter+遍历输出逻辑,替换为find方法只查询和最新姓名匹配的单条记录,不会输出历史提交的匹配结果
  • 增加无匹配场景的日志提示,避免匹配失败时出现空值报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:33:40