Google Sheets 跨工作表统计Client ID出现次数的公式咨询
谷歌表格跨工作表统计Client ID出现总次数解决方案
方案1:已知其他工作表名称(无需写脚本,运算速度快)
假设Clients工作表中Client ID列的首个数据单元格为A2,Orders列首个数据单元格为B2,可直接在B2输入以下公式:=SUMPRODUCT(COUNTIF(INDIRECT({"表1","表2","表3"}&"!A:Z"), A2))
参数调整说明
- 把
{"表1","表2","表3"}替换为你实际除了Clients之外所有需要统计的工作表名称,名称用英文引号包裹,不同名称用英文逗号分隔 - 如果你确定所有工作表的Client ID都固定在某一列,可把
A:Z替换为对应列号(比如A:A),大幅提升公式运算效率 - 把
A2替换为你当前行对应Client ID的实际单元格位置
公式输入后下拉填充即可批量统计所有Client ID的出现次数。
方案2:工作表数量多,自动排除Clients表统计所有其他表
如果工作表数量太多手动列名称效率太低,可以用自定义函数实现自动统计:
- 点击表格顶部菜单「扩展程序」-「Apps Script」,打开脚本编辑器
- 清空默认生成的代码,粘贴以下代码:
function COUNT_ALL_SHEETS(clientId) { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheets = ss.getSheets(); let total = 0; sheets.forEach(sheet => { // 跳过Clients工作表不统计 if(sheet.getName() !== 'Clients') { const data = sheet.getDataRange().getValues(); data.forEach(row => { total += row.filter(item => item === clientId).length; }) } }) return total; }
- 点击保存项目,刷新谷歌表格页面
- 回到Clients表的Orders列,在单元格输入
=COUNT_ALL_SHEETS(A2)下拉填充即可使用
注意事项
- 自定义函数默认不会实时同步其他工作表的修改,修改数据后可以重新输入公式或者轻改单元格内容触发刷新
- 统计前请确保Clients表的Client ID格式和其他表的Client ID格式一致,避免因格式不匹配导致漏统计
内容的提问来源于stack exchange,提问作者Mikebb
相关产品推荐
相关产品推荐

