【问题标题】:Google Sheet that adds the same cell on all the following tabs在以下所有选项卡上添加相同单元格的 Google 表格
【发布时间】:2023-04-09 16:01:01
【问题描述】:

我有一个名为摘要的摘要表。 然后我有多个适用于人们的标签 - 这些标签以他们的名字命名,例如约翰·史密斯、威尔·琼斯、莎莉·史密斯…… 我想对每个命名选项卡中的相同单元格进行求和或计数 - 如何自动执行此操作?

【问题讨论】:

  • 我最近在下面添加了一个答案。如果这对您有用,请投票并选择它作为其他人的答案,以便他们来到这里并想要解决与您类似的问题时快速识别它。
  • 我已更新答案以排除您提到的摘要表。在 getSheets() 调用中添加了过滤器。

标签: google-apps-script google-sheets sum countif


【解决方案1】:

您实际上可以做的是遍历所有工作表并将它们汇总。 下面的示例显示了如何对所有工作表中的所有单元格“A1”求和。

function sumCells() {
    const cellLocation = "A1"; 
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sheets = ss.getSheets().filter(function (sheet) {
      return sheet.getSheetName() != "Summary";
    }); // added filter to exclude Summary sheet from the calculation

    var sum = 0;
    var sheetName, cell, value;
    sheets.forEach((sheet) => {
        sheetName = sheet.getName();
        cell = sheet.getRange(cellLocation)
        value = cell.getValue();
        sum += parseFloat(value); // if has decimal
        // sum += parseInt(value); // if has whole numbers (no decimal)
    })
    Logger.log(sum);
}

【讨论】:

  • 好答案。就一个音符。您可以添加一行或条件来排除Summary 工作表。在开始时将其从 sheets 对象或 forEach 循环中排除。
  • 嘿,谢谢@Marios,这让我大吃一惊。我将编辑那个答案。为了提高效率,最好将其从sheets 中排除,而不是在循环内的条件中。
  • 感谢纳粹的参与。不过,这对我不起作用-有几点: 1. 我需要传递给它什么? =sumCells("C10") 例如? 2. 它说我的脚本需要由谷歌验证 - 这是一回事吗?我该如何让他们这样做?
  • 我什么都不传 (), ("c10") 或 (c10) 它都返回一个空白
  • 你好@MarkAinsworth,你不需要向函数传递任何东西。您只需要在放置要添加的数据的位置更新 cellLocation 值。在我上面提供的代码中,将“A1”更改为您要总结的单元格(我相信是 C10),然后运行该函数。
猜你喜欢
  • 2020-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多