如何在数据透视表中处理竖线分隔的多选项数据
解决Google Sheets问卷多选数据的社交媒体平台统一统计问题
你遇到的核心问题是问卷多选的社交媒体平台以竖线|分隔存储在单个单元格,拆分列的方式会导致数据透视表无法将所有平台统一归到「社交媒体」字段统计。下面是更高效的解决方案:
方案1:拆分数据为多行(适配数据透视表关联其他字段)
如果需要保留原数据的其他字段(比如用户ID、填写时间等),同时将每个平台拆分为单独行,在新工作表的A1单元格输入以下公式:
=ARRAYFORMULA( QUERY( { FLATTEN(IF(SPLIT(AD2:AD, "|")="",,A2:AC)), TRIM(FLATTEN(SPLIT(AD2:AD, "|"))) }, "where Col"&COLUMNS(A2:AC)+1&" is not null", 0 ) )
公式说明:
SPLIT(AD2:AD, "|"):把AD列的竖线分隔内容拆分成多列FLATTEN:将拆分后的多列数据转为单列,同时复制对应行的A到AC列内容TRIM:去除平台名称前后的空格,避免因问卷输入空格导致统计重复QUERY:过滤掉空值,只保留有效平台数据
生成数据后,给最后一列命名为「社交媒体」,然后直接插入数据透视表:
- 将「社交媒体」拖到行区域
- 将任意字段(比如行号)拖到值区域,选择「计数」,即可得到各平台的使用次数,包括用户自定义的其他输入项。
方案2:直接统计平台次数(无需数据透视表)
如果只需要统计各平台的出现次数,不需要关联其他数据,用以下公式即可直接输出结果:
=ARRAYFORMULA( QUERY( TRIM(FLATTEN(SPLIT(AD2:AD, "|"))), "select Col1, count(Col1) where Col1 is not null group by Col1 order by count(Col1) desc", 1 ) )
这个公式会自动输出两列:第一列是所有唯一的社交媒体平台(包括自定义项),第二列是对应的使用次数,并且按次数从高到低排序。
内容的提问来源于stack exchange,提问作者Ash Perry
相关产品推荐
相关产品推荐

