Tableau中如何统计多选项字符串总出现次数(ELSEIF方案失效)
在Tableau中统计多列字符串的总出现次数
问题场景
我尝试在Tableau中创建计算字段来可视化特定字符串的出现次数,编写了如下计算逻辑:
IF [Avada Cadabra] = 1 THEN 'Avada Cadabra' ELSEIF [Aloha amora] = 1 THEN 'Aloha amora' ELSEIF [Depulso Levioso] = 1 THEN 'Depulso Levioso' ELSEIF [Levioso] = 1 THEN 'Levioso' ELSEIF [Protego] = 1 THEN 'Protego' ELSEIF [Avada Cadabra] = 1 THEN 'Avada Cadabra' END
但由于数据行中可能同时存在多个列值为1的情况,ELSEIF只会返回第一个匹配的字符串,无法统计每个字符串的总出现次数,需要更合适的解决方法。
解决方案
方法1:为每个字符串单独创建计数字段
针对每个目标字符串,创建独立的计算字段来标记其出现:
- Avada Cadabra 计数:
IF [Avada Cadabra] = 1 THEN 1 ELSE 0 END - Aloha amora 计数:
IF [Aloha amora] = 1 THEN 1 ELSE 0 END - Depulso Levioso 计数:
IF [Depulso Levioso] = 1 THEN 1 ELSE 0 END - Levioso 计数:
IF [Levioso] = 1 THEN 1 ELSE 0 END - Protego 计数:
IF [Protego] = 1 THEN 1 ELSE 0 END
将这些计算字段拖入视图后,使用SUM()聚合函数即可得到每个字符串的总出现次数。
方法2:转置数据结构(更高效灵活)
当前数据为宽表格式(每列对应一个字符串),转置为窄表后能更便捷统计:
- 在Tableau数据源界面,选中所有对应字符串的列(Avada Cadabra、Aloha amora等)
- 点击顶部菜单栏的数据 > 转置,将列转换为行,生成
字段名称(存储字符串)和字段值(存储1/0)两列 - 添加筛选器,过滤掉
字段值不等于1的行 - 将
字段名称拖入视图,使用COUNT()聚合函数即可直接得到每个字符串的总出现次数
这种方法无需维护多个计算字段,后续新增字符串列时只需重新转置即可,扩展性更强。
内容的提问来源于stack exchange,提问作者user20944254
相关产品推荐
相关产品推荐

