因此,我試圖將基于活動單元格選擇的特定列值與另一張表中的一組資料進行比較。這只能是部分匹配。
示例:將第一張 (1234) 中的資料值一個與第二張 (1235TN、1234TN 等) 的第 1 列中的一堆行進行比較 基本上我正在尋找前 4 個字符的部分匹配。一旦找到,將表 2 中的匹配資料存盤到新變數中。
我希望這足夠清楚嗎?這是我的示例代碼。所有資料都是從兩張表中提取的,我只是不知道如何部分匹配它們并存盤正確的值。
function compare() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var row = sheet.getActiveCell().getRow();
var col = 1;
var value = sheet.getRange(row, col).getValue();
var lookupSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Test');
var value2 = lookupSheet.getRange('A1:A150').getValues();
}
在上面的代碼中,我將 value 與 value2 進行比較,如果 value 部分匹配 value2(4 個字符),則存盤 value2
最好的,
D 表影像
uj5u.com熱心網友回復:
查找部分匹配項
function compare() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName('Sheet0');//You can change to active sheet
var row = sh.getActiveCell().getRow();
var col = 1;
var n = sh.getRange(row, col).getValue();
let re = new RegExp(`^${n.slice(0,4)}`,'');//first four characters
let o = [];
var lookupSheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');//you can change sheet name
lookupSheet.getRange('A1:A150').getValues().flat().forEach((e,i) => {
if(e.toString().match(re)) {
o.push({value:e,row:i 1});
}
})
Logger.log(JSON.stringify(o));
}
uj5u.com熱心網友回復:
function compare() {
const sheet = SpreadsheetApp.getActiveSheet()
const value = sheet.getRange(sheet.getActiveCell().getRow(), 1)
.getDisplayValue()
.slice(0, 4)
const partialMatch = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`Sheet1`)
.getRange(`A1:A150`)
.getDisplayValues()
.flat()
.find(cell => new RegExp(`${value}`, `i`).test(cell))
if (partialMatch) Logger.log(partialMatch)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/490755.html
下一篇:兩個同時谷歌表格的價值差異
