Иногда в данных, которые вы анализируете, просто отсутствует определенное поле, необходимое для получения нужных результатов. Тогда появляются вычисляемые столбцы. В вычисляемых столбцах используются формулы DAX для определения значений столбца. Эти значения могут быть практически любыми; например, это может быть совместное размещение текстовых значений из несколько разных столбцов в любом месте модели или вычисление числового значения из других значений. Например, предположим, что в данных имеются столбцы «Город» и «Штат» (как поля в списке полей), но требуется одно поле «Расположение», в котором содержатся оба значения как одно, например, «Майами, Флорида». Это именно то, для чего предназначены вычисляемые столбцы.

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

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

Для выполнения действий из этого учебника вам нужно скачать файл Contoso Sales for Power BI Desktop. Это тот же пример файла, который используется в учебнике Создание собственных мер в Power BI Desktop. Он уже содержит данные по продаже товаров вымышленной компании Contoso, Inc. Так как данные в этом файле были импортированы из базы данных, вы не сможете подключаться к источнику данных или просматривать его в редакторе запросов. Загрузив этот файл на компьютер, откройте его в Power BI Desktop.

Давайте создадим вычисляемый столбец

Предположим, мы хотим отображать категории продуктов вместе с подкатегориями продукта в одном значении в строке, например "Сотовые телефоны — принадлежности", "Сотовые телефоны — смартфоны и КПК" и т. д. Если мы посмотрим на таблицы продуктов в списке полей в представлении отчетов или представлении данных (в данном случае используется представление отчетов), то увидим, что поля, содержащего необходимые нам данные, нет. Однако у нас есть поля ProductCategory и ProductSubcategory, каждое в своей таблице.

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

Создание столбца ProductFullCategory

1. Щелкните правой кнопкой мыши или щелкните стрелку вниз в таблице ProductSubcategory в списке полей, а затем выберите пункт Создать столбец. В результате наш новый столбец будет добавлен в таблицу ProductSubcategory.

Строка формулы появляется в верхней части холста отчета или сетки данных. Здесь мы можем переименовать столбец и ввести формулу DAX.

По умолчанию новый вычисляемый столбец получает имя Column. Если его не переименовать, следующий созданный столбец получит имя «Column 2», «Column 3» и т. д. Нам нужно, чтобы столбцы можно было проще идентифицировать, поэтому дадим нашему столбцу другое имя.

2. Так как имя Column уже выделено в строке формул, просто введите ProductFullCategory.

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

3. После знака равенства введите R. Появится раскрывающийся список предложений со всеми функциями DAX, начинающимися с буквы R. Чем больше букв мы введем, тем короче будет список предложений. Рядом с функцией отображается описание этой функции. Прокрутив список предложений вниз, выберите функцию RELATED и нажмите клавишу ВВОД.

Появляется открывающая скобка вместе со списком предложений всех доступных столбцов, которые можно передать в функцию RELATED (СВЯЗАНО). Отображается также описание и сведения об ожидаемых параметрах.

Выражение всегда появляется между открывающей и закрывающей скобкой. В этом случае наше выражение будет содержать один аргумент, передаваемый в функцию RELATED (СВЯЗАНО) — связанный столбец для возврата значения. Список столбцов автоматически сужается для отображения только связанных столбцов. В этом случае нам нужен столбец ProductCategory в таблице ProductCategory.

Выберите ProductCategory[ProductCategory], а затем введите закрывающую скобку.

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

4. Мы хотим добавить символ тире для разделения значений, поэтому после закрывающей круглой скобки первого выражения введите пробел, амперсанд (&), кавычку, пробел, тире (—), еще один пробел, закрывающую кавычку и еще один амперсанд. Теперь ваша формула должна выглядеть следующим образом:

ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

Совет. Щелкните шеврон вниз справа от строки формулы, чтобы развернуть редактор формул. Нажмите клавиши Alt + ВВОД для перемещения на строку вниз или клавишу табуляции для пролистывания.

5. Наконец, введите другую открывающую скобку, а затем выберите столбец [ProductSubcategory], чтобы завершить формулу. Теперь ваша формула должна выглядеть следующим образом:

