如何解决Power BI中问卷数据条形图统计Yes结果的显示异常
Power BI问卷数据Yes回答数条形图修复方案
问题描述
我有一张包含两个问题(Q01、Q02)的问卷数据表,每个问题的可选答案仅为"yes"、"no"、"n/a"三类。需要制作条形图展示每个问题的"yes"回答数量,最终图表需包含两个分别标注为"Q01"和"Q02"的柱形,对应统计各列的yes回答数。
尝试用簇状条形图,将Q01、Q02列放到Y轴,给每列添加筛选器仅选择"yes",但同时设置两列后,Power BI显示的两个柱形大小完全一致,实际是取了两列数据的交集结果,无法正确统计各自的yes数量。
示例数据
用DAX生成的示例表代码:
Sample = {(1, "yes", "yes"),(2, "no", "yes"),(3, "no", "yes"),(4, "yes", "no"),(5, "yes", "yes")}
(注:示例中Q01有3个yes,Q02有4个yes)
当前错误结果:两个柱形高度相同,均显示3(即两列同时为yes的行数),未正确统计各自的yes数量。
修复方法
方法一:数据逆透视(推荐方案)
将宽表转换为窄表,让Power BI能正确识别维度与度量,是最规范的处理方式:
- 进入数据视图,选中目标问卷数据表
- 点击顶部菜单栏的转换数据,进入Power Query编辑器
- 选中Q01、Q02列,点击转换选项卡中的逆透视列(若存在ID等无关列,需先选中Q01、Q02再执行逆透视)
- 逆透视后会生成两列:
属性(对应原列名Q01、Q02)和值(对应原列的回答内容) - 关闭并应用Power Query的更改
- 制作条形图:
- 将
属性字段拖到轴(Y轴)区域 - 创建度量值统计yes数量:
Yes数量 = CALCULATE(COUNTROWS('Sample'), 'Sample'[值] = "yes") - 将
Yes数量拖到值(X轴)区域 - 此时图表会正确显示Q01(3个yes)和Q02(4个yes)的柱形
- 将
方法二:创建独立度量值(无需修改原表)
如果不想调整原表结构,可为每个问题单独创建度量值:
- 在数据视图中,点击建模选项卡的新建度量值
- 为Q01创建度量值:
Q01_Yes数量 = CALCULATE(COUNTROWS('Sample'), 'Sample'[Q01] = "yes") - 为Q02创建度量值:
Q02_Yes数量 = CALCULATE(COUNTROWS('Sample'), 'Sample'[Q02] = "yes") - 制作条形图:
- 将
Q01_Yes数量和Q02_Yes数量拖到值区域 - 图表会自动生成标注为Q01、Q02的柱形,正确展示各自的yes数量
- 将
错误原因说明
原方法中给两列同时添加"yes"筛选器,Power BI会默认执行逻辑交集筛选:仅统计同一行中Q01和Q02都为yes的记录(示例中为3行),因此两个柱形大小一致,无法实现各自独立统计的需求。
内容的提问来源于stack exchange,提问作者AlexSC
相关产品推荐
相关产品推荐

