Power BI中如何计算各产品平均评分(规避默认错误计算)
解决各产品平均评分的平均值计算问题
首先来看我们的数据源:Ratings表存储了产品的评分数据,具体内容如下:
| productKey | rating |
|---|---|
| product-1 | 4 |
| product-1 | 5 |
| product-2 | 3 |
容易踩的坑:错误的计算方式
很多人一开始会直接对所有评分值求平均,得到的结果是:
(4+5+3)/3 = 4
但这并不是我们需要的各产品平均评分的平均值——这种方式把不同产品的评分权重拉平了,没有考虑每个产品自身的评分数量差异,不符合业务逻辑。
正确的计算逻辑
我们需要分两步计算:先算出每个产品的单独平均评分,再对这些产品的平均分求平均:
- product-1的平均评分:
(4+5)/2 = 4.5 - product-2的平均评分:
3/1 = 3 - 最终整体平均值:
(4.5 + 3)/2 = 3.75
用DAX实现的方法(中间表方式)
你已经找对了方向——通过创建中间表来分步计算。使用SUMMARIZE函数可以快速生成各产品的平均评分表:
RatingsPerProd = SUMMARIZE(Ratings, Ratings[productKey], "averageRating", AVERAGE(Ratings[rating]))
执行这个表达式后,生成的RatingsPerProd中间表内容如下:
| productKey | averageRating |
|---|---|
| product-1 | 4.5 |
| product-2 | 3 |
如果需要直接得到最终的整体平均值,只需要对这个中间表的averageRating列求平均即可,对应的DAX表达式:
OverallProductAvg = AVERAGE(RatingsPerProd[averageRating])
内容的提问来源于stack exchange,提问作者Panda Coder
相关产品推荐
相关产品推荐

