Google Sheets多工作表批量统计:求L列小于今日日期的单元格数
解决Google Sheets多工作表日期统计问题
问题原因
你之前使用的ARRAYFORMULA(COUNTIF(INDIRECT("'"&A1:A20&"'!A:A"), "<"&TODAY()))返回0,核心原因是COUNTIF无法直接处理由INDIRECT数组生成的多个独立单元格范围,ARRAYFORMULA无法驱动COUNTIF迭代每个工作表的范围完成计算。
解决方案
1. 逐个返回每个工作表的统计结果
如果需要在对应行显示每个工作表的符合条件单元格数量,使用BYROW函数迭代处理每个工作表名称:
=BYROW(A1:A20, LAMBDA(sheet, IF(sheet="",, COUNTIF(INDIRECT("'"&sheet&"'!L:L"), "<"&TODAY()))))
- 逻辑:
BYROW遍历A1:A20的每个单元格,对非空的工作表名称,用INDIRECT引用对应工作表的L列,再通过COUNTIF统计日期小于今日的单元格数;空单元格返回空白,避免无效计算。
2. 汇总所有工作表的总数
如果需要直接得到所有工作表的符合条件单元格总和,用SUM+MAP组合:
=SUM(MAP(A1:A20, LAMBDA(sheet, IF(sheet="", 0, COUNTIF(INDIRECT("'"&sheet&"'!L:L"), "<"&TODAY())))))
- 逻辑:
MAP遍历每个工作表名称,返回对应统计数(空名称返回0),最后用SUM汇总所有结果。
注意事项
- 确保A1:A20中的工作表名称与实际工作表名称完全一致(包括大小写、空格、特殊字符),否则
INDIRECT会引用失败。 - 新增工作表时,只需在A1:A20中添加对应名称,公式会自动计算,无需修改公式本身。
内容的提问来源于stack exchange,提问作者user2901219
相关产品推荐
相关产品推荐

