【发布时间】:2022-11-02 12:22:30
【问题描述】:
我正在尝试找到一种方法来连接一列数据,如果其他 2 列使用谷歌应用程序脚本彼此相等。我有一个这样做的公式: "ARRAYFORMULA(TEXTJOIN(" | ",True,IF($A$2:A=D2,$B$2:$B,"")))" 但查看时速度很慢大数据集。
这是我现在所拥有的。
function my_concat() {
var ssraw = SpreadsheetApp.openById("1blPwXgg1DTJCTxmWikU5b0IZUgDxxQR13WbN7UI4_Yo");
var sheetraw = ssraw.getSheetByName("TEST");
var range = sheetraw.getRange("B2:B");
var data = range.getValues();
var last = range.getLastRow();
for(var i = 2; i < data.length; i++){
var range1 = sheetraw.getRange(i,1).getValue();
var range2 = sheetraw.getRange(i,4).getValues();
if(range1 == range2){
var data1 = (data[i] + " | " + data[i]);
sheetraw.getRange('C' + 2 + ':C' + last).setValue(data1);
}
}
}
这是我的 g-sheet 的链接https://docs.google.com/spreadsheets/d/1blPwXgg1DTJCTxmWikU5b0IZUgDxxQR13WbN7UI4_Yo/edit#gid=1418632603
当我运行脚本时,我得到循环信息逐行并连接该行中的内容。
我得到了什么:鸡胸肉条 - 10 盎司 (oz) |鸡胸肉 - 10 盎司 (oz)
我所期待的:鸡胸肉条 - 10 盎司 (oz) |柚子酱 - 6 毫升 (ml) |酱汁,甜泰式辣椒 - 1 盎司 (oz) |大蒜,未剥皮- 1 瓣| 高分辨率照片| CLIPARTO石灰 - 1 件 (pc) |花生酱 - 1.15 盎司 (oz) |黄瓜,波斯- 1 Piece (pc) |韩国辣椒片 - 1 茶匙 (tsp) |香菜 - 0.25 盎司 (oz) |藜麦,白色 - 0.5 杯 (c) |浓缩鸡汤 - 9.6 克 (g)
【问题讨论】:
标签: google-apps-script google-sheets