如何在Tableau中对数据进行上卷聚合以获取正确平均值?
在Tableau中实现按ID上卷以获取正确聚合结果
问题背景
当前数据存在粒度不一致问题:同一ID对应多条Model_Number记录,且Value值完全重复。直接对原始数据计算平均值会因重复计数得到错误结果(3.28),而业务逻辑需要先按ID唯一值上卷数据,再计算平均值(正确结果为3.5)。
解决方案
以下三种方法均可实现按ID上卷数据,确保聚合结果准确:
方法1:使用LOD表达式提取ID级唯一值
- 创建计算字段,命名为
ID级Value,输入公式:
(注:因同一ID下Value值一致,使用{FIXED [ID] : MAX([Value])}MAX()/MIN()/AVG()均可得到唯一值) - 将
ID和ID级Value拖入视图区域,此时每个ID仅显示一个对应的Value值 - 添加平均值聚合时,Tableau会基于两个唯一ID的Value计算,得到正确的3.5
方法2:在数据源层面直接聚合数据
- 进入Tableau数据源界面,点击菜单栏
数据->聚合数据 - 在弹出的窗口中,勾选
ID和Value字段,设置Value的聚合方式为平均值(或最大值/最小值) - 确认聚合后,数据源会自动按ID上卷,后续视图直接使用该聚合数据计算平均值即可
方法3:使用表计算过滤重复记录
- 将
ID和Value拖入视图,临时添加Model_Number到行/列区域 - 创建计算字段
保留唯一ID记录,输入公式:INDEX() = 1 - 将该字段拖入
筛选器面板,选择True - 移除临时添加的
Model_Number,此时每个ID仅显示一条记录,计算平均值即可得到正确结果
验证结果
无论使用哪种方法,最终视图都会呈现:
ID Value 123 2 124 5 Avg 3.5
内容的提问来源于stack exchange,提问作者Jaskeil
相关产品推荐
相关产品推荐

