Примеры использования вложенных мер

Примеры использования вложенных мер

Вложенные меры – это возможность использования одной меры внутри другой, что позволяет повторно использовать логику вычислений, упрощает код, делает его более гибким и улучшает его читаемость.

  • При использовании вложенных мер необходимо сначала указать название таблицы, где находится мера, а затем название самой меры. Например:
    'factonlinesales' [Скидки]
    В данном примере мера Скидки находится в таблице factonlinesales.

  • В текущей версии платформы дашборд-меры, не могут быть использованы для создания вложенных мер. Однако есть исключение: мера, используемая на дашборде, может выступать в роли конечной меры в цепочки вложенных мер (т. е. она может ссылаться на меры в модели данных). Другими словами мера, используемая на дашборде может ссылаться на меру набора данных, но не может ссылаться на меру того же или другого дашборда, так же как и мера на наборе данных не может ссылаться на меру дашборда.
    Пример:
    Мера_1 = 2 * 'Компания'[Мера_2]
    где Мера_1 – мера, созданная на уровне дашборда, а Мера_2 – мера, существующая в наборе данных. То есть, в данной формуле дашборд-мера Мера_1 ссылается на Мера_2, которая находится в наборе данных.

Рассмотрим несколько примеров использования вложенных мер.

В примерах ниже используется модель данных, описанная на странице Поддерживаемые функции DAX.

Пример 1

Предположим, у вас есть простая мера, которая вычисляет общие продажи:
Объём продаж = SUM('factonlinesales'[salesamount])

Теперь вы хотите создать меру, которая вычисляет прибыль в размере 20%. Вместо того чтобы повторять логику вычисления общих продаж, вы можете использовать существующую меру Объём продаж:

Прибыль = 'factonlinesales' [Объём продаж] * 0.20

coefficient.png

Пример 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 [Объём продаж со скидкой (юридические лица)]

profit.png

Пример 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'[Уникальные заказы] )

Данная формула вычисляет средний чек по каждому магазину, разделяя общую сумму продаж на количество уникальных заказов.

average.png

Смотрите также

Поддерживаемые функции DAX
Математические операторы

На этой странице


Время чтения: 3 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.