Google Sheets多列QUERY计数问题:按条件统计指定字符串出现次数
Google Sheets QUERY公式错误排查与修正
原公式的核心问题
- 引用不存在的列:你的数据范围是A2:L481(共12列),但公式里用到了
Col13和Col16,这两列根本不在数据范围内,属于无效引用,会导致条件逻辑混乱。 - 统计逻辑不符合需求:你需要统计的是「符合条件的组(A-D或G-J)的出现次数」,但原公式用
COUNT(Col1)只会统计符合条件的行数——如果同一行中A-D和G-J两组都满足条件,会被只算1次,而实际应该算2次。 - 匹配规则错误:需求是分类列「以WEB开头」,但原公式用
LOWER(Col1) LIKE '%web%'是匹配包含WEB的内容,而非开头,会误统计如XWEB这类不符合要求的行。
修正后的公式
=QUERY( {ARRAYFORMULA({A2:A481, D2:D481}); ARRAYFORMULA({G2:G481, J2:J481})}, "SELECT COUNT(Col1) WHERE LOWER(Col1) LIKE 'web%' AND LOWER(Col2) LIKE '%alex%'", 0 )
修正逻辑说明
- 重组数据结构:用数组将两组数据(A-D列的分类+名字、G-J列的分类+名字)纵向合并,变成一个只有两列的临时表,每一行对应一个独立的「分类-名字」组。
- 精准匹配规则:将
%web%改为web%,确保只匹配以WEB开头的分类;保留%alex%匹配包含Alex的名字(大小写不敏感)。 - 正确统计次数:对重组后的临时表统计符合条件的行数,每一行对应一个符合条件的组,刚好满足你统计出现次数的需求。
内容的提问来源于stack exchange,提问作者Gardinero
相关产品推荐
相关产品推荐

