Создание простых мер
Чтобы добавить меру в любую таблицу своей модели, можно написать формулу DAX. Формула меры должна возвращать скалярное или одиночное значение.
Примечание
В табличном моделировании не существует такого понятия, как вычисляемая мера. Слово вычисляемый используется для описания вычисляемых таблиц и вычисляемых столбцов. Это отличает их от таблиц и столбцов, которые происходят из Power Query, где нет концепции явной меры.
Меры не хранят значения в модели. Вместо этого они используются во время запроса для возврата сводных данных модели. Кроме того, меры не могут ссылаться на таблицу или столбец напрямую. Они должны передать таблицу или столбец в функцию для формирования сводных данных.
Простая мера агрегирует значения одного столбца. Неявные меры делают это автоматически.
В следующем примере вы добавите меру в таблицу Sales. В области Поля выберите таблицу Sales. Чтобы создать меру, на контекстной вкладке ленты Работа с таблицами в группе Вычисления щелкните Создать меру.
В строке формулы введите следующее определение меры и нажмите клавишу ВВОД.
Revenue =
SUM(Sales[Sales Amount])
Определение меры добавляет меру Revenue в таблицу Sales. Используется DAX-функция SUM
для суммирования значений столбца Sales Amount.
На контекстной вкладке ленты Средства работы с мерами в группе Форматирование установите для десятичных знаков значение 2.
Совет
Сразу после создания меры задайте параметры форматирования, чтобы обеспечить презентабельность и согласованность значений во всех визуальных элементах отчета.
Теперь добавьте меру Revenue в матричный визуальный элемент. Обратите внимание, что он дает тот же результат, что и неявная мера Sales Amount.
В матричном визуальном элементе удалите Sales Amount и Sum of Unit Price.
Далее предстоит создать дополнительные меры. Создайте меру Cost с помощью следующего определения меры, а затем задайте формат с двумя десятичными знаками.
Cost =
SUM(Sales[Total Product Cost])
Создайте меру Profit, а затем задайте формат с двумя десятичными знаками.
Profit =
SUM(Sales[Profit Amount])
Обратите внимание, что столбец Profit Amount является вычисляемым столбцом. Эта тема рассматривается далее в этом модуле.
Затем создайте меру Quantity и отформатируйте ее как целое число с разделителем групп разрядов.
Quantity =
SUM(Sales[Order Quantity])
Создайте три меры для цены за единицу, а затем задайте формат в два десятичных знака для каждой из них. Обратите внимание на различные используемые агрегатные функции DAX: MIN
, MAX
и AVERAGE
.
Minimum Price =
MIN(Sales[Unit Price])
Maximum Price =
MAX(Sales[Unit Price])
Average Price =
AVERAGE(Sales[Unit Price])
Теперь скройте столбец Unit Price, в результате чего авторы отчетов не смогут суммировать столбец, за исключением использования мер.
Совет
Добавление мер и скрытие столбцов — это то, как вы в роли разработчика моделей данных можете ограничивать параметры формирования сводных данных.
Затем создайте следующие две меры, которые подсчитывают количество заказов и их строки. Отформатируйте обе меры как значения без десятичных знаков.
Order Line Count =
COUNT(Sales[SalesOrderLineKey])
Order Count =
DISTINCTCOUNT('Sales Order'[Sales Order])
Функция DAX COUNT
подсчитывает количество непустых значений в столбце, а функция DAX DISTINCTCOUNT
— количество уникальных значений в столбце. Так как заказ может содержать одну или несколько строк заказа, столбец Sales Order будет содержать дублирующиеся значения. Число уникальных значений в этом столбце будет правильно подсчитывать количество заказов.
Кроме того, можно выбрать более удобный способ записи меры Order Line Count. Вместо подсчета значений в столбце семантически понятнее использовать функцию DAX COUNTROWS
. В отличие от представленных ранее агрегатных функций, которые агрегируют значения столбцов, функция COUNTROWS
подсчитывает количество строк для таблицы.
Измените формулу созданной выше меры Order Line Count на следующие параметры:
Order Line Count =
COUNTROWS(Sales)
Добавьте каждую меру в матричный визуальный элемент.
Все созданные меры считаются простыми, так как они объединяют один столбец или одну таблицу.