热线电话:13121318867

登录
2020-06-19 阅读量: 1097
指标类型

案例:基准比、均比、标准比

1、 计算平均值的陷阱

这种直接用average的写法来求,是错误的,因为直接用average算出来的是主键的平均,对于商机记录表来说,一条记录代表一条商机,这样算出来的是每条商机的平均额,所以是错误的。

所有城市总平均 = CALCULATE(average('商机记录'[商机金额(M)]),all('商机相关企业信息'[城市]))

正确的写法应该是:算出来商机金额的总额除以城市的个数

所有城市总平均 = CALCULATE(
sum('商机记录'[商机金额(M)]),all('商机相关企业信息'[城市]))/calculate(DISTINCTCOUNT('商机相关企业信息'[城市]),all('商机相关企业信息'[城市]))

注:

  • 当主键就是维度的时候,这种情况下可以直接用average直接求平均,其他情况都必须用合计值除以计数

  • distinctcount,不重复计数

2、rankx排名问题

方式一:正确( 行上下文计算)

金额排名 = rankx(all('商机相关企业信息'[城市]),[1金额合计])

方式二:正确(用calcaulate将筛选上下文转换为行上下文) 金额排名 =

rankx(all('商机相关企业信息'[城市]),CALCULATE(SUM('商机记录'[商机金额(M)])))

方式三:错误(直接引用聚合函数进行行上下文汇总) 金额排名 =

rankx(all('商机相关企业信息'[城市]),SUM('商机记录'[商机金额(M)]))

注:

  1. 直接在函数中嵌套使用已定义度量名的函数,属于行上下文筛选;

  2. 嵌套使用聚合函数时,需先定义度量名,再引用度量名;

  3. 不能将聚合函数(sum、max、min、count、avg)直接放到另一个函数中使用;

  4. 在聚合函数外层加上calculate(聚合函数),可以把筛选上下文改成行上下文,这样聚合函数就可以嵌套在函数中了

  5. 该函数以中国式排序进行排名:1,2,3,3,5...


33.8570
3
关注作者
收藏
评论(0)

发表评论

暂无数据