Учебник. Создание собственных мер в Power BI Desktop

С помощью мер можно создать некоторые эффективные решения для анализа данных в Power BI Desktop. Меры полезны тем, что они выполняют вычисления с вашими данными, когда вы работаете с отчетами. В этом руководстве объясняется, что такое меры, и как создать несколько собственных базовых мер в Power BI Desktop.

Предварительные требования

  • Это руководство предназначено для пользователей Power BI, которые знают, как использовать Power BI Desktop для создания более сложных моделей. Вы уже должны быть знакомы с использованием get Data и Редактор Power Query для импорта данных, работы с несколькими связанными таблицами и добавления полей на холст отчета. Если вы еще не знакомы с Power BI Desktop, прочтите статью Начало работы с Power BI Desktop.

  • В этом руководстве используется файл Contoso Sales Sample for Power BI Desktop, который содержит данные о продаже товаров через Интернет, относящиеся к вымышленной компании Contoso. Так как эти данные импортируются из базы данных, вы не можете подключиться к источнику данных или просмотреть их в Редактор Power Query. Скачайте и распакуйте файл на компьютере.

Автоматические меры

Создание мер в Power BI Desktop чаще всего осуществляется автоматически. Чтобы узнать, как Power BI Desktop создает меру, выполните следующие действия.

  1. В Power BI Desktop выберите Файл>Открыть, перейдите к файлу Contoso Sales Sample for Power BI Desktop.pbix и нажмите кнопку Открыть.

  2. В панели Поля разверните таблицу Sales. Затем либо установите флажок рядом с полем SalesAmount, либо перетащите SalesAmount на холст отчета.

    Отображается новая визуализация в виде гистограммы, на которой показана сумма всех значений в столбце SalesAmount таблицы Sales (Продажи).

    SalesAmount column chart

Любое поле (столбец) в области "Поля " со значком Sigma icon сигмы является числовым, и его значения можно агрегировать. Чтобы не выводить таблицу со множеством значений (два миллиона строк для SalesAmount), Power BI Desktop автоматически создает и вычисляет меру для статистической обработки данных при обнаружении числового типа данных. Сумма — это функция статистической обработки по умолчанию для числовых данных. Но вы можете легко применить другой тип, например вычисление среднего значения или подсчет. Без понимания статистических вычислений вы не сможете работать с мерами, так как каждая мера выполняет статистическое вычисление определенного типа.

Чтобы изменить статистическое вычисление диаграммы, сделайте следующее.

  1. Выберите визуализацию SalesAmount на холсте отчета.

  2. В области "Значения" области "Визуализации " щелкните стрелку вниз справа от SalesAmount.

  3. В открывшемся меню выберите пункт Среднее.

    Визуализация изменяется и отображает среднее значение всех продаж в поле SalesAmount.

    SalesAmount average chart

Вы можете изменять тип статистического вычисления в зависимости от требуемого результата. Однако не все типы статистического вычисления применяются к каждому числовому типу данных. Например, для поля SalesAmount имеет смысл вычислить сумму и среднее значение, а также минимум и максимум. Но подсчет количества для поля SalesAmount не имеет смысла, так как, хотя его значения и числовые, они представляют денежные значения.

Значения, вычисленные из мер, изменяются по мере работы с отчетом. Например, если перетащить поле RegionCountryName из таблицы Geography (География) на существующую диаграмму SalesAmount, то для каждой страны отобразится среднее значение объема продаж.

SaleAmount by Country

Когда из-за работы с отчетом изменяется результат меры, вы влияете на контекст меры. Каждый раз при взаимодействии с визуализациями отчетов вы изменяете контекст, в котором вычисляются и отображаются результаты меры.

Создание и использование собственных мер

В большинстве случаев Power BI автоматически вычисляет и возвращает значения в зависимости от выбранных типов полей и агрегатов. Однако в других случаях может потребоваться создать собственные меры для выполнения более сложных, уникальных вычислений. С помощью Power BI Desktop вы можете создавать собственные меры на языке формул DAX.

В формулах DAX используются многие функции, операторы и синтаксис из формул Excel. Но функции DAX предназначены для работы с реляционными данными и выполнения более динамических вычислений по мере вашей работы с отчетами. Существует более 200 функций DAX, которые делают все: от простых вычислений, таких как подсчет суммы и среднего значения, до более сложных статистических функций и функций фильтрации. Доступно множество материалов по DAX. Закончив работу с этим руководством, ознакомьтесь со статьей Основные сведения о DAX в Power BI Desktop.

