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