【问题标题】:Simple for loop, if statement and output message简单的 for 循环、if 语句和输出消息
【发布时间】:2018-10-21 18:16:19
【问题描述】:

我觉得这个很简单,但我是新手,所以我不知道从这里去哪里:)

我有一个 Google 表格,其中包含一些数据(相当大的表格)。我想要一个脚本来检查单元格中的数字(第 I 列)是否大于同一行中的数字,但另一列(D 列)中的数字。

想象两列有 5 行:D 列 = (3, 3, 3, 3, 3) 和 I 列 = (2, 2, 7, 2, 2)

所以在这个例子中,我希望脚本告诉我“第 3 行”有问题,因为第 I 列第 3 行中的数字大于 D 列第 3 行中的数字:)

这就是我所拥有的:

    function Check() {

      var spreadsheet = SpreadsheetApp.getActive();
      var sheet = spreadsheet.getActiveSheet();
      var lr = sheet.getLastRow();
      var Summary;

      for (var i=6; i<lr; i++) {
        if (sheet.getRange(i,9) > sheet.getRange(i,4)){
          summary.setvalue("Problem")

         }  
      } 

    }

我希望它从第 6 行开始,因为我的数据从这里开始。我只检查 I 列(因此为 9)和 D 列(因此为 4)

我不确定如何处理此处的 for 循环和 If 语句?所以现在代码正在检查第 4 列(D)和第 I 列(9)中的每一行,但是当第 9 列中的数字大于第 4 列中的数字时,我如何存储该值?而且我还想要一个输出,当代码完成时,我们有问题的所有行?如果我们没有任何问题,我想要一条消息说:“没问题”

有人可以从这里指导我吗?

【问题讨论】:

    标签: javascript for-loop if-statement google-apps-script google-sheets


    【解决方案1】:

    如果您的输出可以在工作表中设置(比如说在“J”列中),您可以使用这个:

    function Check() {
      var spreadsheet = SpreadsheetApp.getActive();
      var sheet       = spreadsheet.getActiveSheet();
      var maxRows     = sheet.getMaxRows(); // get the number of rows
      var startRow    = 6;
      var diffCol1    = 'D';
      var diffCol2    = 'I';
      var outputCol   = 'J';
      var outputStrOK = 'no problem';
      var outputStrKO = 'problem';
      var outputRange = []; // stored values
      for (var i = startRow; i <= maxRows; i++) {
        var valueA = sheet.getRange(diffCol2+i).getValue();
        var valueB = sheet.getRange(diffCol1+i).getValue();
        // add controls on values then
        if (valueA > valueB) {
          outputRange.push([outputStrKO]);
        } else {
          outputRange.push([outputStrOK]);
        }
      }
      // setting a range of values is much faster than fulfilling cell by cell in loop
      sheet.getRange(outputCol+startRow+':'+outputCol+maxRows).setValues(outputRange);
    }
    

    结果应该是这样的:

    #|D|I|J
    6|9|4|problem
    7|4|9|no problem
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      相关资源
      最近更新 更多