人生没有彩排
每一天都是现场直播

XF.Analysis.WeightedAvg

语法作用

计算加权平均值。迭代第一参数的表的每一行,在其提供的行上下文与外部计值环境中计算第二参数(权重表达式)与第三参数(数值表达式),最后计算加权平均值。

计算公式:SUMX(tbl,weight*val)/SUMX(tbl,weight)

XF.Analysis.WeightedAvg(tbl:table,weightExpr:expr,valExpr:expr)

函数代码

该函数的实现代码如下:

/// 计算加权平均值。迭代第一参数的表的每一行,在其提供的行上下文与外部计值环境中计算第二参数(权重表达式)与第三参数(数值表达式),最后计算加权平均值。计算公式:SUMX(tbl,weight*val)/SUMX(tbl,weight)
FUNCTION XF.Analysis.WeightedAvg = (tbl:table,weightExpr:expr,valExpr:expr) => 
    VAR TempTbl = ADDCOLUMNS(tbl,"@Weight",weightExpr,"@Val",valExpr)
    VAR Numerator = SUMX(TempTbl,[@Weight] * [@Val])
    VAR Denominator = SUMX(TempTbl,[@Weight])
    RETURN
    DIVIDE(Numerator,Denominator)

应用示例

加权平均法可应用于不同群体的重要性不一致的场合。比如不同学科的重要性不一样,因此计算平均得分时需要进行加权平均。或者统计产品的用户满意度时,会员等级越高的用户的意见应该越重视等等。

下面以学科的平均得分为例,计算其加权平均得分。

XF.Analysis.WeightedAvg(ALL('学科得分'),'学科得分'[权重],'学科得分'[得分])

结果如下图所示:

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《PowerBI DAX自定义函数-XF.Analysis.WeightedAvg》
文章链接:https://www.ximaple.com/posts/1574.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support