Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

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

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

Пример 1

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

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

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

coefficient.pngImage Added

Пример 2

Теперь представим, что у вас есть две меры, которые вычисляют объем продаж с учетом скидок для физических и юридических лиц:

Блок кода
Объём продаж со скидкой (физические лица) = CALCULATE(
    SUMX(
        factfactonlinesales,
        factfactonlinesales[salesamount] - factfactonlinesales[discountamount]
    ),
    FILTER(
        dimcustomer,
        dimcustomer[customertype] IN {"Person"}
    )
)

и

Блок кода
Объём продаж со скидкой (юридические лица) = CALCULATE(
    SUMX(
        factfactonlinesales,
        factfactonlinesales[salesamount] - factfactonlinesales[bonusdiscountamount]
    ),
    FILTER(
        dimcustomer,
        dimcustomer[customertype] IN {"Company"}
    )
)

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

Выручка = factonlinesales [Объём продаж со скидкой (физические лица)] + factonlinesales [Объём продаж со скидкой (юридические лица)][картинка]

profit.pngImage Added

Пример 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.pngImage Added

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

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

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

Оглавление
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printabletrue

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


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

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