Учебник. Создание вычисляемых столбцов в Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

Иногда в данных, которые вы анализируете, отсутствует определенное поле, необходимое для получения нужных результатов.Sometimes the data you’re analyzing doesn’t contain a particular field you need to get the results you’re after. Тогда появляются вычисляемые столбцы.This is where calculated columns come in. Вычисляемые столбцы определяют значения с помощью формул выражения анализа данных (DAX). Это может быть совместное размещение текстовых значений из нескольких разных столбцов в любом месте модели или вычисление числового значения из других значений.Calculated columns use Data Analysis Expressions (DAX) formulas to define a column’s values, anything from putting together text values from a couple of different columns to calculating a numeric value from other values. Например, предположим, что в данных имеются поля Город и Штат, но требуется одно поле Расположение, в котором содержатся оба значения, например "Майами, Флорида".For example, let’s say your data has City and State fields, but you want a single Location field that has both, like "Miami, FL". Это именно то, для чего предназначены вычисляемые столбцы.This is precisely what calculated columns are for.

Вычисляемые столбцы похожи на меры в том, что они строятся на формуле DAX, но их использование отличается.Calculated columns are similar to measures in that both are based on DAX formulas, but they differ in how they are used. Меры часто используются в области Значения визуализации для вычисления результатов на основе других полей.You often use measures in a visualization's Values area, to calculate results based on other fields. Вычисляемые столбцы используются в качестве новых полей в строках либо в области оси, условных обозначений или группы визуализаций.You use calculated columns as new Fields in the rows, axes, legends, and group areas of visualizations.

Это руководство поможет понять вычисляемые столбцы, создать несколько собственных и использовать их в визуализациях отчетов в Power BI Desktop.This tutorial will guide you through understanding and creating some calculated columns and using them in report visualizations in Power BI Desktop.

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

  • Это руководство предназначено для пользователей Power BI, которые знают, как использовать Power BI Desktop для создания более сложных моделей.This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Вы должны уметь импортировать данные с помощью функции Получить данные и редактора Power Query, работать с несколькими связанными таблицами и добавлять поля на холст отчета.You should already know how to use Get Data and the Power Query Editor to import data, work with multiple related tables, and add fields to the Report canvas. Если вы еще не знакомы с Power BI Desktop, прочтите статью Начало работы с Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

  • В этом руководстве используется файл Продажи Contoso для Power BI Desktop. Этот же пример используется в руководстве по созданию собственных мер в Power BI Desktop.The tutorial uses the Contoso Sales Sample for Power BI Desktop, the same sample used for the Create your own measures in Power BI Desktop tutorial. Эти данные по продаже товаров вымышленной компании Contoso, Inc. были импортированы из базы данных, поэтому вы не сможете подключаться к источнику данных или просматривать его в редакторе Power Query.This sales data from the fictitious company Contoso, Inc. was imported from a database, so you won’t be able to connect to the data source or view it in the Power Query Editor. Загрузите, а затем извлеките файл на своем компьютере и откройте его в Power BI Desktop.Download and extract the file on your own computer, and then open it in Power BI Desktop.

Предположим, что в отчете о продажах необходимо отобразить категории и подкатегории продуктов одним значением, например "Сотовые телефоны — принадлежности", "Сотовые телефоны — смартфоны и КПК" и т. д.In your Sales Report, you want to display product categories and subcategories as single values, like "Cell phones – Accessories", "Cell phones – Smartphones & PDAs", and so on. В списке Поля нет поля, которое содержит необходимые данные, но есть поля ProductCategory и ProductSubcategory (каждое в своей таблице).There's no field in the Fields list that gives you that data, but there is a ProductCategory field and a ProductSubcategory field, each in its own table. Вы можете создать вычисляемый столбец, который объединяет значения из этих двух столбцов.You can create a calculated column that combines values from these two columns. Формулы DAX могут использовать все возможности существующей модели, в том числе уже имеющиеся связи между различными таблицами.DAX formulas can leverage the full power of the model you already have, including relationships between different tables that already exist.

