Excel中如何统计FILTER函数返回行数?解决时间重叠重复计数问题
Excel中统计FILTER返回行数的方法(替代SQL COUNTROWS)
要统计FILTER函数返回的数据集行数,直接使用ROWS()函数嵌套FILTER即可,效果等价于SQL的COUNTROWS功能。
基础用法示例
假设你已通过FILTER实现了正确的时间区间重叠判断逻辑,比如:
=FILTER(DatabaseA, (DatabaseA[开始时间] <= DatabaseB[结束时间]) * (DatabaseA[结束时间] >= DatabaseB[开始时间]))
将该FILTER公式作为ROWS的参数,就能直接得到符合条件的记录数:
=ROWS(FILTER(DatabaseA, (DatabaseA[开始时间] <= DatabaseB[结束时间]) * (DatabaseA[结束时间] >= DatabaseB[开始时间])))
处理无匹配结果的场景
如果FILTER未找到符合条件的记录,会返回#CALC!错误,可通过IFERROR包裹公式,返回0避免错误显示:
=IFERROR(ROWS(FILTER(DatabaseA, (DatabaseA[开始时间] <= DatabaseB[结束时间]) * (DatabaseA[结束时间] >= DatabaseB[开始时间]))), 0)
补充:时间区间重叠的准确判断逻辑
你使用的A开始 <= B结束 且 A结束 >= B开始是标准的时间重叠判断条件,能正确识别包含、交叉等所有重叠场景,不会出现之前的重复计数问题,配合ROWS即可得到准确的重叠次数。
内容的提问来源于stack exchange,提问作者Victor G
相关产品推荐
相关产品推荐

