Страницы: 1
RSS
DAX мера по % долям
 
День добрый коллеги.
Столкнулся с такой задачей, нужно в DAX сделать активную меру/вычисляемый столбец по долям, он по факту должен соответствовать 3 фильтрам:
1) Относительно сети продаж
2) Относительно года
3) Относительно месяца

Когда делаю фильтр по одному конкретному месяцу, то как все проясняется:
=DIVIDE('table'[Sale Kg];SUMX(FILTER('table';'table'[Month]="Февраль");'table'[Sale Kg]))
НО когда туда добавляю к примеру "Сетка 1", проценты начинают считаться очень удивительно.

Прочитал и посмотрел много видео, думал спасут функции - EARLIER или ALLSELECTED, т.к. мол думал получить с помощью их сделать авто подстановку, как пример:
=DIVIDE('table'[Sale Kg];SUMX(FILTER('table';'table'[Chain Name]='table';'table'[Chain Name] || 'table'[Month]= 'table'[Month] || 'table'[Year]='table'[Year]);'table'[Sale Kg]))
Хотелось бы, что бы он понимал, что я сравниваю, январь с январем, 2019 с 2019, Сетку 1 с Сетку 1 и суммировал Sale Kg в диапазоне этих фильтров, потом делил на Sale Kg построчно которые относятся к заданным фильтрам.


Если кто может помочь советом, как это можно сделать или куда стоит обратить внимание?  
Изменено: mr.Gaudi - 17.03.2020 16:38:16
 
Такую долю можно получить и встроенными инструментами сводной таблицы. Разместите поле "Sale kg" в область значений (сделайте тип "числовой формат" - в примере стоят "проценты"). Далее правой кнопкой мыши в любом месте области значений/дополнительные вычисления/ % от родительской суммы/ базовое поле: Chaine name.
 
Цитата
Vladimir Chebykin написал:
Такую долю можно получить и встроенными инструментами сводной таблицы.
Владимир, знаю данное решение))))
Но мне потом на эти доли в DAX нужно будет "размазать" план.

В данный момент не могу понять как все таки это сделать, но уверен, что это можно реализовать в DAX!  
Изменено: mr.Gaudi - 18.03.2020 09:59:37
 
мера:
Код
=DIVIDE(
   SUM([Sale Kg]);
   CALCULATE(SUM('table'[Sale Kg]);   
      ALLEXCEPT('table';'table'[Chain Name];'table'[Year];'table'[Month]));
   BLANK())
 
Цитата
Vladimir Chebykin написал:
мера:
Спасибо, пример хороший (не думал, что можно вставить ALLEXCEPT), Но считает он не так как к сожалению надо (рядом пример, как по идеи хотелось, что бы считал).

Сейчас задумался, а реально ли на уровне самого DAX (не при выводе в сводную), что бы делался расчет по долям? Поясню, что бы  DAX понимал, сумму по сетке, году и месяцу и делил на соответствующую строку относящуюся к этим параметрам. Это вообще возможно?  
 
Ничего не менял, все на Вашем примере: цифры согласно Вашему результату. Если нужен какой-то другой расчет - приложите новый пример с тем, как надо.
П.С. Вы, наверное, путаете понятия меры и вычисляемого столбца?
Изменено: Vladimir Chebykin - 18.03.2020 11:50:08
 
Цитата
Vladimir Chebykin написал:
цифры согласно Вашему результату
Ваша, правда, извиняюсь =(

Цитата
Vladimir Chebykin написал:
Вы, наверное, путаете понятия меры и вычисляемого столбца
Тоже Вы правы! Пока ещё совсем зелен в этом, практикуюсь =)

Vladimir Chebykin, подскажите, а реально такой расчет сделать через вычисляемый столбец? Я так понимаю, там должно непосредственное сравнение идти, как:
'table'[Chain Name]='table'[Chain Name]
'table'[Year]='table'[Year]
'table'[Month]='table'[Month]
Если функции сопоставления или через какой то другой инструмент можно сделать?

Цитата
Vladimir Chebykin написал:
Код ? 12345=DIVIDE(   SUM([Sale Kg]);   CALCULATE(SUM('table'[Sale Kg]);         ALLEXCEPT('table';'table'[Chain Name];'table'[Year];'table'[Month]));   BLANK())
Спасибо Вам за этот пример! =)  
 
Цитата
mr.Gaudi написал:
реально такой расчет сделать через вычисляемый столбец?
Реально, но зачем? В DAX вся аналитика делается через меры - механизм заточен так, а вычисляемый столбец используется в бол-ве случаев -  когда в таблицу необходимо подтянуть данные в том или ином виде из других таблиц. Т.е., если цифры нужны для анализа - пишите меры, а не вычисляемые столбцы (через реку проложен мост - это меры, начать переплывать реку при наличии моста - это вычисляемые столбцы).
П.С. вычисляемые столбцы используют такую конструкцию, когда нужно сопоставлять поля друг с другом:
вместо
Код
'table'[Chain Name]='table'[Chain Name]

нужно
Код
'table'[Chain Name]=Earlier('table'[Chain Name])
 
Цитата
Vladimir Chebykin написал:
Реально, но зачем?
Сейчас сделаю один эксперимент с планом и скину, вы поймете меня =)

Цитата
Vladimir Chebykin написал:
П.С. вычисляемые столбцы используют такую конструкцию, когда нужно сопоставлять поля друг с другом:вместо
Сейчас попробую =)
 
Vladimir Chebykin, вообщем вся суть данной работы была в том, что бы через DAX посчитать доли по каждой сети. После этого на эти доли размазывался бы план и факт данного года и высчитывалось соотношение факта к плану. Тем самым можно найти эффективность каждой точки! Пытался все это сделать через DAX, но знаете как это бывает, некоторые вещи нужно оставить в тех программах для чего они предназначены, а не создавать велосипед. Сделал основную работу через access и только соотношение факта к плану через DAX. Сейчас думаю, как бы это все развернуть в Power BI.

Спасибо Вам за очень хороший пример и науку, буду дальше изучать, это чертовки интересно))))  
 
Да можно все это мерами реализовать. Те полученные доли в сводной таблице можно рассчитать в виртуальной таблице (виртуальной памяти). Затем, ссылаясь на нее, можно и план расскидать без проблем. Я так делал, причем план автоматически насчитывается на любой уровень вложенности (иерархии). Можете создать новую тему. - думаю, быстро вариантов накидают.
П.С. я пока пас - на больничном и без компа
Страницы: 1
Наверх