Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement googlesheets-If语句填充单元格_If Statement_Google Sheets - Fatal编程技术网

If statement googlesheets-If语句填充单元格

If statement googlesheets-If语句填充单元格,if-statement,google-sheets,If Statement,Google Sheets,感觉这应该很容易,但我不断地发现与循环逻辑相关的错误 C列“总计”将始终由用户首先输入。如果用户在B列“变量”中输入数字,则A列“固定”将填充C-B。如果用户在A列“固定”中输入数字,则B列“变量”将填充C-A 您试图添加的公式总是需要相互依赖才能生成输出,因此,它将遇到循环依赖错误 可能的解决方案: 尝试使用文件–>电子表格设置–>计算下的“迭代计算”选项。您可以看到迭代计算的说明。这里有一种避免循环引用的方法:不要手动输入任何公式,而是仅在必要时使用onEdit()脚本以编程方式插入公式 编

感觉这应该很容易,但我不断地发现与循环逻辑相关的错误

C列“总计”将始终由用户首先输入。如果用户在B列“变量”中输入数字,则A列“固定”将填充C-B。如果用户在A列“固定”中输入数字,则B列“变量”将填充C-A


您试图添加的公式总是需要相互依赖才能生成输出,因此,它将遇到循环依赖错误

可能的解决方案:


尝试使用文件–>电子表格设置–>计算下的“迭代计算”选项。您可以看到迭代计算的说明。

这里有一种避免循环引用的方法:不要手动输入任何公式,而是仅在必要时使用
onEdit()
脚本以编程方式插入公式

编辑a列时,以下脚本将在B列中输入公式,反之亦然:

function onEdit(e) {
  if (!e) {
    throw new Error('Please do not run the script in the script editor window. It runs automatically when you hand edit the spreadsheet.');
  }
  const watchSheet = /^(Sheet1|Sheet2|Sheet3|Sheet4)$/i;
  const watchColumns = [
    {
      colNumber: 1,
      formula: '=C:C - B:B',
    },
    {
      colNumber: 2,
      formula: '=C:C - A:A',
    },
  ];
  const sheet = e.range.getSheet();
  if (!sheet.getName().match(watchSheet)) {
    return;
  }
  const editedColumn = watchColumns.filter(column => column.colNumber === e.range.columnStart)[0];
  if (!editedColumn) {
    return;
  }
  const updateColumns = watchColumns.filter(column => column.colNumber !== editedColumn.colNumber);
  updateColumns.forEach(column => {
    sheet
      .getRange(e.range.rowStart, column.colNumber)
      .setFormula(column.formula);
  });
}