Мера новых клиентов в DAX

новый клиент = COUNTROWS(
 FILTER(VALUES(mysql_transactions_facts[userPhone]); 
 CALCULATE(DISTINCTCOUNT(mysql_transactions_facts[orderId]); 
 FILTER(ALL('calendar'); 
 'calendar'[Date]<MAX('calendar'[Date])
 )
 )>1 &&
 CALCULATE(COUNTROWS('mysql_transactions_facts'))=1
 )
 )

или так

COUNTROWS (
 FILTER (
 ADDCOLUMNS (
 VALUES ( mysql_transactions_facts[userPhone] ),
 "PreviousSales", CALCULATE (
 COUNTROWS ( mysql_transactions_facts),
 FILTER (
 ALL ( 'calendar' ),
 'calendar'[Date]< MIN ( 'calendar'[Date] )
 )
 )
 ),
 [PreviousSales] = 0
 )
)

а вот так вернувшийся клиент:

COUNTROWS (
 CALCULATETABLE (
 VALUES ( mysql_transactions_facts[userPhone] ),
 VALUES ( mysql_transactions_facts[userPhone]),
 FILTER (
 ALL ( 'calendar' ),
 'calendar'[Date]< MIN ( 'calendar'[Date] )
 )
 )
)

Как искать аутлаеров

В PBI:

Создаем отдельную табличку:

without_outliers = FILTER(SUMMARIZE(Query1;Query1[card];"count";COUNT(Query1[card]));[count]<40)

С помощью SUMMARIZE создаем сводную табличку и фильтруем аутлаеров с помощью FILTER

Потом связываем

 

В R:

boxplot(dataset$count)
out = boxplot(dataset$count)$out
out_data = as.data.frame(out)

 

 

Про DAX

http://moonexcel.com.ua/uroki-dax2-calculate_ru

Каким образом мы получили в расчетном поле Count_All_Product цифры 16? Объяснение в том, что мы сняли для этого поля все фильтры, которые были применены в сводной таблице (каждая строка в сводной таблице это отдельный фильтр), с помощью функции ALL(). То есть, другими словами, функция ALL(Demo) дает команду снять все фильтры для расчетного поля Count_All_Product, которые применяются к таблице Demo.

Теперь давайте внесем незначительные изменения в нашу формулу и посмотрим на результат.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Мы изменили аргумент для функции ALL(), заменив Demo на Demo [Product]. Теперь фильтры будут сняты не для всей таблицы Demo, а только для ее столбца Demo[Product].

———————-

https://habrahabr.ru/post/245631/—

Шаг 2. Усложняем: Посчитаем долю каждой записи в общих продажах.

Здесь, как можно заметить окно открывается через все записи датасэта, попробуем аналогичную вещь в PowerPivot:

=[Отгрузка шт]/CALCULATE(SUM([Отгрузка шт]);ALL('Таблица1'))

Основное внимание обратим к знаменателю: Я уже упоминал выше что основное отличие вычисляемого поля от меры заключается в том что в поле формулы считают по горизонтали ( в рамках одной записи) а меры – по вертикали ( в рамках одного атрибута). Типо ALL свнимает всю фильтрацию, используем если нужны статичные данные.