Страницы: 1
RSS
Распределение расходов PowerPivot(формулы DAX)
 
 Здравствуйте!
Подскажите, пожалуйста, как правильно настроить распределение расходов в Power Pivot по нескольким уровням иерархии
Общую сумму аллокации нужно сначала распределить по Регионам (на основании таблицы с данными по регионам)
Далее внутри Регионов суммы нужно распределить на офисы (на основании таблицы с данными по офисам)
У меня возникла сложность с распределением верхнего уровня(выделил красным).
Код
  Сумма драйвера по Региону:=SUM('ДрайверРегионы'[Значение]) 

  Доля Региона:=DIVIDE([Сумма драйвера по Региону];CALCULATE([Сумма драйвера по Региону];ALL('СпрРегионы')))

  Сумма драйвера по Городу:=SUM('ДрайверГорода'[Значение]) 
 
  Доля города внутри Региона:=DIVIDE([Сумма драйвера по Городу];CALCULATE([Сумма драйвера по Городу];ALL('Структура'[Город])))
 
  Итого сумма на город:=SUM('СуммаАллокации'[Сумма для Аллокации])*[Доля Региона]*[Доля города внутри Региона]
 
Поиском пользовался ссылка, не помогло. Файл не могу уменьшить до 100 кб
Изменено: Student64 - 13.03.2020 14:26:27
 
Конечно лучше бы вы файл прикрепили.
На первый взгляд - у вас контекст фильтра не переходит из таблицы "структура"  в таблицу "Драйверы регионы", так как там связь многие ко многим в итоге получается.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff,да, Вы правы, как раз из за этой связи проблема
Сейчас сам дошел до такого варианта - добавил calculate и указал справочник в разделе фильтров
Правда, пока не до конца понял, как это работает... но результат получился тот который нужен
Код
Сумма драйвера по Региону:=CALCULATE(SUM('ДрайверРегионы'[Значение]);'Структура')
Доля Региона:=DIVIDE([Сумма драйвера по Региону];CALCULATE([Сумма драйвера по Региону];ALL('Структура')))


Файл с моделью не получается никак сжать до 100 кб
 
Student64, Когды вы создали связь один ко многим от таблицы "структура" к таблице "справочник" то все столбцы таблицы "справочник" были включены в таблицу "структура". Их не видно в пользовательском представлении, но они есть.
То есть таблица, которая связана с другими по связи многие к одному имеет в себе все столбцы таблиц с которыми она связана связью многие к одному.
Размещая такую таблицу в качестве фильтра в CALCULATE - она начинает фильтровать ту таблицу по которой имеется связь многие к одному, а та таблица уже фильтрует другие связанные по связи один ко многим.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, большое спасибо за такое подробное разъяснение!
Страницы: 1
Наверх