Страницы: 1
RSS
DAX. Как отобразить только те города и их суммы по признакам, которые имеют сумму по признаку Отклонение больше 1000?, Настройка фильтрации отчета в PowerBI + сортировка
 
Добрый день уважаемые коллеги.


Скорее всего у многих стали появлятся задачи в PowerBI.
В рамках задачи возник на первый взгляд банальный вопрос, но пока не могу найти решения. Если у кого есть возможность подскажите пожалуйста.
В рамках городов есть план по выручке (БП), прогноз (ПРОГНОЗ) и отклонение Прогноза от плана.
В источнике все показатели разбиты по месячно, в самом PowerBI уже суммируются по году.
На слайдах в PowerBI мне необходимо вывести Города по отклонению в ПЛЮС и топ 3 отклонения в Минус. То есть два слайда.
Условием для вывода отклонения должно быть более 1000 (в плюс) и менее 1000 для слайда 2 (в минус)
Причем проблема №1 в том,  что при этом на графиках необходимо сохранять порядок легенды  БП - ПРОГЗНОЗ - Отклонение, но сортировка по отклонение соответственно.

Проблема №2 в том, что если создавать специальные доп таблицы, для вывода признака для фильтра, значения в таблицах должны быть как сумма всех месяцев, так как мы должны вывести значения за код.
Изменено: bobyjoy - 01.07.2019 16:39:51
 
Цитата
bobyjoy написал:
Тему не могу поменять, наверное только модератор может
Так предложите новое название - тогда модераторы и поменяют.
 
Цитата
bobyjoy написал:
МинитзBI.xlsb  (47.3 КБ)
Файл поврежден, пишет
 
Доброе время суток
Цитата
Рашид написал:
Файл поврежден, пишет
Это файл в формате pbix, которому приделали расширение xlsb :)
Господа модераторы, вариант названия темы
DAX.Как отобразить только те города и их суммы по признакам, которые имеют сумму по признаку Отклонение больше 1000.
Код
 = Var difTable = FILTER(ALLEXCEPT('ДанныеBI'; 'ДанныеBI'[Месяц]); 'ДанныеBI'[Признак отчета] = "Отклонение")
Var stats = SUMMARIZE(difTable; 'ДанныеBI'[Город]; "city deviation"; SUM('ДанныеBI'[Значение]))
Var more1000 = FILTER(stats; [city deviation] > 1000)
Var cities = SELECTCOLUMNS(more1000; "citiy names"; 'ДанныеBI'[Город])
Return CALCULATE(SUM('ДанныеBI'[Значение]); FILTER('ДанныеBI'; 'ДанныеBI'[Город] in cities))

P. S. По вопросу №2
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.
 
Цитата
Андрей VG написал:
приделали расширение xlsb
для чего, если не секрет?
 
Создаете меру "Отклонение":
Код
Отклонение = CALCULATE(SUM('ДанныеBI'[Значение]);'Легенд'[Признак отчета]="Отклонение";ALL('Легенд'))

Для столбца 'Легенд'[Признак отчета] делаете сортировку по столбцу 'Легенд'[Index]
Для отклонений больше 1000: Ставите меру отклонения в фильтр визуального элемента и указываете для него значение >=1000
Для отклонений в минус: Ставите меру отклонения в фильтр визуального элемента и указываете для него значение <0, для фильтра по полю "Город" ставите фильтр TopN, Bottom, 3 по полю "отклонение"
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
в фильтр визуального элемента
Так вот для чего эта хрень нужна :)  Спасибо!
 
Решил посмотреть, как оно реализовано в движке.
""У мене внутре... гм... не... неонка"
DAX Query
F1 творит чудеса
 
Коллеги, обновил источник данных (excel file) поправил, действительно как то сохранился формат powerbi вместо excel сначала

Вечером попробую реализовать ваши решения спасибо большое!!!
Изменено: bobyjoy - 01.07.2019 16:47:59
 
Андрей VG , спасибо большое. Добавил меру и все сработало!!!!

Для продолжения данной темы, но не сваливания всего в одну кучу, создал новый пост
Изменено: bobyjoy - 02.07.2019 19:50:02
 
Максим, спасибо,
Скрытый текст

подскажите пожалуйста, а что значит в данной формуле оператор "ALL", для чего он добавлен в формулу?
Изменено: bobyjoy - 02.07.2019 21:22:42
 
bobyjoy, функция ALL используется для очищения таблицы от наложенных на неё фильтров. Т.е. возвращает таблицу такой, какая она есть
 
Это необходимо, что бы таблица не свернулась согласно данному фильтру ? то есть, что бы не остались только строки с отклонением?
 
bobyjoy, чтобы значение отклонения посчиталось даже для тех значений Легенд, которые не "Отклонение"
F1 творит чудеса
 
Максим Зеленский,

если устанавливать фильтр <1000 или >1000 в части визуализации элементов (рис - filtr1)
в таком случае граффик суммирует не корректно! Игнорирует положительные значения по пунктам продаж и выводит консолидированную сумму равную по Кемерово -54900 вместо -36000.
Происходит это из за того, что данный фильтр просто удаляет положительные пункты продаж из отчета. Подскажите пожалуйста, как фильтровать с учетом иерархии?
Изменено: bobyjoy - 04.07.2019 18:15:23
 
Для исходного примера и задачи всё работало корректно.
Мне кажется, или вы изменили вводные? было про <0, а не <1000. Какие такие пункты продаж? Их не было в первом посте, прямо сказано:
Цитата
bobyjoy написал:
В рамках городов есть план по выручке (БП), прогноз (ПРОГНОЗ) и отклонение Прогноза от плана.В источнике все показатели разбиты по месячно, в самом PowerBI уже суммируются по году. На слайдах в PowerBI мне необходимо вывести Города по отклонению в ПЛЮС и топ 3 отклонения в Минус. То есть два слайда.
Если вы изменили задачу, так не стесняйтесь сказать, а то получается, что я фигню присоветовал изначально.
F1 творит чудеса
 
Максим, я создал новую тему, вы правы я добавил пункты продаж в города, ранее не предполагал, что это будет влиять на конечный результат.

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=118612&a...
Изменено: bobyjoy - 05.07.2019 10:21:13
Страницы: 1
Наверх