如何使用IF条件设置公式?

时间:2019-10-16 14:20:58

标签: if-statement google-apps-script google-sheets

我正在为我的公司创建一个工具,我希望它创建一个新的工作表并在“主工作表”中列出它们。当在主工作表的一行中选中复选框时,我希望“辅助工作表”中的单元格显示“完成”,否则为“未完成”。

我的问题是: 公式未正确应用于单元格。

我试图避免在setFormula函数中使用“或”,但未进行任何更改,并且单元格中仍然存在“错误”

function newsheet(){
var s = SpreadsheetApp.getActive();
//All lines to create the new sheet
s.getRange('L1').setValue("=IF(MainSheet!H3=TRU;\"FINISH\";\"NOT FINISHED\")");
}

//I also tried the following :

function tests(){
  var s = SpreadsheetApp.getActive();
  var finished = '"FINISHED"';
  var not_finished = '"NOT FINISHED"';
  s.getRange('L1').setFormula('=IF(MainSheet!H3=TRUE;'+finished+';'+not_finished+')');
}

我希望此行应用公式,以便任何时候复选框的任何更改都可以在不使用脚本的情况下修改单元格,但现在在两个测试中我都遇到“公式分析错误”。

Image shows incoherence between the cell with formula written by script, the copy/paste cell and the copy/paste formula in cell

2 个答案:

答案 0 :(得分:0)

我建议您交替使用单引号和双引号,以避免混淆转义。此外,您的公式中还有一个小的输入错误:“ TRU”而不是“ TRUE”。

这有效:

function newsheet(){
var s = SpreadsheetApp.getActive();
//All lines to create the new sheet
s.getRange('L1').setValue('=IF(MainSheet!H3=TRUE;"FINISH";"NOT FINISHED")');
}

答案 1 :(得分:0)

经过几次尝试,我发现了一些东西

    function tests(){
  var s = SpreadsheetApp.getActive();
  s.getRange('L1').setFormula("IF(H3=TRUE;\"TERMINEE\";\"EN COURS\")");
}

这有效,但是我的脚本昨天还是一样(但是是法语),并且不再能理解法语。