![](/img/trans.png)
[英]Paste the static value in the column besides if the particular cell is empty in google sheets
[英]compare column A in google sheets by scripts. when match is correct then paste offset value in both side
我通过循环比较来自 Sheet 00 和 01 的数据。 我正在使用 VBA,这是我使用 JavaScript 的第一步。
https://docs.google.com/spreadsheets/d/176pTsstzHQ5FfhEvFJswQUidIGMGTi6jjkTavj2BQOQ/edit?usp=sharing
在输出中,我有重复的数据。 现在,我尝试在 logger.log 中找到一些要理解的点,如果我理解我需要在匹配到下一次迭代后跳过循环。 我要求支持我在正确指导我做错的地方:) 提前谢谢你。
比较 COL_A - 找到 - 唯一 - 在某个工作簿中的 2 张纸中。 sheet00 收集新数据以与工作表 01 进行比较。问题是:匹配 find1,find2 后 - 我在输出中有重复的行。 find_is_value_is_exist_then_paste_in_both_side
function abc() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh_0=ss.getSheetByName("CA_SHEET_00")
var lastRow=sh_0.getLastRow()
var CA_Sheet_00= sh_0.getRange(2,1,lastRow-1,12).getValues();
Logger.log('LastRow 00_CA_SHEET'+' - row - '+lastRow);
var sh_1=ss.getSheetByName("AA_01")
var lastRow_01=sh_1.getLastRow()
var AA_01 = sh_1.getRange(2,1,lastRow_01-1,12).getValues();
Logger.log('lastRow_01 AA_01'+' - row - '+lastRow_01);
var aaa = [];
var bbb = [];
i=0;
j=0;
for (var i = 0; i < CA_Sheet_00.length; i++) {
for (var j = 0; j < AA_01.length; j++) {
if(CA_Sheet_00[i][0]===AA_01[j][0]){
Logger.log('00'+CA_Sheet_00[i][0]+' - CA_SHEET_00 - row '+[i]);
Logger.log('01'+AA_01[j][0]+' - AA_01 - row '+[j]);
aaa.push([CA_Sheet_00[i][11],CA_Sheet_00[3],AA_01[4],]);
bbb.push([CA_Sheet_00[j][3],]);
sh_0.getRange(2+i,13,aaa.length,3).setValues(aaa); // 00
sh_1.getRange(2+j,13,bbb.length,1).setValues(bbb); }} }}
由Copper修改代码后,它将被定义为这样。 我只是将列中的输出分开为单个 (13,14,15)
function abc() { var ss=SpreadsheetApp.getActive(); var sh0=ss.getSheetByName("CA_SHEET_00"); var vA=sh0.getRange(2,1,sh0.getLastRow()-1,12).getValues(); var sh1=ss.getSheetByName("AA_01") var vB=sh1.getRange(2,1,sh1.getLastRow()-1,12).getValues(); for(var i=0;i<vA.length;i++) { for(var j=0;j<vB.length;j++) { if(vA[i][0]==vB[j][0]){ sh0.getRange(2+i,13).setValue(Utilities.formatString('%s',vA[i][11])); sh0.getRange(2+i,14).setValue(Utilities.formatString('%s',vA[i][3])); sh0.getRange(2+i,15).setValue(Utilities.formatString('%s',vA[i][0])); sh1.getRange(2+j,13).setValue(vA[i][3]); } } } }
我不明白你的问题是什么,但我认为这就是你试图用你的代码来完成的。
function abc() {
var ss=SpreadsheetApp.getActive();
var sh0=ss.getSheetByName("CA_SHEET_00");
var vA=sh0.getRange(2,1,sh0.getLastRow()-1,12).getValues();
var sh1=ss.getSheetByName("AA_01")
var vB=sh1.getRange(2,1,sh1.getLastRow()-1,12).getValues();
for(var i=0;i<vA.length;i++) {
for(var j=0;j<vB.length;j++) {
if(vA[i][0]==vB[j][0]){
sh0.getRange(2+i,13).setValue(Utilities.formatString('%s,%s,%s',vA[i][11],vA[i][3],vB[i][4]));
sh1.getRange(2+j,13).setValue(vA[i][3]);
}
}
}
}
如果我完全没有抓住要点,我深表歉意;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.