求基于大数据集统计聚合属性TRUE值数量的Google Sheets公式
解决方案
单个Market统计(可复用公式)
针对大数据集,COUNTIFS比FILTER+COUNTIF更高效,直接用以下公式:
- 统计指定Market(如单元格
B3的值)的CalledTRUE数量:=COUNTIFS(B:B, B3, D:D, TRUE) - 统计指定Market的
RegisteredTRUE数量:=COUNTIFS(B:B, B3, E:E, TRUE) - 统计该Market总行数(用于计算百分比):
=COUNTIF(B:B, B3) - 百分比计算(自动处理空值报错):
=IFERROR(COUNTIFS(B:B, B3, D:D, TRUE)/COUNTIF(B:B, B3), 0)
自动生成全Market汇总表
用QUERY一键生成所有Market的统计结果,无需逐个单元格输入,公式可直接复用:
=QUERY(B:E, "SELECT B, COUNT(B), SUM(D), SUM(E), SUM(D)/COUNT(B), SUM(E)/COUNT(B) WHERE B IS NOT NULL GROUP BY B LABEL B 'Market', COUNT(B) '总行数', SUM(D) 'Called_TRUE数量', SUM(E) 'Registered_TRUE数量', SUM(D)/COUNT(B) 'Called完成率', SUM(E)/COUNT(B) 'Registered完成率'", 1)
说明:
SUM(D)会自动统计TRUE数量(Google Sheets/Excel中TRUE等价于1,FALSE等价于0)GROUP BY B按Market维度分组聚合- 最后参数
1表示原始数据首行为表头
原公式失效原因
你写的=COUNTIF(FILTER(B10:E,B10:B=B3),D10:D=TRUE)存在两个问题:
FILTER返回多列范围,COUNTIF无法识别跨列的条件D10:D=TRUE- 若要保留
FILTER逻辑,正确写法应为:=COUNT(FILTER(D:D, B:B=B3, D:D=TRUE))
但COUNTIFS在大数据集下的运算效率更高,更推荐使用。
内容的提问来源于stack exchange,提问作者nbar204
相关产品推荐
相关产品推荐

