You need to enable JavaScript to run this app. Google Apps Script跨工作表匹配数据按指定范围反序复制实现求助
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script跨工作表匹配数据按指定范围反序复制实现求助

问题解决代码&实现思路

核心修正点

  • 原代码仅匹配了第一条符合条件的行,修正后会筛选所有匹配宠物名称的行
  • 新增反序取最新15条的逻辑,适配从新到旧的粘贴要求
  • 新增目标区域旧数据清空逻辑,避免残留历史数据
  • 替换了原代码中错误的范围取值写法,直接赋值性能更稳定

完整可运行代码

function get15lastRowsBDvisitasToFichaMascota() {
  const libro = SpreadsheetApp.getActiveSpreadsheet();
  const hojaOrigen = libro.getSheetByName('BD visitas');
  const hojaDestino = libro.getSheetByName('Ficha mascota');

  // 1. 获取目标宠物名称,为空直接退出
  const nombreVisor = hojaDestino.getRange('D18').getValue().trim();
  if (!nombreVisor) return;

  // 2. 获取源表有效数据,无有效数据直接退出
  const lastRowOrigen = hojaOrigen.getLastRow();
  if (lastRowOrigen < 7) return;
  const tablaDeBusquedaNombre = hojaOrigen.getRange('B7:I' + lastRowOrigen).getValues();

  // 3. 筛选所有匹配宠物名的行,提取需要的列值
  const matchedRows = [];
  tablaDeBusquedaNombre.forEach(row => {
    if (row[0]?.trim() === nombreVisor) {
      matchedRows.push([
        row[1], // 源C列:日期
        row[5], // 源G列:就诊原因
        row[6], // 源H列:症状
        row[7]  // 源I列:备注
      ]);
    }
  });

  // 4. 反序得到从新到旧的排列,截取最新15条
  const sortedMatched = matchedRows.reverse().slice(0, 15);

  // 5. 清空目标区域旧数据
  hojaDestino.getRangeList(['C39:C53', 'D39:D53', 'G39:G53', 'M39:M53']).clearContent();

  // 6. 按要求填充数据,最新记录放在第39行,依次往后排列
  sortedMatched.forEach((rowData, index) => {
    const targetRow = 39 + index;
    hojaDestino.getRange(`C${targetRow}`).setValue(rowData[0]);
    hojaDestino.getRange(`D${targetRow}`).setValue(rowData[1]);
    hojaDestino.getRange(`G${targetRow}`).setValue(rowData[2]);
    hojaDestino.getRange(`M${targetRow}`).setValue(rowData[3]);
  });
}

关键逻辑说明

  1. 数据筛选:遍历源工作表B列所有有效数据,提取出所有与目标宠物名称匹配的行,同时把需要的C、G、H、I列值存入数组
  2. 排序截取:因为源工作表行号越大数据越新,所以先将筛选得到的数组反转,得到从新到旧的顺序,再截取前15条
  3. 数据填充:先清空目标工作表39-53行对应列的旧数据,再按顺序将最新的记录放在第39行,依次往后排列,不足15条的部分自动留空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 12:06:05