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

Иногда в данных, которые вы анализируете, просто отсутствует определенное поле, необходимое для получения нужных результатов.Sometimes the data you’re analyzing just 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. Эти значения могут быть практически любыми; например, это может быть совместное размещение текстовых значений из несколько разных столбцов в любом месте модели или вычисление числового значения из других значений.Those values can be just about anything, whether it be putting together text values from a couple of different columns elsewhere in the model, or calculating a numeric value from other values. Например, предположим, что в данных имеются столбцы «Город» и «Штат» (как поля в списке полей), но требуется одно поле «Расположение», в котором содержатся оба значения как одно, например, «Майами, Флорида».For example, let’s say your data has a City and State columns (as fields in the Fields list), but you want a single Location field that has both as a single value, like Miami, FL. Это именно то, для чего предназначены вычисляемые столбцы.This is precisely what calculated columns are for.

Вычисляемые столбцы похожи на меры в том, что они строятся на формуле DAX, но отличаются в том, как они используются.Calculated columns are similar to measures in that both are based on a DAX formula, but they differ in how they are used. Меры наиболее часто используются в области значений визуализации для вычисления результатов на основе других полей в строке таблицы либо в областях оси, условных обозначений или группы визуализации.Measures are most often used in the Values area of a visualization, to calculate results based on other fields you have on a row in a table, or in an Axis, Legend, or Group area of a visualization. А вычисляемые столбцы используются, когда требуется результат этого столбца в строке таблицы либо в области оси, условных обозначений или группы.Calculated columns on the other hand are used when you want the column’s results on that row in the table, or in the Axis, Legend, or Group area.

Этот учебник поможет вам понять вычисляемые столбцы и создать несколько собственных вычисляемых столбцов в Power BI Desktop.This tutorial will guide you through understanding and creating some of your own calculated columns in Power BI Desktop. Он предназначен для пользователей Power BI, уже знакомых с использованием Power BI Desktop для создания более сложных моделей.It’s intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Вы должны уметь использовать запрос для импорта данных, работать с несколькими связанными таблицами и добавлять поля на холст отчета.You should already be familiar with using Query to import data, working with multiple related tables, and adding 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 Sales for Power BI Desktop.To complete the steps in this tutorial, you’ll need to download the Contoso Sales Sample for Power BI Desktop file. Это тот же пример файла, который используется в учебнике Создание собственных мер в Power BI Desktop.This is the same sample file used for the Create your own measures in Power BI Desktop tutorial. Он уже содержит данные по продаже товаров вымышленной компании Contoso, Inc. Так как данные в этом файле были импортированы из базы данных, вы не сможете подключаться к источнику данных или просматривать его в редакторе запросов.It already includes sales data from the fictitious company, Contoso, Inc. Because data in the file was imported from a database, you won’t be able to connect to the datasource or view it in Query Editor. Загрузив этот файл на компьютер, откройте его в Power BI Desktop.When you have the file on your own computer, go ahead and open it in Power BI Desktop.

Давайте создадим вычисляемый столбецLet’s create a calculated column

