SUMMARIZE
Создает сводную таблицу, сгруппированную по указанным столбцам.
При использовании в связке с REMOVEFILTERS восстанавливает фильтрацию по колонкам, которые были отменены в REMOVEFILTERS.
Синтаксис
SUMMARIZE ( <Table> [, <GroupBy_ColumnName> [, … ] ] )
где
<Table>– таблица, из которой нужно взять данные.<groupBy_columnName>– один или несколько столбцов, по которым будут группироваться данные.
Пример 1
Представьте, что вы хотите проанализировать общую сумму продаж за определенный период времени, игнорируя фильтры по товарам, но группируя данные по цвету товара. Для этой цели можно воспользоваться следующей формулой:
Объем продаж (группировка по цвету) =
CALCULATE (
SUM ( factonlinesales[salesamount] ),
REMOVEFILTERS ( dimproduct ),
SUMMARIZE (
dimproduct,
dimproduct[colorname]
)
)где
SUM(factonlinesales[salesamount])– суммирует значения столбцаsalesamountиз таблицыfactonlinesales.REMOVEFILTERS(dimproduct)– удаляет все фильтры, примененные к таблицеdimproduct, чтобы обеспечить корректный расчет суммы для всех товаров независимо от текущих фильтров.SUMMARIZE(dimproduct, dimproduct[colorname])– создает сводную таблицу, группируя данные по полюcolornameиз таблицыdimproduct. Это позволяет суммировать продажи отдельно для каждого цвета.
Пример 2
Допустим, у вас есть таблица продаж sales (продажи), а также таблицы измерений calendar (календарь) и store (магазин):
Предположим, вам необходимо подсчитывает количество магазинов, у которых общая сумма заказов больше 50 миллионов. Для этого можно воспользоваться следующей формулой:
Индикатор максимальных продаж = SUMX (
SUMMARIZE ( sales, sales[storekey] ),
CALCULATE (IF ( SUM ( sales[orderamount] ) > 50000000, 1, 0 ) )
)где
SUMMARIZE ( sales, salesstorekey )– создает новую таблицу, которая содержит уникальные ключи магазинов (storekey) из таблицыsales. Это значит, что мы создаем список всех магазинов, представленных в данных о продажах, без дублирования магазинов.SUMX– функция агрегирования, которая проходит по каждой строке полученной таблицы из предыдущего шага и выполняет вычисление, заданное внутри нее.CALCULATE (IF ( SUM ( salesorderamount ) > 50000000, 1, 0 ) )– для каждого магазина функцияCALCULATEсуммирует значенияorderamount(сумма заказов) и проверяет, превышает ли эта сумма 50 миллионов. Если превышает, то возвращается1(означая, что магазин соответствует критерию), в противном случае – 0.
Это может быть полезно для бизнес-анализа, чтобы определить ключевые магазины с самыми высокими объемами продаж.
Смотрите также
Моделирование данных с помощью DAX
Поддерживаемые функции DAX
Математические операторы
Нужна дополнительная помощь?