#powerbi #dax #powerquery
#powerbi #dax #powerquery
Вопрос:
У меня есть таблица ниже в Power Bi, и я хотел бы добавить вычисляемый столбец на основе двух столбцов, но ранжирование без привязки в порядке приведенной ниже комбинации. например:
ПОРЯДОК = ЕСЛИ [МАКСИМАЛЬНАЯ ЦЕЛЬ)> 0% И [TAG]= ‘FALSE’, ТОГДА [ОТДЕЛЬНОЕ КОЛИЧЕСТВО]
, ЕСЛИ [МАКСИМАЛЬНАЯ ЦЕЛЬ)> 0% И [TAG] = ‘TRUE’, ТОГДА [ОТДЕЛЬНОЕ КОЛИЧЕСТВО]
, ЕСЛИ [[TAG] =’FALSE’, ТОГДА [ОТДЕЛЬНОЕ КОЛИЧЕСТВО]
, ЕСЛИ [TAG]= ‘TRUE’, ЗАТЕМ [РАЗЛИЧНОЕ КОЛИЧЕСТВО]
Вот пример моей таблицы с желаемым результатом:
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
)
Комментарии:
1. Можете ли вы предоставить текстовый вывод и желаемый вывод в виде таблицы? Кроме того, вы можете определить
[DISTINCT COUNT]
?2. @AngeloCanepa Спасибо! Я добавил текст во фрагменте, и мне нужно ранжирование или подсчет без привязки.
Ответ №1:
Я понял это:
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
)