如何在Google Sheets QUERY函数中实现count(distinct Col#)功能
解决Google Sheets QUERY统计Col2唯一值的问题
Google Sheets的QUERY函数不支持SQL标准的COUNT(DISTINCT)语法,你可以通过以下两种方案实现统计Col2唯一值的需求:
方案一:COUNTUNIQUE + FILTER组合
直接用FILTER筛选符合条件的Col2值,再通过COUNTUNIQUE统计唯一数量:
=COUNTUNIQUE(FILTER(IMPORTRANGE("sheetURL/","sheetname!A1:Z50")!Col2, IMPORTRANGE("sheetURL/","sheetname!A1:Z50")!Col1=$D$2, REGEXMATCH(IMPORTRANGE("sheetURL/","sheetname!A1:Z50")!Col3, "xyz")))
逻辑说明:
FILTER根据Col1等于D2、Col3包含xyz的条件,提取对应的Col2值(包含重复项)COUNTUNIQUE自动对提取到的Col2值去重并统计唯一值数量
方案二:QUERY提取Col2后套COUNTUNIQUE
如果习惯用QUERY做筛选,可先让QUERY返回符合条件的Col2列,再用COUNTUNIQUE处理:
=COUNTUNIQUE(QUERY(IMPORTRANGE("sheetURL/","sheetname!A1:Z50"), "SELECT Col2 where Col1='"&$D$2&"' and Col3 contains 'xyz'"))
逻辑说明:
QUERY先筛选出所有满足条件的Col2值(保留重复项)COUNTUNIQUE对这些值去重并计数,完全匹配你“仅统计Col2唯一值”的需求,不会返回整行
注意事项
- 首次使用
IMPORTRANGE需要完成权限授权,否则公式会返回权限错误 - 两种方案性能差异极小,可根据个人使用习惯选择
内容的提问来源于stack exchange,提问作者None
相关产品推荐
相关产品推荐

