google-apps-script - 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
... ...
解决方案
试试下面的代码
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]);
}
})
}
推荐阅读
- android - E/LoadedApk:无法仅在 Android Q (API 29) 上实例化 appComponentFactory
- spinnaker - Spinnaker halyard 部署 - 覆盖 readinessprobe 配置
- javascript - 在 webgl 中旋转旋转轴
- amazon-web-services - 想使用 terraform 在一个 vpc 下创建两个 ec2 实例
- angular - RouterLink在第一次点击后不更新目标组件
- python - 使列表中每个 DataFrame 的每一列成为一个大列表中的自己的列表
- javascript - 如何访问对象内部数组中的值
- vue.js - 如何从 Vue.js 中另一个组件的方法渲染组件
- jquery - 如何使用 jquery 循环遍历多个分支 json 数组而不将结果限制为单个数组?
- c++ - 单链表被核心转储的 Hackerearth 练习问题的代码