Страницы: 1
RSS
Расчет количества уникальных товаров с фильтром, DAX количество уникальных записей с фильтром
 
Коллеги, добрый вечер!
В связи с тем, что с power bi и мерами (DAX) начал работать недавно, столкнулся с проблемой подсчёта количества уникальных записей в динамике с условием/фильтром. Пример во вложении.

Задача.
Есть таблица по ассортименту проданных товаров за период времени.
Нужно посчитать в формуле/мере DAX по месяцам, какие уникальные названия товаров встречались в периоде. При условии, что их продавали больше 1ого раза и меньше или равно 2. Как в примере результат должен быть равен 2.

Заранее спасибо!
 
Меру за вас не напишу (времени нет), но попробуйте вот эту ссылку: Функция DISTINCT (DAX)
И вот еще Подсчет уникальных значений среди повторяющихся
Изменено: PooHkrd - 31.07.2017 17:24:39
Вот горшок пустой, он предмет простой...
 
Доброе время суток
Цитата
kish13 написал:
их продавали больше 1ого раза и меньше или равно 2
это такое сложное определение = 2 или я чего то в этой жизни не понимаю? :(
 
Условие >1 и <=2 в примере.
Насчет сложного определения согласен, просто мне нужно было как то отразить интервал и что б он с примером корректен был.
 
Ближайшее счётное большее 1 - это 2, это и не понятно. Следующее, результат = 2 где в сводной должен отображаться? Число уникальных, в общем случае считает DISTINCTCOUNT
 
Андрей не совсем понял Ваш вопрос.
1. Интервал может быть любой >1 и <10; >100 и <1000
2. Я в Power BI хочу построить динамику по месяцам количества товаров продажи которых лежат в указанном диапазоне из пункта 1. Для этого создаю меру, но на данный момент не могу составить формулу расчета.
У меня на графике должно получиться например, в январе было продано 35 товаров, продажи по которым были в диапазоне от 10 до 100 шт и т.д.

P.S. Если я в лоб использую функцию DISTINCTCOUNT то мне выдает все уникальные товары которые были проданы в данном периоде, а мне нужно с определенным количеством штук (в диапазоне значений).
 
Тогда у вас не удачный пример. Что выводится, если число уникальных вне интервала? В примере у вас показывается всё.
 
Подправил пример. Мера(DAX) в power BI должна выводить колонку результат в зависимости от того, какую я динамику хочу отобразить или по месяцам или по годам
 
Да. коллега, умеете же вы формулировать вопросы. Судя по представленным пояснительным таблицам вопрос должен звучать так:
Определить количество наименований товаров, продажи которых в заданных временных диапазонах лежат по количеству проданных в требуемом интервале.
Сделано в 2010, на всякий случай прилагаю меру.
Код
= IF(ISBLANK(COUNTROWS(FILTER(SUMMARIZE( 'Продажи'; 'Продажи'[Товар]; "product count"; COUNTA('Продажи'[Товар]) );[product count] > 1 && [product count] <= 2))); 0;
COUNTROWS(FILTER(SUMMARIZE( 'Продажи'; 'Продажи'[Товар]; "product count"; COUNTA('Продажи'[Товар]) );[product count] > 1 && [product count] <= 2)))
Изменено: Андрей VG - 01.08.2017 10:46:43
 
Андрей, огромнейшее спасибо! Точно в цель!

До этого не использовал функцию SUMMARIZE, надо попрактиковаться =)
 
файл пока не смотрел, но можно чуть упростить:
Код
=
COUNTROWS (
    FILTER (
        SUMMARIZE (
            'Продажи';
            'Продажи'[Товар];
            "product count"; COUNTA ( 'Продажи'[Товар] )
        );
        [product count] > 1
            && [product count] <= 2
    )
)
    + 0
Изменено: Максим Зеленский - 01.08.2017 19:36:58
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
+ 0
Вот что значит постоянная практика. Спасибо, Максим.
 
И еще немного упростим :)

Код
=
SUMX (
    VALUES ( 'Table'[Товар] );
    IF (
        AND (
            CALCULATE ( COUNTROWS ( 'Table' ) ) > 1;
            CALCULATE ( COUNTROWS ( 'Table' ) ) <= 2
        );
        1;
        0
    )
)

Для Power BI поэлегантнее будет:
Код
=
SUMX (
    VALUES ( 'Table'[Товар] );
    VAR CRT =
        CALCULATE ( COUNTROWS ( 'Table' ) )
    RETURN
        IF ( AND ( CRT > 1; CRT <= 2 ); 1; 0 )
)
Изменено: Максим Зеленский - 02.08.2017 22:40:30
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
И еще немного упростим
Максим, спасибо за варианты. Тут уже надо на скорость тестировать, хотя разница не должна быть большой, подход один и тот же.
 
Согласен, но если объем данных заметный, SUMMARIZE будет медленнее, насколько понимаю
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
будет медленнее, насколько понимаю
Фиг, его знает. По существу, SUMMARIZE - словарь по ключам полей группировки, плюс значение аккумулятор... Вот только как это реализовано. Вполне возможно, не очень, иначе чего бы GROUPBY, при прочих равных, советовали бы использовать.
 
Добрый день!
Подскажите, пожалуйста, как быть в схожем вопросе но с другим примером который усложняется некоторыми условиями.

Задача:

Необходимо указать количество городов выполнившие план по группам ( >=95% и <95%).

Нюанс: план ежедневный, фактические данные заполняется на тек. дату.

Пример  во вложении.

Прошу простить, что вкладываю Power BI, урезанная версия Excel

Изменено: Надежда278 - 08.08.2019 17:57:52
 
Цитата
Максим Зеленский написал:
Для Power BI поэлегантнее будет:Код ? 12345678=SUMX (    VALUES ( 'Table'[Товар] );    VAR CRT =        CALCULATE ( COUNTROWS ( 'Table' ) )    RETURN        IF ( AND ( CRT > 1; CRT <= 2 ); 1; 0 )
Добрый день! Может быть и мне поможете с формулой?:)
У меня задача: Есть список клиентов и у каждого  свой менеджер. Мне нужно засчитать менеджеру клиента у которого за 4 квартал больше 1000 рублей, при этом в 3 квартале меньше 1000 рублей.  
 
Доброе время суток
Цитата
Асель написал:
Может быть и мне поможете с формулой?
Не сочтите за труд, ознакомитесь с правилами форума.
Страницы: 1
Наверх