Как рассчитать значение для каждой переменной по процентам с помощью DAX Power BI - PullRequest
1 голос
/ 07 апреля 2019

Нужна ваша помощь, чтобы решить мою проблему с DAX Power BI.

Итак, я пытаюсь визуализировать общую стоимость каждого проекта, в котором работает сотрудник, с помощью Power BI. но стоимость одного сотрудника может быть разделена на какой-то проект в процентах по каждому проекту.

Цель состоит в том, чтобы рассчитать общую стоимость для каждого сотрудника, а затем разделить ее на несколько проектов в процентах.

и вот данные Excel. так у меня 3 таблицы. СТОИМОСТЬ, ОСНОВНОЙ ПОЛЬЗОВАТЕЛЬ И РАСПРЕДЕЛЕНИЕ ПЛАТЕЖЕЙ.

-Стоимость

COST

-MASTER USER

MASTER

РАСПРЕДЕЛЕНИЕ ПЛАТЕЖЕЙ

ALLOCATION

А вот и ожидаемый результат.

enter image description here

Пожалуйста, помогите мне решить мою проблему, Большое спасибо!

1 Ответ

0 голосов
/ 08 апреля 2019

Во-первых, вам нужно немного изменить таблицу COST:

enter image description here

Я заменил «ID» на «Номер сотрудника», потому что нам нужны таблицы COST и ALLOCATION, чтобы иметь одинаковые ключи сотрудника. Я проигнорировал столбец «Продукт», потому что он не имеет отношения к вопросу.

Когда таблица COST имеет тот же ключ сотрудника, что и таблица ALLOCATION, вы можете подключить все свои таблицы к следующей модели данных:

enter image description here

Таблица «Пользователь» связана с таблицами «Стоимость» и «Распределение» через «Номер сотрудника». Обратите внимание, что соединение между «Пользователем» и «Распределением» является двунаправленным. Чтобы изменить соединение с однонаправленного на двунаправленный, дважды щелкните по соединительной линии и измените направление фильтра на ОБА. Теперь вы готовы написать DAX меры.

Мера 1:

Total Cost = SUM(COST[COST])

Эта мера просто суммирует затраты в таблице «СТОИМОСТЬ».

Мера 2:

Allocated % = SUM(Allocation[PERCENTAGE])

Эта мера просто суммирует проценты в таблице "РАСПРЕДЕЛЕНИЕ".

Мера 3:

Allocated Cost = SUMX('User', [Total Cost] * [Allocated %])

Если вы поместите Projects в матричный визуал и добавите эту меру, вы получите следующий результат:

enter image description here

Дополнительные примечания:

Опытные дизайнеры избегают использования двунаправленных отношений в своих моделях (по уважительным причинам). Чтобы сохранить все отношения в одном направлении, измените последнюю меру следующим образом:

Allocated Cost = 
CALCULATE(
  SUMX('User', [Total Cost] * [Allocated %]), 
  CROSSFILTER(User[EMPLOYEE NUMBER], Allocation[EMPLOYEE NUMBER], BOTH))

CROSSFILTER делает то же самое, что и двунаправленное отношение, только программно и без нежелательных побочных эффектов. Такой подход также будет работать в Excel Power Pivot, который не поддерживает двунаправленные соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...