Столбцы в списке "Поля"

  1. Выберите Дополнительные параметры (...) или щелкните правой кнопкой мыши таблицу ProductSubcategory в списке "Поля", а затем выберите Создать столбец.Select the More options ellipsis (...), or right-click, on the ProductSubcategory table in the Fields list, and then select New Column. Это создаст столбец в таблице ProductSubcategory.This creates your new column in the ProductSubcategory table.

    Создать столбец

    В верхней части холста отчета появится строка формул, в которой можно присвоить столбцу имя и ввести формулу DAX.The formula bar appears along the top of the Report canvas, ready for you to name your column and enter a DAX formula.

    Строка формул

  2. По умолчанию новый вычисляемый столбец получает имя Column.By default, a new calculated column is simply named Column. Если его не переименовать, следующие созданные столбцы получат имя Column 2, Column 3 и т. д.If you don’t rename it, additional new columns will named Column 2, Column 3, and so on. Чтобы проще идентифицировать столбец, переименуйте его. Так как имя Column уже выделено в строке формул, введите ProductFullCategory, а затем — знак равенства (=).You want your column to be more identifiable, so since the Column name is already highlighted in the formula bar, rename it by typing ProductFullCategory, and then type an equals (=) sign.

  3. Предположим, необходимо, чтобы значения в новом столбце начинались с имени ProductCategory.You want the values in your new column to start with the ProductCategory name. Так как этот столбец находится в другой, но связанной таблице, чтобы получить его, можно использовать функцию RELATED.Because this column is in a different but related table, you can use the RELATED function to help you get it.

    После знака равенства введите R.After the equals sign, type r. Появится раскрывающийся список предложений со всеми функциями DAX, начинающимися с буквы R. При выборе каждой функции отображается ее описание.A dropdown suggestion list shows all of the DAX functions beginning with the letter R. Selecting each function shows a description of its effect. По мере ввода список предложений становится короче.As you type, the suggestion list scales closer to the function you need. Выберите функцию RELATED, а затем нажмите клавишу ВВОД.Select RELATED, and then press Enter.

    Выбор функции RELATED

    Появится открывающая скобка, а также список предложений всех доступных столбцов, которые можно передать в функцию RELATED, с описаниями и сведениями об ожидаемых параметрах.An opening parenthesis appears, along with another suggestion list of the related columns you can pass to the RELATED function, with descriptions and details on expected parameters.

    Выбор столбца ProductCategory

  4. Предположим, нужен столбец ProductCategory из таблицы ProductCategory.You want the ProductCategory column from the ProductCategory table. Выберите ProductCategory[ProductCategory], нажмите клавишу ВВОД, а затем введите закрывающую скобку.Select ProductCategory[ProductCategory], press Enter, and then type a closing parenthesis.

    Совет

    Синтаксические ошибки чаще всего вызваны отсутствующей или неправильно расположенной закрывающей скобкой. Иногда Power BI Desktop добавляет скобки автоматически.Syntax errors are most often caused by a missing or misplaced closing parenthesis, although sometimes Power BI Desktop will add it for you.

  5. Необходимо добавить тире и пробелы, чтобы разделять значения ProductCategories и ProductSubcategories, поэтому после закрывающей круглой скобки первого выражения введите пробел, амперсанд (&), кавычку ("), пробел, тире (-), еще один пробел, еще одну кавычку и еще один амперсанд.You want dashes and spaces to separate the ProductCategories and ProductSubcategories in the new values, so after the closing parenthesis of the first expression, type a space, ampersand (&), double-quote ("), space, dash (-), another space, another double-quote, and another ampersand. Теперь ваша формула должна выглядеть следующим образом:Your formula should now look like this:

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

    Совет

    Если требуется больше места, щелкните шеврон внизу справа от строки формулы, чтобы развернуть редактор формул.If you need more room, select the down chevron on the right side of the formula bar to expand the formula editor. В редакторе нажмите клавиши Alt + ВВОД, чтобы переместиться на строку вниз, или клавишу табуляции, чтобы пролистывать.In the editor, press Alt + Enter to move down a line, and Tab to move things over.

  6. Введите открывающую скобку ([), а затем выберите столбец [ProductSubcategory], чтобы завершить формулу.Enter an opening bracket ([), and then select the [ProductSubcategory] column to finish the formula.

    Выбор ProductSubcategory

    Чтобы вызвать таблицу ProductSubcategory, во втором выражении не нужно использовать другую функцию RELATED, так как вы создаете вычисляемый столбец в этой таблице.You didn’t need to use another RELATED function to call the ProductSubcategory table in the second expression, because you are creating the calculated column in this table. Вы можете ввести имя столбца [ProductCategory] как с именем таблицы (полное имя), так и без него (неполное имя).You can enter [ProductSubcategory] with the table name prefix (fully-qualified) or without (non-qualified).

  7. Завершите ввод формулы, нажав клавишу ВВОД или выбрав флажок в строке формулы.Complete the formula by pressing Enter or selecting the checkmark in the formula bar. Формула проверяется, а столбец ProductFullCategory отображается в таблице ProductSubcategory в списке "Поля".The formula validates, and the ProductFullCategory column name appears in the ProductSubcategory table in the Fields list.

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

    Примечание

    В Power BI Desktop вычисляемые столбцы в списке "Поля" имеют специальный значок. Это показывает, что они содержат формулу.In Power BI Desktop, calculated columns get a special icon in the field list, showing that they contain formulas. В службе Power BI (сайт Power BI) изменить формулу нельзя, поэтому вычисляемые столбцы значком не помечаются.In the Power BI service (your Power BI site), there’s no way to change formulas, so calculated columns don't have icons.

Использование нового столбца в отчетеUse your new column in a report

Теперь вы можете использовать новый столбец ProductFullCategory, чтобы посмотреть на объемы продаж (SalesAmount) по полным категориям продуктов (ProductFullCategory).Now you can use your new ProductFullCategory column to look at SalesAmount by ProductFullCategory.

  1. Выберите или перетащите столбец ProductFullCategory из таблицы ProductSubcategory на холст отчета, чтобы создать таблицу с именами ProductFullCategory.Select or drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas to create a table showing all ProductFullCategory names.

    Таблица ProductFullCategory

  2. Выберите или перетащите поле SalesAmount из таблицы Sales в таблицу, чтобы отобразить объемы продаж (SalesAmount) по полным категориям продуктов (ProductFullCategory).Select or drag the SalesAmount field from the Sales table into the table to show the Sales Amount for each Product Full Category.

    Таблица объемов продаж (SalesAmount) по полным категориям продуктов (ProductFullCategory)

Создание вычисляемых столбцов, использующих функцию IFCreate a calculated column that uses an IF function

Модель "Продажи Contoso" содержит данные о продажах с действующих и недействующих складов.The Contoso Sales Sample contains sales data for both active and inactive stores. Необходимо отделить в отчете продажи с действующих от продаж с недействующих складов. Фактически нужно создать поле с именем Active StoreName.You want to ensure that Active store sales are clearly separated from Inactive store sales in your report by creating an Active StoreName field. В новом вычисляемом столбце Active StoreName каждый активный склад будет отображаться вместе с полным именем, а в качестве имени недействующего склада будет отображаться значение "Недействующий".In the new Active StoreName calculated column, each Active store will appear with the store's full name, while inactive stores will be grouped together under "Inactive".

К счастью, в таблице Stores есть столбец с именем Status, в котором для действующих складов содержится значение On, а для недействующих — Off, с помощью которых можно создать значения для нового столбца Active StoreName.Fortunately, the Stores table has a column named Status, with values of "On" for active stores and "Off" for inactive stores, which we can use to create values for our new Active StoreName column. Формула DAX с помощью логической функции IF будет проверять состояние каждого склада и возвращать конкретное значение в зависимости от результата.Your DAX formula will use the logical IF function to test each store's Status and return a particular value depending on the result. Если состояние склада имеет значение On, формула вернет его имя.If a store's Status is "On", the formula will return the store's name. Если это значение Off, формула вернет значение "Недействующий".If it’s "Off", the formula will assign an Active StoreName of "Inactive".

  1. Создайте вычисляемый столбец в таблице Stores с именем Active StoreName в строке формул.Create a new calculated column in the Stores table and name it Active StoreName in the formula bar.

  2. После знака = начните вводить IF.After the = sign, begin typing IF. В списке предложений отобразятся варианты, которые можно добавить.The suggestion list will show what you can add. Выберите ЕСЛИ.Select IF.

    Выбор IF

  3. Первый аргумент для функции IF является логическим тестом. Необходимо проверить, имеет ли склад состояние On.The first argument for IF is a logical test of whether a store's Status is "On". Введите открывающую квадратную скобку [, которая позволяет выбрать столбцы из таблицы Stores, и выберите [Status].Type an opening bracket [ , which lists columns from the Stores table, and select [Status].

    Выбор Status

  4. Сразу после [Status] введите ="On", а затем поставьте запятую (,), чтобы завершить аргумент.Right after [Status], type ="On", and then type a comma (,) to end the argument. Подсказка указывает, что необходимо добавить значение для результата true.The tooltip suggests that you now need to add a value to return when the result is TRUE.

    Добавление значения true

  5. Если склад имеет состояние On, нужно показать его название.If the store's status is "On", you want to show the store’s name. Введите открывающую квадратную скобку ([) и выберите столбец [StoreName], а затем введите еще одну запятую.Type an opening bracket ([) and select the [StoreName] column, and then type another comma. Теперь подсказка указывает, что необходимо добавить значение для результата false.The tooltip now indicates that you need to add a value to return when the result is FALSE.

    Добавление значения false

  6. Если требуется, чтобы значение было Недействующий, введите Недействующий, а затем завершите формулу, нажав клавишу ВВОД или выбрав флажок в строке формул.You want the value to be Inactive, so type "Inactive", and then complete the formula by pressing Enter or selecting the checkmark in the formula bar. Формула проверяется и добавляется в список "Поля" в таблице Stores.The formula validates, and the new column's name appears in the Stores table in the Fields list.

    Столбец Active StoreName

  7. Подобно любому другому полю мы используем наш новый столбец Active StoreName в визуализации.You can use your new Active StoreName column in visualizations just like any other field. Чтобы отобразить объемы продаж по имени действующих складов, выберите поле Active StoreName или перетащите его на холст, а затем выберите поле SalesAmount или перетащите его в таблицу.To show SalesAmounts by Active StoreName, select the Active StoreName field or drag it onto the canvas, and then select the SalesAmount field or drag it into the table. В этой таблице действующие склады отображаются отдельно по имени, а недействующие группируются в конце со значением Недействующие.In this table, active stores appear individually by name, but inactive stores are grouped together at the end as Inactive.

    Таблица с объемом продаж по имени действующих складов

Что вы узналиWhat you've learned

Вычисляемые столбцы могут обогатить ваши данные и предоставить простые аналитические данные.Calculated columns can enrich your data and provide easier insights. Вы научились создавать вычисляемые столбцы в списке полей и на панели формул, использовать списки предложений и всплывающие подсказки для помощи в построении формул, вызывать такие функции DAX, как RELATED и IF, с соответствующими аргументами и использовать вычисляемые столбцы при визуализации отчетов.You've learned how to create calculated columns in the field list and formula bar, use suggestion lists and tooltips to help construct your formulas, call DAX functions like RELATED and IF with the appropriate arguments, and use your calculated columns in report visualizations.

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

Если вы хотите более подробно изучить формулы DAX и создавать вычисляемые столбцы с помощью более сложных формул, см. статью Основные сведения о DAX в Power BI Desktop.If you want to take a deeper dive into DAX formulas and create calculated columns with more advanced formulas, see DAX Basics in Power BI Desktop. В этой статье описываются основные понятия языка DAX, такие как синтаксис, функции, и дается более глубокое объяснение контекста.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Рекомендуется добавить в избранное справочник по языку выражений анализа данных (DAX).Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. В нем можно найти подробные сведения о синтаксисе DAX, операторах и более чем о 200 функциях DAX.This is where you'll find detailed info on DAX syntax, operators, and the over 200 DAX functions.