【问题标题】:Formula to edit a cell based on if-else condition根据 if-else 条件编辑单元格的公式
【发布时间】:2021-05-23 04:28:34
【问题描述】:

我打算创建一个单元格,如果 G2 中的单元格为空,那么它将复制 A 行中的内容,但如果 G 列中的单元格更新了其他内容,我不想复制 A 行中的内容。我在 App Script 中完成了类似的代码,但它不起作用。

function getLast(range) {
    var getResult = function(range) {
        if (!((range.getNumRows() > 1 && range.getNumColumns() == 1) || (range.getNumRows() == 1 && range.getNumColumns() > 1))) {
            throw new Error("Please input one row or one column.");
        }
        var v = Array.prototype.concat.apply([], range.getValues());
        var f = Array.prototype.concat.apply([], range.getFormulas());
        var i;
        for (i = v.length - 1; i >= 0; i--) {
            if (v[i] != "" || f[i] != "") break;
        }
        return i + 1;
    };
    if (Array.isArray(range)) {
        return range.map(function(e) {
            return getResult(e);
        });
    } else {
        try {
            range.getA1Notation();
        } catch (e) {
            throw new Error("Inputted value is not a range.");
        }
        return getResult(range);
    }
}

function formulasheets(){
  var ss = SpreadsheetApp.openByUrl(url);
  var sheet = ss.getSheetByName("USERNAMES");
  sheet.getRange("G2").setFormula('=IF(G2="",A2, ');
  var range1 = sheet.getRange("B:B");
  var fillDownRangecolumnI = sheet.getRange(2, 7, lr-1);
  sheet.getRange("G2").copyTo(fillDownRangecolumnA);
}

我附上了我的谷歌表格的图片,以更好地解释我想要什么。谁能帮我解决这个问题。谢谢你。

                                             If Cell G2 & G5 is empty

                                        It should be updated with content in row A

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    我看到你的问题,我想试一试,希望它对你有用。请参考下面我编辑的代码,我认为您最好使用for循环来检查空白,并避免编写公式:

    function formulasheets(){
      var ss = SpreadsheetApp.openByUrl(url);
      var sheet = ss.getSheetByName("USERNAMES");
      for (var x=1;x <= sheet.getLastRow();x++){
        var cell = sheet.getRange(x,7);
        if (cell.isBlank()){
          sheet.getRange(x,1).copyTo(cell);
        }
      }
    }
    

    执行前

    执行后,如有帮助,请接受,这是我第一次回答G Apps Script :)

    【讨论】:

    • 这就是我想要的。非常感谢您的帮助
    • 欢迎,我也喜欢应用程序脚本 :)
    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    相关资源
    最近更新 更多