Когда вы создаете собственную меру, она называется мерой модели и добавляется в список Поля для выбранной вами таблицы. Одно из главных преимуществ мер модели заключается в том, что вы можете присвоить им любое имя, упрощая их определение. Кроме того, меры можно использовать в качестве аргументов в других выражениях DAX. Также можно создавать меры, которые быстро выполняют сложные вычисления.

Быстрые меры

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

Создайте быструю меру, используя один из следующих методов.

  • В таблице в области Поля щелкните правой кнопкой мыши или выберите пункт Дополнительные параметры (...), а затем выберите Новая быстрая мера в списке.

  • В разделе Вычисления на вкладке Главная ленты Power BI Desktop выберите Новая быстрая мера.

Дополнительные сведения о создании и использовании быстрых мер см. в разделе Использование быстрых мер.

Создание меры

Предположим, что вам нужно проанализировать чистую выручку от продаж, вычтя скидки и возвраты из общей суммы продаж. Вам потребуется мера, которая, независимо от контекста в визуализации, должна вычесть сумму DiscountAmount и ReturnAmount из суммы SalesAmount. В списке Поля нет поля с именем Net Sales (Чистая выручка от продаж). Но есть стандартные блоки, с помощью которых можно создать собственную меру для вычисления чистой выручки от продаж.

Чтобы создать меру, сделайте следующее:

  1. В области Поля щелкните правой кнопкой мыши таблицу Sales (Продажи) или наведите указатель на таблицу и выберите пункт Дополнительные параметры (...).

  2. В открывшемся меню выберите пункт Создать меру.

    Новая мера сохраняется в таблице Sales (Продажи), где ее легко найти.

    New measure from list

    Вы также можете создать меру, нажав кнопку Создать меру в группе Вычисления на вкладке Главная ленты в Power BI Desktop.

    New measure from ribbon

    Совет

    Если мера создается с помощью ленты, ее можно создать в любой таблице. Но меру будет проще найти, если создать ее там, где она будет использоваться. В данном случае сначала выберите таблицу Sales (Продажи), чтобы сделать ее активной, а затем выберите Создать меру.

    В верхней части холста отчета появится строка формул, в которой можно переименовать меру и ввести формулу DAX.

    Formula bar

  3. По умолчанию каждая новая мера получает имя Measure (Мера). Если ее не переименовать, другие новые меры получат имена Measure 2, Measure 3 и т. д. Чтобы меру было проще определить, выделите Measure в строке формул и введите Net Sales (Чистая выручка от продаж).

  4. Начните вводить формулу. После знака равенства начните вводить SUM. По мере ввода отобразится раскрывающийся список предложений со всеми функциями DAX, начинающимися с веденной вами буквы. Прокрутите список вниз, чтобы выбрать в нем SUM, и нажмите клавишу ВВОД.

    Choose SUM from list

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

    Choose column

  5. Выражения всегда появляются между открывающей и закрывающей скобкой. В этом примере выражение содержит один аргумент, передаваемый в функцию SUM: столбец SalesAmount. Начните вводить SalesAmount, пока в списке не останется только значение Sales(SalesAmount).

    Имя столбца, которому предшествует имя таблицы, называется полным именем столбца. Полные имена столбцов делают формулы более удобными для чтения.

    Select SalesAmount

  6. Выберите Sales[SalesAmount] в списке, а затем введите закрывающую круглую скобку.

    Совет

    Синтаксические ошибки чаще всего бывают вызваны отсутствующей или неправильно расположенной закрывающей скобкой.

  7. Вычтите два других столбца внутри формулы.

    a. После закрывающей круглой скобки для первого выражения введите пробел, затем оператор "минус" (-) и еще один пробел.

    b. Введите другую функцию SUM и начните вводить текст DiscountAmount, пока не отобразится имя столбца Sales[DiscountAmount], которое можно выбрать в качестве аргумента. Добавьте закрывающую круглую скобку.

    c. Введите пробел, оператор "минус", пробел, еще одну функцию SUM со столбцом Sales[ReturnAmount] в качестве аргумента и закрывающую круглую скобку.

    Complete formula

  8. Нажмите клавишу ВВОД или выберите значок Фиксировать (галочка) в строке формул, чтобы завершить и проверить формулу.

    Теперь проверенная мера Net Sales (Чистая выручка от продаж) готова к использованию для таблицы Sales (Продажи) в области Поля.

    Net Sales measure in Sales table field list

  9. Если при вводе формулы вам не хватило места или нужно разделить формулу на несколько строк, выберите стрелку вниз справа от строки формулы, чтобы появилось больше места.

    Стрелка вниз превращается в стрелку вверх, и появляется большое поле.

    Formula up arrow

  10. Разделите формулу на части, нажав клавиши ALT + ВВОД для разделения на строки или клавишу TAB для добавления табуляции.

    Formula expanded

