【发布时间】:2019-07-20 05:46:38
【问题描述】:
我正在尝试将 sheet1 中的 2 列 (A:B) 与 sheet2 (A:B) 中的 2 列进行匹配,如果匹配,请将 sheet1 中匹配行的 C 列内容复制到 sheet2 中的匹配行。
我尝试改编几个脚本,但均未成功。下面的代码最接近我的要求,但由于我对脚本的了解有限,我无法根据我的确切需求对其进行调整。
Sheet1
A B C
Week Rotation Working
Week1 11 In
Week1 5 In
Week1 4 In
Week1 3 In
Week1 3 Off
Week1 7 Off
Sheet2
A B C
Week Rotation Working
Week1 6
Week1 5
Week1 4
Week1 3
Week1 3
Week1 11 (In should be copied to here)
我的代码:
function MatchColumns(){
// gets spreadsheet A and the range of data
var sheetA
=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Testa");
var dataA = sheetA.getRange(2, 1, sheetA.getLastRow(),
2).getValues();
// gets spreadsheet B and the range of data
var sheetB =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test2");
var dataB = sheetB.getRange(2, 1, sheetB.getLastRow(),
1).getValues();
// Added
var res = [];
for (var b in dataB) {
for (var a in dataA) {
if (dataA[a][0] == dataB[b][0]) res.push([dataA[a][3]]);
}
if (b != res.length - 1) res.push([""]);
}
sheetB.getRange(2, 2, res.length, res[0].length).setValues(res);
【问题讨论】:
-
您可以使用公式获得相同的结果。例如,在 Sheet1 上,您可以将列 D 中的 A 列和 B 列中的值组合起来。然后从 Sheet2 中查找该组合值。我会使用像“Week1-11”这样的分隔符,以便与“Week11-1”区分开来。
-
谢谢,非常有帮助,我陷入了困境。不同的视角达到同样的效果。
标签: google-apps-script google-sheets