Страницы: 1
RSS
DAX мера - динамический процент
 
Добрый день.
Пытаюсь посчитать процент значения по формуле:
Процент:=[Продажи]/SUM([Продажи])
Но выпадает ошибка что неудается определить значения для столбца "Продажи". Подскажите, в чем проблема?
 
Доброе время суток.
Цитата
Денис Мурченко написал:
Пытаюсь посчитать процент значения по формуле:
Формуле вычисляемой где в мере или в столбце?
Цитата
Денис Мурченко написал:
[Продажи]
- это что имя столбца какой-то из таблиц или имя меры?
Изменено: Андрей VG - 19.08.2018 17:49:55
 
Андрей VG, формула вычисляется в мере. "Продажи" - имя столбца, который уже содержит значения.
 
В принципе разобрался почему ошибка выскакивает - меры не работают со строками как в случае вычисляемых столбцов. Отсюда возникает вопрос - как посчитать процент исходя из применямого фильтра. Т.е. код  должен быть таким:
Процент:=Sum([Продажи] / ???? - вопрос на что делить-то? Как получить значение итога по продажам по последнему применямому разрезу?
Изменено: Денис Мурченко - 19.08.2018 19:53:56
 
Цитата
Денис Мурченко написал:
формула вычисляется в мере. "Продажи" - имя столбца, который уже содержит значения.
уже лучше. Пусть есть только что созданная сводная Power Pivot. Вытаскиваем вашу меру. Получаем одну ячейку - результат вычисления меры. Пусть столбец продажи содержит 100500 значений. Что вы хотите поучить как результат выполнения меры? 100500 значений, делённых на их общую сумму, через запятую?
Вы бы всё же
Цитата

 2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
особенно учитывая тот момент, что вы начинающий в DAX?
 
Столбец E вычисляет % значаение столбца С (последний разрез) от суммы столбца В (родительский столбец). Суть в том, что в сводную могут перекраивать - и всегда мера должна считать % последнего разреза от общей суммы родительского поля, как это реализовать через дакс - не пойму...
 
Как то так.
 
Андрей VG, напиманная вами мера работает, но почему то пропускает некоторые вычисления, в результате чего суммарный результат не 100%
Изменено: Денис Мурченко - 19.08.2018 21:04:34
 
Цитата
Денис Мурченко написал:
но почему то пропускает некоторые вычисления
Денис, насколько понимаю, функцию меры вы не разбирали? А зря, она заточена на то, что Product нижний уровень иерархии, а следующий Manufacturer. На вашей картинке нижний уровень - даты. Следовательно, требуется её коррекция. Написать в DAX меру, универсально определяющую, что произвольный столбец таблицы является нижним уровнем, и какой из других следующим - достаточно проблемно. Тогда нужно жёстко прописывать иерархию. ПочитайтеParent-Child Hierarchies. Но в этом случае - есть строго заданная структура данных.
 
Цитата
Андрей VG написал:
Написать в DAX меру, универсально определяющую, что произвольный столбец таблицы является нижним уровнем, и какой из других следующим - достаточно проблемно.
Сомневаюсь, что это вообще возможно. С точки зрения DAX нет разницы между строками и столбцами, и в рамках одной таблицы мы всего лишь можем определить наличие или отсутствие фильтра на столбце.
У нас в распоряжении ISFILTERED, ISCROSSFILTERED и может быть HASONEVALUE.
Соответственно можно для ограниченного количества конкретных столбцов, которые могут быть помещены в строки, мы можем какую-то логику прописать, но не более.
F1 творит чудеса
 
А если все же иерархия из трех и более. На примере выше, где человек написал, что у него еще и даты. В целом как указал Андрей расчет понятен, но не понятно как вводить туда еще иерархию(не уверен, что это правильное слово). Подскажите, если расчетов по родительской нужно сделать больше, когда строк 3-5
 
Цитата
bereteli написал:
Подскажите
Подсказываю
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
 
Вот так например. Ваша формула работает, при двух строках в сводной. А что если их будет 4. И по родительской расчет в зависимости от раскрытия
Изменено: bereteli - 27.06.2019 13:56:39
 
Цитата
bereteli написал:
Ваша формула работает, при двух строках в сводной.
Ну, ручками можно и дальше прописать. А в несколько обобщённом виде, есть кое-какие идеи. В воскресенье покручу.
 
Код
=IF(HASONEVALUE(tab1[Product]); 
    SUM(tab1[Revenue]) / CALCULATE(SUM('tab1'[Revenue]); ALLEXCEPT('tab1'; tab1[Manufacturer]));
    BLANK()
)

Я просто пытаюсь научиться через Вашу формулу, в целом её принцип вроде понял, IF(1 значение - тру, то при тру расчет сум/сумм), а при фольсе не отжимать первый стоблик мануфактур. Просто как не пытаюсь не выходит вставить еще 1 параметр, не понимаю куда его ставить. Ставить еще одним IF ?

 
Вариант. Power Pivot от 2016. Иерархия в измерения должна выводиться без прерываний по уровням.
P. S. Наверняка можно что-то прооптимизировать. Если Зеленский заглянет, то, если будет время, подправит косяки.
Изменено: Андрей VG - 28.06.2019 12:41:46
 
Я заглянул, но мне некогда :)
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
но мне некогда
Жаль :(  думал получу какой-нибудь feedback от профессионала.
 
Андрей VG, я уверен, что всё хорошо :)
F1 творит чудеса
Страницы: 1
Наверх