Использование меры в отчете

Вы можете добавить новую меру Net Sales (Чистая выручка от продаж) на холст отчета, чтобы вычислять чистую выручку от продаж независимо от других полей, добавляемых в отчет.

Чтобы посмотреть чистую выручку от продаж по странам, сделайте следующее:

  1. Выберите меру Net Sales в таблице Продажи, чтобы перетащить ее на холст отчета.

  2. Выберите поле RegionCountryName в таблице Geography (География) или перетащите его на диаграмму Net Sales (Чистая выручка от продаж).

    Net Sales by Country

  3. Чтобы увидеть разницу между чистой выручкой от продаж и суммой продаж по странам, выберите поле SalesAmount и перетащите его на диаграмму.

    Sales Amount and Net Sales by Country

    Теперь в диаграмме используются две меры: SalesAmount, которую решение Power BI суммировало автоматически, и созданная вами мера Net Sales (Чистая выручка от продаж). Каждая мера вычисляется в контексте другого поля — RegionCountryName.

Использование меры со срезом

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

  1. Выберите пустую область рядом с диаграммой. На панели Визуализации выберите визуализацию Таблица.

    На холсте отчета создается визуализация пустой таблицы.

    New blank table visualization

  2. Перетащите поле Year (Год) из таблицы Calendar (Календарь) на новую визуализацию пустой таблицы.

    Так как Year (Год) — это числовое поле, Power BI Desktop суммирует его значения. Такая сумма плохо подходит для статистической обработки. Мы исправим это в следующем шаге.

    Year aggregation

  3. В области Значения на панели Визуализации выберите стрелку вниз рядом со столбцом Year (Год), а затем выберите Не суммировать в списке. Теперь в таблице отображаются отдельные годы.

    Select Don't summarize

  4. Выберите значок среза на панели Визуализации, чтобы преобразовать таблицу в срез. Если визуализация отображает ползунок, а не список, выберите Список с помощью стрелки вниз на ползунке.

    Convert table to slicer

  5. Выберите любое значение в срезе Year (год), чтобы отфильтровать диаграмму чистой выручки от продаж и суммы продаж по RegionCountryName соответствующим образом. Меры Net Sales (Чистая выручка от продаж) и SalesAmount вычисляются заново и показывают результаты только в контексте выбранного поля Year (Год).

    Chart sliced by Year

Использование меры в другой мере

Предположим, вам нужно узнать, какие продукты имели самую высокую чистую выручку от продаж на проданную единицу. Вам потребуется мера, которая делит чистую выручку от продаж на количество проданных единиц. Создайте меру, которая делит результат меры Net Sales (Чистая выручка от продаж) на сумму Sales[SalesQuantity].

  1. В области Поля создайте меру с именем Net Sales per Unit (Чистая выручка от продаж на единицу) в таблице Sales (Продажи).

  2. В строке формул начните вводить Net Sales. В списке предложений отображаются варианты, которые можно добавить. Выберите [Net Sales].

    Formula using Net Sales

  3. Можно также сослаться на меру, введя только открывающую квадратную скобку ([). В списке предложений отображаются только меры, которые можно добавить в формулу.

    Bracket shows measures only

  4. Введите пробел, оператор деления (/), еще один пробел, функцию SUM, а затем введите Quantity. В списке предложений отобразятся все столбцы со словом Quantity в имени. Выберите Sales[SalesQuantity], введите закрывающую круглую скобку и нажмите клавишу ВВОД или значок Фиксировать (галочка), чтобы проверить формулу.

    Итоговая формула должна иметь следующий вид.

    Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])

  5. Выберите меру Net Sales per Unit (Чистая выручка от продаж на единицу) в таблице Sales (Продажи) или перетащите меру в пустую область на холсте отчета.

    На диаграмме показана сумма чистой выручки от всех продаж на единицу товара. Эта диаграмма не очень информативна; Мы рассмотрим его на следующем шаге.

    Overall net sales per unit

  6. Чтобы получить другое представление, измените тип визуализации диаграммы на Диаграмма дерева.

    Change to treemap

  7. Выберите поле Product Category (Категория продукта) или перетащите его на диаграмму "дерево" или поле Группа на панели Визуализации. Эти сведения уже представляют интерес.

    Treemap by Product Category

  8. Попробуйте удалить поле ProductCategory, а вместо него перетащить поле ProductName на диаграмму.

    Treemap by Product Name

    Сейчас мы просто забавляемся, но нужно признать, что это здорово! Попробуйте другие способы фильтрации и форматирования визуализации.

Что вы узнали

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

Дальнейшие действия