Google Sheets Query中如何实现类似SQL的DISTINCT去重分组统计
Google Sheets 的 QUERY 函数暂不支持原生的 COUNT(DISTINCT) 类去重计数语法,你可以先对数据源做去重预处理后再传入 QUERY 实现需求,推荐的公式写法如下:
=QUERY(UNIQUE(FILTER(Sheet11!A:C, Sheet11!C:C=TRUE)), "select Col1, count(Col2) group by Col1 order by count(Col2) desc", 1)
公式逻辑说明
- 先通过
FILTER(Sheet11!A:C, Sheet11!C:C=TRUE)筛选出所有 C 列 Billable 值为 TRUE 的行,提前排除不符合统计条件的条目 - 再用
UNIQUE()对筛选结果去重,同一个项目、同一个用户的重复条目只会保留1条,从根源上避免重复计数 - 最后用 QUERY 对去重后的结果做分组统计,这里因为传入 QUERY 的是处理后的内存数组,不能直接用原表的 A、B 列名,需要用
Col1(对应原 A 列项目名)、Col2(对应原 B 列用户名)指代对应列。
如果想要自定义表头避免原表头被过滤的问题,可以用数组拼接的写法手动加表头:
={"项目","唯一计费用户数";QUERY(UNIQUE(FILTER(Sheet11!A2:B, Sheet11!C2:C=TRUE)), "select Col1, count(Col2) group by Col1 order by count(Col2) desc", 0)}
内容的提问来源于stack exchange,提问作者superunknown
相关产品推荐
相关产品推荐

