[已解决] 【DAX】求助老师用DAX函数求特定条件的完成率

  [复制链接]
查看193959 | 回复159 | 2020-11-5 20:40:19 | 显示全部楼层 |阅读模式
姓名指标实际完成甲10080甲200130乙100120乙300100丙250130丁300100甲150160丁400500

求助老师,如果想求每人的指标完成情况,例如 甲 的完成率 为(80+130+160)/(100+200+150),请问如何利用DAX函数来实现,先谢过!
回复

使用道具 举报

山人2000 | 2020-11-5 20:48:20 | 显示全部楼层
完成率:=DIVIDE( SUM( '表1'[实际完成] ), SUM( '表1'[指标] ) )
回复

使用道具 举报

wanghy2 | 2020-11-5 20:54:20 | 显示全部楼层
完成率:=DIVIDE( SUM( '表1'[实际完成] ), SUM( '表1'[指标] ) )



如果需要区分不同的姓名来做分类统计的话,也就是在
甲 的行显示甲的完成情况,而其分子分母是上下列数据的Sum,需要如何操作?谢谢
回复

使用道具 举报

Gevey-Sky | 2020-11-5 20:59:20 | 显示全部楼层
如果需要区分不同的姓名来做分类统计的话,也就是在
甲 的行显示甲的完成情况,而其分子分母是上下 ...


没看明白你的这个问题的意思,最好用一个模拟结果来说明计算过程。

度量值不同于excel公式的最大特点之一,就是它的计算都是在特定的上下文环境中的;相同的度量值计算公式,在透视表的每一个单元格里计算的结果都可能是不一样的,比如在“甲”的行里,“甲”就作为筛选上下文参与了度量值的运算。
回复

使用道具 举报

南风 | 2020-11-5 21:04:20 | 显示全部楼层
没看明白你的这个问题的意思,最好用一个模拟结果来说明计算过程。

度量值不同于excel公式的最大特点 ...


姓名指标实际完成完成率甲1008095% (过程:SUM C列所有姓名为甲的实际完成值:210 除以 SUM B列所有甲的指标值)甲20013095%乙1008080%假设表单中有三行数据,则增加一列完成率,该完成率根据姓名列,判断相同姓名下,该人员的累计实际完成/累计实际指标,的确是关联到上下行数据,请问可以用一段函数来实现吗?
回复

使用道具 举报

改装迷 | 2020-11-5 21:05:20 | 显示全部楼层
假设表单中有三行数据,则增加一列完成率,该完成率根据姓名列,判断相同姓名下,该人员的累计实际完成/ ...


呃。。。。是打算添加计算列么?那就这样写吧:
=DIVIDE (
  CALCULATE ( SUM ( ROSTER[实际完成] ), ALLEXCEPT ( ROSTER, ROSTER[姓名] ) ),
  CALCULATE ( SUM ( ROSTER[指标] ), ALLEXCEPT ( ROSTER, ROSTER[姓名] ) )
)



感觉还不如直接用EXCEL公式在工作表里统计就行:
=SUMIF(ROSTER[姓名],ROSTER[@姓名],ROSTER[实际完成])/SUMIF(ROSTER[姓名],ROSTER[@姓名],ROSTER[指标])


两种都放在附件里了,请参考。

10491102039531.zip (46.42 KB, 下载次数: 0)
回复

使用道具 举报

柯西部长 | 2020-11-5 21:10:21 | 显示全部楼层
呃。。。。是打算添加计算列么?那就这样写吧:
=DIVIDE (
  CALCULATE ( SUM ( ROSTER[实际完成] ), ...


是的,但excel公式的效率太慢,这个是纠结的点
回复

使用道具 举报

ldh_007 | 2021-6-30 08:53:11 来自手机 | 显示全部楼层
众里寻他千百度,蓦然回首在这里!
回复

使用道具 举报

泥公仔 | 2021-8-21 09:27:56 来自手机 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复

使用道具 举报

虎儿 | 2021-8-30 22:00:58 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则