Обратите внимание, что мы не используем другую функцию RELATED (СВЯЗАНО) во втором выражении, вызывающем столбец ProductSubcategory. Это объясняется тем, что этот столбец уже находится в той же таблице, в которой мы создаем новый столбец. Мы можем ввести имя столбца [ProductCategory] как с именем таблицы (полное имя), так и без него (неполное имя).

6. Завершите ввод формулы, нажав клавишу ВВОД или щелкнув флажок в строке формулы. Формула проверяется и добавляется в список полей в таблице ProductSubcategory .

Обратите внимание, что вычисляемые столбцы в списке полей имеют специальный значок. Это показывает, что они содержат формулу. Эти значки отображаются только в Power BI Desktop. В службе PowerBI.com (ваш сайт Power BI) изменить формулу нельзя, поэтому поле вычисляемого столбца значком не помечается.

Давайте добавим наш новый столбец в отчет

Теперь можно добавить наш новый столбец ProductFullCategory на холст отчета. Давайте посмотрим на объемы продаж (SalesAmount) по полным категориям продуктов (ProductFullCategory).

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

Давайте создадим другой столбец

Теперь, когда вы знаете, как создавать вычисляемые столбцы, давайте создадим еще один.

Модель "Продажи Contoso" для Power BI Desktop содержит данные о продажах для действующих и недействующих складов. Мы хотим сделать так, чтобы было понятно, какие данные отображаются для недействующих складов. Фактически нам нужно поле с именем Active StoreName. Для этого мы создадим другой столбец. В этом случае мы хотим, чтобы в новом столбце Active StoreName для недействующего склада в качестве имени отображалось значение "Недействующий", но чтобы для действующего склада отображалось реальное имя.

К счастью, в нашей таблице Stores (Склады) имеется столбец с именем Status (Состояние), в котором для действующих складов содержится значение On, а для недействующих — Off. Можно проверить значения для каждой строки в столбце Status (Состояние), чтобы создать новые значения в нашем новом столбце.

Создание столбца Active StoreName

1. Создайте новый вычисляемый столбец с именем Active StoreName в таблице Stores (Склады).

Для этого столбца формула DAX будет проверять состояние каждого склада. Если состояние склада имеет значение «On», формула будет возвращать имя склада. Если это значение «Off», формула будет возвращать значение «Недействующий». Чтобы сделать это, мы будем использовать логическую функцию IF для проверки состояния склада и возврата конкретного значения в зависимости от того, равен ли результат true или false.

2. Начните вводить IF. Список предложений покажет, что можно добавить. Выберите ЕСЛИ.

Первый аргумент для функции ЕСЛИ является логическим тестом. Мы хотим проверить, имеет ли склад состояние "On".

3. Введите открывающую квадратную скобку [ , которая позволяет выбрать столбцы из таблицы Stores (Склады). Выберите [Status].

4. Сразу же после [Status] введите ="On", затем введите запятую (,) для ввода второго аргумента. Подсказка указывает, что необходимо добавить значение для результата true.

5. Если склад имеет состояние «On», нам нужно показать название склада. Введите открывающую квадратную скобку [ и выберите столбец [StoreName] , а затем введите еще одну запятую, чтобы можно было указать третий аргумент.

6. Необходимо добавить значение для результата false; в данном случае мы хотим, чтобы значение было "Недействующий".

7. Завершите ввод формулы, нажав клавишу ВВОД или щелкнув флажок в строке формулы. Формула проверяется и добавляется в список полей в таблице Stores (Склады).

Подобно любому другому полю мы используем наш новый столбец Active StoreName в визуализации. На этой диаграмме склады с состоянием On отображаются отдельно по имени, а склады с состоянием "Off" группируются вместе и отображаются как недействующие.

Что вы узнали

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

Дополнительные ресурсы

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

Рекомендуется добавить в избранное справочник по языку выражений анализа данных (DAX). В нем можно найти подробные сведения о синтаксисе DAX, операторах и более чем о 200 функциях DAX.