如何在Google Sheets中统计多选值的出现次数
Google Sheets多选值统计方案:函数/数据透视表/AppScript
一、用内置函数快速统计
如果你的多选值是固定分隔符(比如逗号、分号)分隔的,直接用组合公式搞定:
- 拆分所有值到单列:假设数据在A列(A2:A),在空白列(比如B2)输入:
=FLATTEN(SPLIT(A2:A, ", "))
注意把", "换成你实际的分隔符(比如分号就用"; ",要包含空格的话别漏)。 - 一键统计次数:用QUERY公式直接输出结果,不用分步操作:
=QUERY(FLATTEN(SPLIT(A2:A, ", ")), "SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 '选项', COUNT(Col1) '出现次数'")
二、数据透视表统计步骤
数据透视表不能直接识别单元格内的多选值,得先拆分数据:
- 用上面的
FLATTEN(SPLIT(...))公式把所有多选值拆成单独行,复制拆分后的列,右键「粘贴为值」固定数据。 - 选中拆分后的单列,点菜单栏「数据」→「数据透视表」,选好放置位置。
- 在透视表编辑器里:
- 把拆分后的字段拖到「行」区域
- 再把同一个字段拖到「值」区域,汇总方式选「计数」
三、AppScript自动化统计
如果需要数据更新后自动统计,或者处理大量数据,用脚本更高效:
- 打开表格,点「扩展程序」→「Apps 脚本」
- 替换默认代码为以下内容(记得修改数据范围和分隔符):
function countMultiSelectValues() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getRange("A2:A"); // 替换成你的数据列范围 const values = dataRange.getValues().flat().filter(val => val !== ""); const countMap = new Map(); values.forEach(cell => { const options = cell.split(", ").filter(opt => opt !== ""); // 替换成你的实际分隔符 options.forEach(opt => { countMap.set(opt, (countMap.get(opt) || 0) + 1); }); }); const output = [["选项", "出现次数"], ...Array.from(countMap.entries())]; sheet.getRange(1, 4, output.length, 2).setValues(output); // 输出到D1开始的区域,可自行调整 }
- 保存项目后点击运行,授权权限即可完成统计。
内容的提问来源于stack exchange,提问作者Luan Nguyen Thanh
相关产品推荐
相关产品推荐

