gpt4 book ai didi

javascript - 匹配不同工作表上两列的文本字符串并使用谷歌脚本回发

转载 作者:行者123 更新时间:2023-12-01 02:32:56 25 4
gpt4 key购买 nike

我正在尝试匹配同一工作簿中两个单独工作表上的两列

我正在尝试匹配两张表中的 A 列

SheetA = 查找替换 SheetB = 测试

如果存在匹配项,则将 SheetA 中匹配单元格右侧的值回发到 SheetB 中的同一行但在 B 列中

匹配列中的范围大小可能不同

函数运行但未找到匹配项

另外,我想我会回发找到的每一行,但我只想在找到所有匹配项后回发一次

感谢您对此提供的任何帮助

如果这里有一些有用的 GS 以及一些数据和其中的功能:

https://docs.google.com/spreadsheets/d/1cVyCmnFYy_4Ghmx1r-dvCGhxrnu-tCPaKZSX_BRHfnM/edit?usp=sharing

function MatchColumns(){
// gets spreadsheet A and the range of data
var sheetA =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FindReplace");
var dataA = sheetA.getRange('A:B').getValues();

// gets spreadsheet B and the range of data
var sheetB = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var dataB = sheetB.getRange('A:B').getValues();

// loops through column A of spreadsheet A & B and compare
for(var i = 0; i > sheetA.getLastRow(); i++){
// checks to see if ith row value in 1st Column is the same
if(dataA[i][0] == dataB[i][0]){
//if match then get cell value in ajacent cell column B to right in sheetA
var value = sheetA.getRange(i+1, 2).getValue();
//Post Back the value in cell to column B in sheet B
sheetB.getRange(i+1, 2).setValue(value);
};
};
}

最佳答案

这个修改怎么样?请将此视为多种解决方案之一。

  • 它将数据处理为数组。
  • 如果sheetB的A列的值不存在于sheetA的A列,则if (b != res.length - 1) res.push([""]);为用过的。
    • 创建的数组长度必须与dataB的长度相同。我用过这个。

修改后的脚本:

function MatchColumns(){
// gets spreadsheet A and the range of data
var sheetA =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FindReplace");
var dataA = sheetA.getRange(2, 1, sheetA.getLastRow(), 2).getValues();

// gets spreadsheet B and the range of data
var sheetB = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
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][1]]);
}
if (b != res.length - 1) res.push([""]);
}
sheetB.getRange(2, 2, res.length, res[0].length).setValues(res);
}

结果:

enter image description here

如果我误解了你的问题,请告诉我。我想修改。

关于javascript - 匹配不同工作表上两列的文本字符串并使用谷歌脚本回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48176453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com