如何在Google Sheets中结合GROUP BY和TRIM实现QUERY数据查询?
解决方案
你原来的写法报错是因为Google Sheets的QUERY使用的查询语言不支持在GROUP BY子句中直接调用TRIM这类字段处理函数,你需要提前对F列执行TRIM操作后再传入QUERY做统计,可用以下公式直接实现需求:
=QUERY(ARRAYFORMULA(TRIM(F2:F)), "SELECT Col1, COUNT(Col1) WHERE Col1 <> '' GROUP BY Col1 ORDER BY COUNT(Col1) DESC LABEL Col1 'Type', COUNT(Col1) 'Count'")
公式说明
- 先用
ARRAYFORMULA(TRIM(F2:F))把F列所有值统一做首尾空格去除,生成一个仅包含清理后文本的数组 - 此时QUERY的数据源是单数组,所以要使用默认列名
Col1代替原来的F列标识进行查询、分组、统计操作
如果你不想用QUERY,也可以用UNIQUE+COUNTIF的组合实现相同效果:
=ARRAYFORMULA({"Type","Count";UNIQUE(FILTER(TRIM(F2:F),TRIM(F2:F)<>"")),COUNTIF(TRIM(F2:F),UNIQUE(FILTER(TRIM(F2:F),TRIM(F2:F)<>"")))})
两种写法输出的结果都和你预期的完全一致。
内容的提问来源于stack exchange,提问作者Sam Craven
相关产品推荐
相关产品推荐

