Google Sheets如何匹配表头动态统计对应列指定值出现次数
Google Sheets 动态匹配表头的选项计数方案
核心逻辑是先自动定位目标问题对应的列,再执行计数,无需硬编码列号,后续原始表调整列顺序、插入新列都不会影响统计结果,以下是两种可直接复用的实现:
方案1:QUERY动态列适配版本
适配原有QUERY使用习惯,通过MATCH函数定位表头位置自动拼接查询参数,在对应分表的计数单元格输入公式后下拉填充即可:
=LET( question_col, MATCH("Person?", 'Input Data'!1:1, 0), col_code, REGEXEXTRACT(ADDRESS(1, question_col, 4), "[A-Z]+"), QUERY( 'Input Data'!A:Z, "select count("&col_code&") where "&col_code&" = '"&A2&"' label count("&col_code&") ''", 0 ) )
- 适配「Place?」「Thing?」等分表时,仅需将MATCH函数第一个参数替换为对应问题的表头文本,其余部分无需修改
- 若题目支持多选(单个单元格存储多个选项值),将查询条件中的
=替换为contains即可统计包含目标选项的记录
方案2:COUNTIF简化写法(推荐)
无需转换列字母格式,无QUERY的字符串转义问题,公式更短、容错性更高:
=COUNTIF(INDEX('Input Data'!A:Z, 0, MATCH("Person?", 'Input Data'!1:1, 0)), A2)
逻辑说明:
- MATCH负责在原始表表头行匹配目标问题,返回对应的数字列序号
- INDEX根据列序号直接提取该列的全部响应数据
- COUNTIF统计该列中与目标选项完全匹配的记录数
- 多选场景下,将匹配条件从
A2修改为"*"&A2&"*"即可生效
可根据实际数据范围调整公式中的
'Input Data'!A:Z,例如修改为'Input Data'!A:ZZ即可覆盖更多列的使用场景。
内容的提问来源于stack exchange,提问作者Teed Ferguson
相关产品推荐
相关产品推荐

