PowerBI - вывод столбца на основе другого значения столбца и функции времени - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть такая таблица:

enter image description here

Я сравниваю значения из CurrentMonth против PreviousMonth (на основе месяца, выбранного в слайсере)для всех KPI, и исходя из этого, я присваиваю конкретный результат.

Однако для каждого KPI при сравнении есть логика.Логика такова:

enter image description here

Таким образом, для KPI A значение CurrentMonth должно быть на 10% выше, чем PreviousMonth.Если это правда, тогда присвойте 1. Если не так, то 0. Для KPI B оно должно быть на 3% выше.А для KPI C он просто должен быть выше.

Чтобы получить значения CurrentMonth и PreviousMonth, я создал две меры, одна из которых имеет функцию времени:

CurrentMonth = SUM( [KPIValue] )

и

PreviousMonth = CALCULATE (
SUM( [KPIValue] );
PREVIOUSMONTH( [Date] )
)

Я попытался создать столбец в моей таблице, чтобы назначить вывод (Результат), и использовал функцию переключения следующим образом:

Result = SWITCH (
[KPIName];
"KPI A"; IF( [CurrentMonth] >= [PreviousMonth]*1.10;1;0 );
"KPI B"; IF( [CurrentMonth] >= [PreviousMonth]*1.03;1;0 );
"KPI C"; IF( [CurrentMonth] >= [PreviousMonth];1;0 );
)

Моя проблема в том, что когда я пытаюсьиспользуйте этот Переключатель , он не работает, поскольку PreviousMonth является пустым (он не может рассчитать функцию времени для каждой строки таблицы - работает только как мера).

I 'Я теперь потерял, как я должен идти отсюда.Я пытался создать Measure вместо Column , но затем функция Switch не принимает KPIName в качестве параметра.

Есть идеи?Надеюсь, здесь все ясно, если нет, дайте мне знать, какая дополнительная информация вам нужна.

1 Ответ

0 голосов
/ 27 ноября 2018

Нашел решение.В качестве меры (не столбца) добавьте SELECTEDVALUE , чтобы иметь возможность получить KPIName.

Result = SWITCH (
SELECTEDVALUE([KPIName]);
"KPI A"; IF( [CurrentMonth] >= [PreviousMonth]*1.10;1;0 );
"KPI B"; IF( [CurrentMonth] >= [PreviousMonth]*1.03;1;0 );
"KPI C"; IF( [CurrentMonth] >= [PreviousMonth];1;0 );
)
...