1

在 Google 电子表格中,想要根据另一个单元格中的值将一个单元格与另一个单元格相减。

例子:

If cell A1 = "Yes" 
  subtract B1 from C1 

If cell A1 = "No"
  subtract B1 from D1

If cell A1 = ""
  subtract B1 from C1

我认为必须为此构建一个小脚本(不确定)并提出了这个:

function sub() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();

  var nRange = ss.getRangeByName("sub");
  var group = nRange.getValues();;

  var range;

    if ( group == "Yes" ) {
     range = '=Q15-N15' }
    else if ( group == "No" ) {
     range = "=Q15-M15"}
    else if ( group == "" ) {
     range = "=Q15-M15"}

    return range
    }

现在它返回正确的范围,但公式没有生效。该脚本将范围从字面上粘贴到单元格中。

4

1 回答 1

1

如果您使用.getValues()读取范围的内容,您将收到一个二维数组值 - 即使该范围内只有一个单元格。如果您真的只想要一个值,请.getValue()改用。

因为你得到了一个数组,所以你的所有三个if测试都评估为false,并且没有一个为range. 尝试给range一个默认值开始:

var range = 'Range not set';

注意:自定义函数返回Values,它们不能设置单元格的公式。您的函数可以返回计算结果,或在单元格中显示的一行文本。如果必须设置公式,则必须使用以其他方式调用的函数,并使用Range.setFormula().

于 2013-09-09T02:47:43.630 回答