首页 > 解决方案 > Google表格:调整B列中的行以位于A列相同行的前面(脚本)

问题描述

我的工作表中有 A 列和 B 列,其中包含以下记录集:

COLUMN A   COLUMN B
value1     value1
value2     value4
value3     value6
value4
value5
value6
...

所以 B 列中缺少一些记录。使用脚本,我需要更新 B 列,所以它应该如下所示:

COLUMN A   COLUMN B
value1     value1
value2     
value3     
value4     value4
value5
value6     value6
...        ...

标签: google-apps-scriptgoogle-sheets

解决方案


试试下面的代码

function myFunction() {
  let colB = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("B:B");
  let colBValues = colB.getValues().filter(val => val[0].length > 0);
  let colAValues = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A:A").getValues();
  colB.clear();
  colBValues.forEach(valB => {
    let r = colAValues.findIndex(valA => valA[0] == valB[0]);
    if(r !== -1) {
      r = r + 1; //because js array index begins at 0 but gSheet begins at 1
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(r, 2).setValue(valB[0]);
    }
  })
}


推荐阅读