Google 表格 - 无法使用 if 语句比较运行 2 个循环的 2 列来填充列

问题描述 投票:0回答:1

Google Apps 脚本和工作表脚本的新功能*

我有 3 列数据, 第一个是第二列的数字表示,其中包含 52631 行长的名称, 第三个就像我需要与第二个进行比较的名称列表,如果两者相同,我需要将同一行中的数字放入新的第 4 列中, 第 3 列长 52631 行,

我在这里和那里修复和学习了几个小时,但无法让它工作,

示例: 数量 | 唯一名称 |名称 |结果(我需要做的) 1 你好你好2 2 你好晚安
3 上午 下午 4 早安晚安 你好1 你好2 早上3

这是我到目前为止得到的:

function addLogNumber() {

  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
  
  for (var i = 1; i <= 52631; i++) {//loop for third column

    for (var j = 1; j <= 3209; j++) {//loop for second column

      var tabelaSis = range.getCell(3,i).getValue();//third column
      var nomeLog = range.getCell(2,j).getValue();//second column
      var codLog = range.getCell(1,j).getValue();//first column
      
        if(tabelaSis==nomeLog){
          range.getCell(i,4).setValue(codLog);
          break;
        }
    }
  }
}
google-sheets google-apps-script google-sheets-formula google-sheets-api spreadsheet
1个回答
0
投票

使用循环比较 2 个单元格

我修改并删除了一些代码,

.getActiveRange();
将返回活动单元格的位置并删除另一个for循环。如果第二列与第三列匹配,则第四列将输入第一列的编号,根据我对您问题的理解,这就是结果。

示例输出: Sample Output

示例代码:

function addLogNumber() {

  const range = SpreadsheetApp.getActiveSheet();

  for (let i = 1; i < range.getLastRow() + 1; i++){
    const uniqueName = range.getRange(i, 2).getValue();
    const name = range.getRange(i, 3).getValue();
    if(uniqugetRange(i, 4).setValue(i - 1);
    }
  }
}

参考:

© www.soinside.com 2019 - 2024. All rights reserved.