Предположим, мы хотим отображать категории продуктов вместе с подкатегориями продукта в одном значении в строке, например "Сотовые телефоны — принадлежности", "Сотовые телефоны — смартфоны и КПК" и т. д.Let’s say we want to display product categories together with product subcategories in a single value on rows, like Cell phones – Accessories, Cell phones – Smart phones & PDAs, and so on. Если мы посмотрим на таблицы продуктов в списке полей в представлении отчетов или представлении данных (в данном случае используется представление отчетов), то увидим, что поля, содержащего необходимые нам данные, нет.In Report View or Data View (we're using Report View here), If we look at our product tables in the Fields list, we see there’s no field that gives is what we want. Однако у нас есть поля ProductCategory и ProductSubcategory, каждое в своей таблице.We do, however, have a ProductCategory field and a ProductSubcategory field, each in their own tables.

Мы создадим новый вычисляемый столбец для объединения значений из этих двух столбцов в новые значения для нашего нового столбца.We’ll create a new calculated column to combine values from these two column into new values for our new column. Что интересно, нам нужно объединить данные из двух различных таблиц в одном столбце.Interestingly enough, we need to combine data from two different tables into a single column. Так как мы собираемся создавать новый столбец с помощью DAX, можно использовать все возможности модели, которая у нас уже есть, включая уже существующие связи между различными таблицами.Because we’re going to use DAX to create our new column, we can leverage the full power of the model we already have, including the relationships between different tables that already exist.

Создание столбца ProductFullCategoryTo create a ProductFullCategory column

  1. Щелкните правой кнопкой мыши или щелкните стрелку вниз в таблице ProductSubcategory в списке полей, а затем выберите пункт Создать столбец.Right click, or click the down arrow on the ProductSubcategory table in the Fields list, and then click New Column. В результате наш новый столбец будет добавлен в таблицу ProductSubcategory.This will make sure our new column is added to the ProductSubcategory table.

    Строка формулы появляется в верхней части холста отчета или сетки данных.The formula bar appears along the top of the Report canvas or Data grid. Здесь мы можем переименовать столбец и ввести формулу DAX.This is where we can rename our column and enter a DAX formula.

    По умолчанию новый вычисляемый столбец получает имя Column.By default a new calculated column is simply named Column. Если его не переименовать, следующий созданный столбец получит имя «Column 2», «Column 3» и т. д.If we don’t rename it, when we create another, it will be named Column 2, Column 3, and so on. Нам нужно, чтобы столбцы можно было проще идентифицировать, поэтому дадим нашему столбцу другое имя.We want our columns to be more identifiable, so we’ll give our new column a new name.

  2. Так как имя Column уже выделено в строке формул, просто введите ProductFullCategory.Since the Column name is already highlighted in the formula bar, just type ProductFullCategory.

    Теперь мы можем начать вводить нашу формулу.Now we can begin entering our formula. Мы хотим, чтобы значения в новом столбце начинались с имени ProductCategory из таблицы ProductCategory.We want the values in our new column to start with the ProductCategory name from the ProductCategory table. Так как этот столбец находится в другой, но связанной таблице, мы будем использовать для его получения функцию RELATED.Because this column is in a different, but related table, we’re going to use the RELATED function to help us get it.

  3. После знака равенства введите R. Появится раскрывающийся список предложений со всеми функциями DAX, начинающимися с буквы R. Чем больше букв мы введем, тем короче будет список предложений.After the equals sign, type R. You’ll see a dropdown suggestion list appear with all of the DAX functions beginning with the letter R. The more we type, the more the suggestion list is scaled closer to the function we need. Рядом с функцией отображается описание этой функции.Next to the function you’ll see a description of the function. Прокрутив список предложений вниз, выберите функцию RELATED и нажмите клавишу ВВОД.Select RELATED by scrolling down, and then pressing Enter.

    Появляется открывающая скобка вместе со списком предложений всех доступных столбцов, которые можно передать в функцию RELATED (СВЯЗАНО).An opening parenthesis appears along with another suggestion list of all of the available columns we can pass to the RELATED function. Отображается также описание и сведения об ожидаемых параметрах.A description and details on what parameters are expected is also shown.

    Выражение всегда появляется между открывающей и закрывающей скобкой.An expression always appears between an opening and closing parenthesis. В этом случае наше выражение будет содержать один аргумент, передаваемый в функцию RELATED (СВЯЗАНО) — связанный столбец для возврата значения.In this case, our expression is going to contain a single argument passed to the RELATED function; a related column to return values from. Список столбцов автоматически сужается для отображения только связанных столбцов.The list of columns is automatically narrowed down to show only the columns that are related. В этом случае нам нужен столбец ProductCategory в таблице ProductCategory.In this case, we want the ProductCategory column in the ProductCategory table.

    Выберите ProductCategory[ProductCategory], а затем введите закрывающую скобку.Select ProductCategory[ProductCategory], and then type a closing parenthesis.

    Совет

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

  4. Мы хотим добавить символ тире для разделения значений, поэтому после закрывающей круглой скобки первого выражения введите пробел, амперсанд (&), кавычку, пробел, тире (—), еще один пробел, закрывающую кавычку и еще один амперсанд.We want to add a dash symbol to separate each value, so after the closing parenthesis of the first expression, type a space, ampersand (&), quote, space, dash (-), another space, a closing quote, and then another ampersand. Теперь ваша формула должна выглядеть следующим образом:Your formula should now look like this:

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

    Совет

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

  5. Наконец, введите другую открывающую скобку, а затем выберите столбец [ProductSubcategory], чтобы завершить формулу.Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. Теперь ваша формула должна выглядеть следующим образом:Your formula should look like this:

    Обратите внимание, что мы не используем другую функцию RELATED (СВЯЗАНО) во втором выражении, вызывающем столбец ProductSubcategory.You’ll notice we didn’t use another RELATED function in the second expression calling the ProductSubcategory column. Это объясняется тем, что этот столбец уже находится в той же таблице, в которой мы создаем новый столбец.This is because this column is already in the same table we’re creating our new column in. Мы можем ввести имя столбца [ProductCategory] как с именем таблицы (полное имя), так и без него (неполное имя).We can enter [ProductCategory] with the table name (fully qualified) or without (non-qualified).

  6. Завершите ввод формулы, нажав клавишу ВВОД или щелкнув флажок в строке формулы.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. Формула проверяется и добавляется в список полей в таблице ProductSubcategory .The formula is validated and added to the field list in the ProductSubcategory table.

    Обратите внимание, что вычисляемые столбцы в списке полей имеют специальный значок.You’ll notice calculated columns get a special icon in the field list. Это показывает, что они содержат формулу.This shows they contain a formula. Эти значки отображаются только в Power BI Desktop.They’ll only appear like this in Power BI Desktop. В службе PowerBI.com (ваш сайт Power BI) изменить формулу нельзя, поэтому поле вычисляемого столбца значком не помечается.In the PowerBI service (your Power BI site), there’s no way to change a formula, so a calculated column field doesn’t have an icon.

Давайте добавим наш новый столбец в отчетLet’s add our new column to a report

Теперь можно добавить наш новый столбец ProductFullCategory на холст отчета.Now we can add our new ProductFullCategory column to the report canvas. Давайте посмотрим на объемы продаж (SalesAmount) по полным категориям продуктов (ProductFullCategory).Let’s look at SalesAmount by ProductFullCategory.

Перетащите столбец ProductFullCategory из таблицы ProductSubcategory на холст отчета, а затем перетащите поле SalesAmount из таблицы Sales (Продажи) в диаграмму.Drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas, and then drag the SalesAmount field from the Sales table into the chart.

Давайте создадим другой столбецLet’s create another

Теперь, когда вы знаете, как создавать вычисляемые столбцы, давайте создадим еще один.Now that you know how to create a calculated column, let’s create another.

Модель "Продажи Contoso" для Power BI Desktop содержит данные о продажах для действующих и недействующих складов.The Contoso Sales Sample for Power BI Desktop model contains sales data for both active and inactive stores. Мы хотим сделать так, чтобы было понятно, какие данные отображаются для недействующих складов.We want to make it really clear that data shown for inactive stores is identified as such. Фактически нам нужно поле с именем Active StoreName.In-effect, we want a field named Active StoreName. Для этого мы создадим другой столбец.To do this, we’ll create another column. В этом случае мы хотим, чтобы в новом столбце Active StoreName для недействующего склада в качестве имени отображалось значение "Недействующий", но чтобы для действующего склада отображалось реальное имя.In this case, when a store is inactive, we want our new Active StoreName column (as a field) to show the store’s name as “Inactive”, but show the store’s real name when it’s an active store.

К счастью, в нашей таблице Stores (Склады) имеется столбец с именем Status (Состояние), в котором для действующих складов содержится значение On, а для недействующих — Off.Fortunately, our Stores table has a column named Status, with a value of On for active stores, and Off for inactive stores. Можно проверить значения для каждой строки в столбце Status (Состояние), чтобы создать новые значения в нашем новом столбце.We can test values for each row in the Status column to create new values in our new column.

Создание столбца Active StoreNameTo create an Active StoreName column

  1. Создайте новый вычисляемый столбец с именем Active StoreName в таблице Stores (Склады).Create a new calculated column named Active StoreName in the Stores table.

    Для этого столбца формула DAX будет проверять состояние каждого склада.For this column, our DAX formula is going to check each stores status. Если состояние склада имеет значение «On», формула будет возвращать имя склада.If a stores status is On, our formula will return the stores name. Если это значение «Off», формула будет возвращать значение «Недействующий».If it’s Off, it will have the name, “Inactive”. Чтобы сделать это, мы будем использовать логическую функцию IF для проверки состояния склада и возврата конкретного значения в зависимости от того, равен ли результат true или false.To do this, we’ll use the logical IF function to test the stores status and return a particular value if the result is true or false.

  2. Начните вводить IF.Begin typing IF. Список предложений покажет, что можно добавить.The suggestion list will show what we can add. Выберите ЕСЛИ.Select IF.

    Первый аргумент для функции ЕСЛИ является логическим тестом.The first argument for IF is a logical test. Мы хотим проверить, имеет ли склад состояние "On".We want to test whether or not a store has a status of “On”.

  3. Введите открывающую квадратную скобку [ , которая позволяет выбрать столбцы из таблицы Stores (Склады).Type an opening bracket [ , which allows us to select columns from the Stores table. Выберите [Status].Select [Status].

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

  5. Если склад имеет состояние «On», нам нужно показать название склада.If the store is On, we want to show the store’s name. Введите открывающую квадратную скобку [ и выберите столбец [StoreName] , а затем введите еще одну запятую, чтобы можно было указать третий аргумент.Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. Необходимо добавить значение для результата false; в данном случае мы хотим, чтобы значение было "Недействующий".We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Завершите ввод формулы, нажав клавишу ВВОД или щелкнув флажок в строке формулы.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. Формула проверяется и добавляется в список полей в таблице Stores (Склады).The formula is validated and added to the field list in the Stores table.

    Подобно любому другому полю мы используем наш новый столбец Active StoreName в визуализации.Just like any other field, we can use our new Active StoreName column in visualizations. На этой диаграмме склады с состоянием On отображаются отдельно по имени, а склады с состоянием "Off" группируются вместе и отображаются как недействующие.In this chart, stores with a status of On are shown individually by name, but stores with a status of Off are grouped together and shown as Inactive.

Что вы узналиWhat we’ve learned

Вычисляемые столбцы могут обогатить ваши данные, предоставляя простые аналитические данные.Calculated columns can enrich our data, providing easier insights. Вы узнали, как создать вычисляемые столбцы с помощью строки формулы, как использовать список предложений и как лучше всего называть новые столбцы.We've learned how to create calculated columns by using the formula bar, how to use the suggestions list, and how to best name our new columns.

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

Если вы хотите более подробно изучить формулы DAX и создавать вычисляемые столбцы с помощью более сложных формул DAX, см. статью Основные сведения о DAX в Power BI Desktop.If you want to take a deeper dive into DAX formulas, and create calculated columns with more advanced DAX 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.