我在Power Bi中具有下表,并希望基于两列添加计算出的列,但按以下组合的顺序排名不变。例如:
ORDER =如果[最大目标数]> 0%且[TAG] ='FALSE',则[分散数]
如果[最大目标)> 0%并且[标记] ='TRUE'然后[显着计数]
如果[[TAG] ='FALSE'然后[DISTINCT COUNT]
如果[TAG] ='TRUE'然后[DISTINCT COUNT]
这是我的表格样本,具有理想的结果:
Order Company# Company_Name Goal_Name Max_GOAL TAG
1 1001 COMPANY NAME 1 GOAL 1 25% FALSE
2 1001 COMPANY NAME 1 GOAL 2 81% FALSE
3 1001 COMPANY NAME 1 GOAL 3 40% FALSE
4 1001 COMPANY NAME 1 GOAL 4 26% TRUE
5 1001 COMPANY NAME 1 GOAL 5 0% FALSE
6 1001 COMPANY NAME 1 GOAL 6 0% TRUE
1 1002 COMPANY NAME 2 GOAL 1 26% FALSE
2 1002 COMPANY NAME 2 GOAL 2 66% FALSE
3 1002 COMPANY NAME 2 GOAL 3 40% FALSE
4 1002 COMPANY NAME 2 GOAL 4 68% TRUE
5 1002 COMPANY NAME 2 GOAL 5 0% FALSE
6 1002 COMPANY NAME 2 GOAL 6 0% FALSE
这也是我尝试过并工作的示例代码,以防其他人需要它:
RANKX(FILTER (
GroupGoalMapping,
GroupGoalMapping[GroupNumber] = EARLIER ( GroupGoalMapping[GroupNumber] )
),
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[AnnualMaximum] * IF(GroupGoalMapping[AlternateGoal]="FALSE",2),, DESC )
+ DIVIDE (
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[AnnualMaximum] * IF(GroupGoalMapping[AlternateGoal]="TRUE",1) ,, DESC ),
COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1
)
+ DIVIDE (
DIVIDE (
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[GoalName_Order] ,, ASC,Dense ),
( COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1 )
),
COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1
),
,
ASC,
DENSE
)
答案 0 :(得分:0)
我知道了:
RANKX(FILTER (
GroupGoalMapping,
GroupGoalMapping[GroupNumber] = EARLIER ( GroupGoalMapping[GroupNumber] )
),
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[AnnualMaximum] * IF(GroupGoalMapping[AlternateGoal]="FALSE",2),, DESC )
+ DIVIDE (
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[AnnualMaximum] * IF(GroupGoalMapping[AlternateGoal]="TRUE",1) ,, DESC ),
COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1
)
+ DIVIDE (
DIVIDE (
RANKX ( ALL ( GroupGoalMapping ), GroupGoalMapping[GoalName_Order] ,, ASC,Dense ),
( COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1 )
),
COUNTROWS ( ALL ( GroupGoalMapping ) ) + 1
),
,
ASC,
DENSE
)