如何在Google Sheets中使用QUERY按列分组统计去重文本数量
问题原因
你原来的QUERY公式中的count(E)是统计分组后所有匹配行的总数量,不会对E列的文本做去重处理,所以得到的是A对应6、B对应3的结果,不符合去重计数的需求。
解决方案
方案1:UNIQUE嵌套QUERY(最简洁,推荐)
先通过UNIQUE函数对C、E列的组合做去重,再用QUERY统计分组数量,公式如下:
=QUERY(UNIQUE({Client!C3:C, Client!E3:E}), "select Col1, count(Col2) where Col1 is not null group by Col1 label count(Col2) 'Col2'")
如果你的源数据C到E列没有多余无关内容,也可以直接写为:
=QUERY(UNIQUE(Client!C3:E1000), "select Col1, count(Col3) where Col1 is not null group by Col1 label count(Col3) 'Col2'")
原理是UNIQUE会先过滤掉C列和E列取值完全重复的行,剩下的每行都是唯一的[Col1, Col2]组合,再分组计数得到的就是每个Col1对应的不同Col2的数量。
方案2:COUNTUNIQUEIFS组合(适合多条件筛选场景)
如果需要更灵活的统计规则,可以用COUNTUNIQUEIFS直接按分组统计去重数量:
=BYROW(UNIQUE(TOCOL(Client!C3:C1000, 1)), LAMBDA(group_val, {group_val, COUNTUNIQUEIFS(Client!E3:E1000, Client!C3:C1000, group_val)}))
这个公式会自动提取C列所有非空的唯一分组值,逐个统计对应E列的唯一文本数量,不需要手动调整分组范围。
内容的提问来源于stack exchange,提问作者saji indra
相关产品推荐
相关产品推荐

