You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets跨多工作表统计未勾选复选框数量求助

批量统计Google Sheets多工作表复选框未勾选数量

针对你需要统计70个教师工作表中B/C/D列未勾选复选框数量的需求,以下是两种无需手动输入工作表名的解决方案:

方案1:自定义函数+数组公式(无需批量运行脚本)

步骤1:创建获取工作表名的自定义函数

  1. 打开目标表格,点击「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴以下脚本:
function GETSHEETNAMES() {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(sheet => sheet.getName());
}
  1. 保存项目(可命名为SheetNameTools),关闭脚本编辑器

步骤2:自动生成工作表名列表

在新建的「统计总表」A1单元格输入:

=GETSHEETNAMES()

A列会自动列出所有工作表的名称,后续新增工作表时右键A1单元格选择「刷新」即可更新。

步骤3:批量统计未勾选数量

在「统计总表」的B1-D1分别输入表头:未携带满电Chromebook、未携带充电器、未携带保护套,E1输入总计未完成,然后在对应单元格输入以下公式:

  • B2(统计B列未勾选):
=BYROW(A2:A, LAMBDA(sheet, IF(sheet="",,COUNTIF(INDIRECT("'"&sheet&"'!B:B"), FALSE))))
  • C2(统计C列未勾选):
=BYROW(A2:A, LAMBDA(sheet, IF(sheet="",,COUNTIF(INDIRECT("'"&sheet&"'!C:C"), FALSE))))
  • D2(统计D列未勾选):
=BYROW(A2:A, LAMBDA(sheet, IF(sheet="",,COUNTIF(INDIRECT("'"&sheet&"'!D:D"), FALSE))))
  • E2(总计):
=BYROW(B2:D, LAMBDA(row, IF(COUNTA(row)=0,,SUM(row))))

公式会自动遍历所有工作表,批量计算结果。

注:若工作表第一行是表头(无复选框),可将公式中的B:B改为B2:B,避免统计无效行。

方案2:一键生成统计结果(Apps Script批量处理)

如果希望直接生成统计数据无需维护公式,可使用以下脚本:

  1. 打开「Apps Script」,粘贴代码:
function generateCheckboxStats() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  const statsSheet = ss.getSheetByName("统计总表") || ss.insertSheet("统计总表");
  
  // 清空旧数据,保留表头
  statsSheet.clearContents();
  statsSheet.getRange(1,1,1,5).setValues([["教师工作表", "未携带满电Chromebook", "未携带充电器", "未携带保护套", "总计未完成"]]);
  
  // 遍历所有工作表统计数据
  const statsData = sheets.map(sheet => {
    const name = sheet.getName();
    // 统计B/C/D列未勾选(FALSE)的数量
    const colB = sheet.getRange("B:B").getValues().flat().filter(val => val === false).length;
    const colC = sheet.getRange("C:C").getValues().flat().filter(val => val === false).length;
    const colD = sheet.getRange("D:D").getValues().flat().filter(val => val === false).length;
    return [name, colB, colC, colD, colB + colC + colD];
  });
  
  // 写入统计结果
  statsSheet.getRange(2,1,statsData.length,5).setValues(statsData);
}
  1. 保存后点击运行按钮,授权后即可自动生成「统计总表」,包含所有工作表的统计数据。后续更新时重新运行该函数即可。

关于你之前INDIRECT函数失败的原因

通常是因为工作表名称包含空格或特殊字符,需要用'"&sheetName&"'将表名包裹,确保INDIRECT能正确解析工作表引用。

内容的提问来源于stack exchange,提问作者Andrew Berg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:15:43