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
Математические операторы
Нужна дополнительная помощь?