Вложенные меры – это возможность использования одной меры внутри другой, что позволяет повторно использовать логику вычислений, упрощает код, делает его более гибким и улучшает его читаемость.
Рассмотрим несколько примеров использования вложенных мер.
Пример 1
Предположим, у вас есть следующая простая мера, которая вычисляет общие продажи:
Объём продаж = SUM(Sales[SalesAmount])
Теперь вы хотите создать меру, которая вычисляет прибыль в размере 20%. Вместо того чтобы повторять логику вычисления общих продаж, вы можете использовать существующую меру Объём продаж
:
Прибыль = [Объём продаж] * 0.20
[картинка]
Пример 2
Теперь представим, что у вас есть две меры, которые вычисляют объем продаж с учетом скидок для физических и юридических лиц:
Объём продаж со скидкой (физические лица) = CALCULATE(
SUMX(
fact,
fact[salesamount] - fact[discountamount]
),
FILTER(
dimcustomer,
dimcustomer[customertype] IN {"Person"}
)
)
и
Объём продаж со скидкой (юридические лица) = CALCULATE(
SUMX(
fact,
fact[salesamount] - fact[bonus]
),
FILTER(
dimcustomer,
dimcustomer[customertype] IN {"Company"}
)
)
Предположим, вам необходимо посчитать общую выручку от физических и юридических лиц. Для этого вы можете создать следующую меру (складываются значения двух мер):
Выручка = [Объём продаж со скидкой (физические лица)] + [Объём продаж со скидкой (юридические лица)]
[картинка]
Пример 3
В качестве третьего примера, мы рассмотрим ситуацию, когда имеются две меры, одна из которых вычисляет общую сумму продаж, а вторая – количество уникальных номеров заказов:
Общая сумма продаж =
CALCULATE (
SUMX (
'факты онлайн продаж',
'факты онлайн продаж'[unitprice] * 'факты онлайн продаж'[salesquantity]
),
REMOVEFILTERS ( 'факты онлайн продаж' ),
SUMMARIZE ( 'факты онлайн продаж', 'факты онлайн продаж'[salesordernumber] )
)
и
Уникальные заказы =
CALCULATE (
DISTINCTCOUNT ( 'факты онлайн продаж'[salesordernumber] ),
REMOVEFILTERS ( 'факты онлайн продаж' ),
SUMMARIZE ( 'факты онлайн продаж', 'факты онлайн продаж'[salesordernumber] )
)
Теперь предположим, что вы хотите посчитать цену среднего чека. Для этого вы можете использовать следующую формулу:
Средний чек =
DIVIDE (
'факты онлайн продаж'[Общая сумма продаж],
'факты онлайн продаж'[Уникальные заказы]
)
Данная формула вычисляет средний чек, разделяя общую сумму продаж на количество уникальных заказов.
Смотрите также
📄 Поддерживаемые функции DAX
📄 Математические операторы