Страницы: 1
RSS
Power pivot: подсчет новых и постоянных клиентов с продажами с помощью формул DAX
 
Добрый день, уважаемые форумчане.

Есть таблица с продажами клиентов по годам. с помощью Power pivot и формул DAX я высчитываю:
1. общее кол-во клиентов с продажами за каждый год
2. кол-во новых клиентов (никогда не было продаж в предыдущие годы)
3.кол-во постоянных клиентов (переходящие продажи из года в год)
Сделал все меры с помощью формул DAX, которые успешно все эти задачи считают, кроме 3 пункта - общий итог по постоянным клиентам не считается. На русскоязычных форумах нет толковой информации по сложно составным формулам DAX, а на англоязычных не все могу понять.
В общем, нужна помощь в корректировке или написании новой формулы DAX. Пример прилагаю, заранее спасибо.
 
Доброе время суток.
Вариант в Power BI Desktop (не смог открыть модель в 2010). Если нужно, то сброшу меры. Правда, не получилось задавить "Новых клиентов" вне итогов по одному году :(
 
Андрей VG, к сожалению, не смог прикрутить меру в power pivot. Ругается на функцию "Var" - почитал, оказывается данная функция работает в power bi(настольный) и power pivot 2016. А у меня 2013 (забыл упомянуть)..
 
Владимир, для 2010-203 будет так
Код
Постоянный клиент := COUNTROWS(
        FILTER(SUMMARIZE(CALCULATETABLE('Таблица'; ALL('Таблица'[год])); 'Таблица'[клиент]; 
                "FirstYear"; MIN('Таблица'[год]);
                "LastYear"; MAX('Таблица'[год]);
                "YearCount"; DISTINCTCOUNT('Таблица'[год])
                ); 
        MIN('Таблица'[год]) >= [FirstYear] && MIN('Таблица'[год]) <= [LastYear] && [YearCount] > 1
        )
)

Просто последовательно подставляете значение переменной в функции - и болучаете одну большущую :)
 
Андрей VG, большое спасибо!
Нужный результат получен!
 
У меня так получилось:

Код
=
SUMX (
    'Таблица';
    IF (
        COUNTROWS ( CALCULATETABLE ( 'Таблица'; ALL ( 'Таблица'[год] ) ) )
            = CALCULATE ( DISTINCTCOUNT ( 'Таблица'[год] ); ALL ( 'Таблица' ) );
        1
    )
)
F1 творит чудеса
 
Максим Зеленский, спасибо, Ваш метод тоже работает! причем я  мыслил в том же направлении, но не мог решить проблему суммирования в общем итоге - у Вас получилось! Единственный минус (если я правильно понимаю DAX), что в дальнейшем данную формулу не получится "перенести" на сумму продаж (но я об этом и не просил).
 
Цитата
Vladimir Chebykin написал:
Единственный минус (если я правильно понимаю DAX), что в дальнейшем данную формулу не получится "перенести" на сумму продаж (но я об этом и не просил).
Почему? Просто поменяйте единичку на меру расчета суммы продаж.
Код
=
SUMX (
    'Таблица',
    IF (
        COUNTROWS ( CALCULATETABLE ( 'Таблица', ALL ( 'Таблица'[год] ) ) )
            = CALCULATE ( DISTINCTCOUNT ( 'Таблица'[год] ), ALL ( 'Таблица' ) ),
        [Сумма]
    )
)
F1 творит чудеса
Страницы: 1
Наверх