Шаг 1. Посчитаем агрегированное значение по брендам.
SUM ( factonlinesales[salesamount] )
Шаг 2. Посчитает общее агрегированное значение, причем в данной формуле при помощи функции REMOVEFILTERS мы явно убираем влияние контекста на данную формулу.
CALCULATE ( SUM ( factonlinesales[salesamount] ), REMOVEFILTERS ( dimproduct ) )
Шаг 3. В итоге совмещения этих функций получаем формулу Доли по брендам.
SUM ( factonlinesales[salesamount] )
/ CALCULATE ( SUM ( factonlinesales[salesamount] ), REMOVEFILTERS ( dimproduct ) )
Шаг 1. Посчитаем агрегированное значение по товарам в бренде.
SUM ( factonlinesales[salesamount] )
Шаг 2.
CALCULATE (
SUM ( factonlinesales[salesamount] ),
REMOVEFILTERS ( dimproduct ),
SUMMARIZE ( dimproduct, dimproduct[brandname] )
)
В данной формуле мы дополнительно используем функцию SUMMARIZE в контексте название бренда. Это даёт понять системе, что доля будет рассчитываться не в общем, а отдельно внутри каждого из брендов.
Шаг 3. Посчитаем долю в бренде.
SUM ( factonlinesales[salesamount] )
/ CALCULATE (
SUM ( factonlinesales[salesamount] ),
REMOVEFILTERS ( dimproduct ),
SUMMARIZE ( dimproduct, dimproduct[brandname] )
)
Шаг 1.
CALCULATE(
SUM('factonlinesales'[unitprice]),
REMOVEFILTERS('factonlinesales'),
SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
)
Вычисляется сумма цен всех товаров в чеках без учёта фильтров (REMOVEFILTERS). Для этого сначала применяется функция CALCULATE, которая вычисляет сумму цен всех товаров по каждому уникальному номеру заказа (salesordernumber) из таблицы factonlinesales, затем функция REMOVEFILTERS удаляет фильтры, которые могут изменить сумму цен, и возвращает данные без фильтров.
Шаг 2.
CALCULATE(
COUNT('factonlinesales'[productkey]),
REMOVEFILTERS('factonlinesales'),
SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
), BLANK()
Вычисляется количество товаров в каждом чеке без учёта фильтров. Для этого также используется функция CALCULATE с аналогичными параметрами.
Шаг 3.
Средняя цена товара по чеку = DIVIDE(
CALCULATE(
SUM('factonlinesales'[unitprice]),
REMOVEFILTERS('factonlinesales'),
SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
),
CALCULATE(
COUNT('factonlinesales'[productkey]),
REMOVEFILTERS('factonlinesales'),
SUMMARIZE('factonlinesales', 'factonlinesales'[salesordernumber])
), BLANK()
)
Для проведения расчётов воспользуемся формулой:
TOTALYTD(SUM(salesfact[salesamount]), dimdate[datekey])
в которой
salesamount – это столбец в таблице salesfact, который содержит значения продаж;
SUM(salesfact[salesamount]) – суммирует значения в столбце salesamount, вычисляя общую сумму продаж;
datekey – столбец в таблице dimdate, содержащий даты, по которым производится расчёт.
Время зарядки 22 кВт = CALCULATE((DIVIDE (MAX(VIN[Battery capacity]),MAX('Зарядные сессии'[Power]))*60),FILTER('Зарядные сессии','Зарядные сессии'[Power]=22))
AverageViewsPerMonth = CALCULATE(DIVIDE(DISTINCTCOUNT(‘Фильмы’[id]), COUNT(‘Статистика онлайн кинотеатра’[id])),FILTER('Фильмы','Фильмы'[Страна]={Россия}))