сумма по условной переменной, значение которой определяется как 1 или 0 на основе продаж за предыдущий год по сравнению с текущим годом на основе выбора диапазона дат - PullRequest
0 голосов
/ 06 февраля 2019

Для данного выбора года и месяца в отчете должен отображаться список клиентов, классифицированных в 3 сегментах ...

Отток - клиент, у которого были продажи в предыдущем году для выбора диапазона дат, но нев текущем году

Новый - клиент, у которого были продажи в текущем году для выбора диапазона дат, но не в предыдущем году

Кроссовер - клиент, у которого были продажи в предыдущем и текущем году для выбора диапазона дат

В отчете также должен отображаться итоговый счет всех уникальных клиентов, принадлежащих к каждому отдельному сегменту ...

Образец ...

Сводка: дляДля каждого сегмента я должен увидеть количество клиентов, которые входят в каждый сегмент для выбранного диапазона дат

Churn New Crossover

Изображение рабочих деталей в PowerBI с использованиемПеременные создания, описанные выше:

Для этого я создал совокупный итог текущего и предыдущего года, который корректируется на основе выбранного диапазона дат

Cumulative_CY = 

SUMX(
    VALUES(CustomerDta[BillToCustomerID]),
    CALCULATE( SUM(CustomerDta[CY]),
FILTER(
    ALLSELECTED(CustomerDta),
    CustomerDta[Date]<= MAX(CustomerDta[Date]))))


Cumulative_PY = 
    SUMX(
        VALUES(CustomerDta[BillToCustomerID]),
        CALCULATE( SUM(CustomerDta[PY]),
    FILTER(
        ALLSELECTED(CustomerDta),
        CustomerDta[Date]<= MAX(CustomerDta[Date]))))

Затем я создал переменную для каждого сегмента, который мне нужно отслеживать ...

Churn = IF(AND([Cumm_PY] >0,[Cumm_CY]<=0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)

New = IF(AND([Cumm_PY] <=0,[Cumm_CY]>0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)

CrossOver = IF(AND([Cumm_PY] > 0,[Cumm_CY]>0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)

Используя то, что я описал выше, я смог создать детали отчета, как показано на прикрепленном изображении, но не смог получитьитоговая сумма рассчитывается для 3 сегментов в нижней части объекта таблицы или как отдельная визуальная переменная.Как только я удаляю идентификатор клиента, все классифицируется как кроссовер ...

Мне нужно иметь возможность сделать сумму для условной переменной, значение которой определяется как 1 или 0 на основе продаж за предыдущий годпо сравнению с текущим годом, основанным на выборе диапазона дат ...

Я попытался сделать сумму для них после того, как они были созданы ... но это не предусмотренный параметр

Churn = IF(AND([Cumm_PY] >0,[Cumm_CY]<=0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)

New = IF(AND([Cumm_PY] <=0,[Cumm_CY]>0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)

CrossOver = IF(AND([Cumm_PY] > 0,[Cumm_CY]>0),DISTINCTCOUNT(CustomerDta[BillToCustomerID]),0)
...