Samouczek: tworzenie kolumn obliczeniowych programie Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

Czasami analizowane dane nie zawierają określonego pola, które jest potrzebne do uzyskania szukanych wyników.Sometimes the data you’re analyzing doesn’t contain a particular field you need to get the results you’re after. W tym momencie wkraczają kolumny obliczeniowe.This is where calculated columns come in. Kolumny obliczeniowe używają formuł języka DAX (Data Analysis Expressions) do definiowania wartości kolumny — od zestawiania różnych wartości tekstowych z kilku różnych kolumn do obliczania wartości numerycznej na podstawie innych wartości.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. Załóżmy na przykład, że w Twoich danych znajdują się kolumny Miasto i Województwo, ale chcesz uzyskać jedno pole Lokalizacja zawierające obie te wartości razem, np. „Warszawa, Mazowieckie”.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". Dokładnie do tego służą kolumny obliczeniowe.This is precisely what calculated columns are for.

Kolumny obliczeniowe przypominają miary, ponieważ także są oparte na formułach języka DAX, ale różnią się sposobem użycia.Calculated columns are similar to measures in that both are based on DAX formulas, but they differ in how they are used. Miary są często używane w obszarze Wartości wizualizacji do obliczania wyników na podstawie innych pól.You often use measures in a visualization's Values area, to calculate results based on other fields. Kolumny obliczeniowe są używane jako nowe pola w wierszach, na osiach, w legendzie i obszarach grupowania wizualizacji.You use calculated columns as new Fields in the rows, axes, legends, and group areas of visualizations.

Ten samouczek przeprowadzi Cię przez informacje umożliwiające zrozumienie i utworzenie kolumn obliczeniowych wizualizacjach raportu w programie 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.

Wymagania wstępnePrerequisites

  • Ten samouczek jest przeznaczony dla użytkowników usługi Power BI, którzy są już zaznajomieni z używaniem programu Power BI Desktop na potrzeby tworzenia bardziej zaawansowanych modeli.This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Użytkownik powinien już wiedzieć, jak korzystać z funkcji Pobierz dane i edytora Power Query w celu importowania danych, pracować z wieloma powiązanymi tabelami oraz dodawać pola do kanwy raportów.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. Jeśli jesteś nowym użytkownikiem programu Power BI Desktop, zapoznaj się z tematem Wprowadzenie do programu Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

  • W samouczku jest używany przykład Contoso Sales Sample for Power BI Desktop, który zastosowaliśmy również w samouczku Tworzenie własnych miar w programie 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. Te dane dotyczące sprzedaży fikcyjnej firmy Contoso, Inc. zostały zaimportowane z bazy danych, dlatego nie będzie można połączyć się ze źródłem danych ani wyświetlić źródła w Edytorze 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. Pobierz i wyodrębnij plik na swoim komputerze, a następnie otwórz go w programie Power BI Desktop.Download and extract the file on your own computer, and then open it in Power BI Desktop.

W raporcie sprzedaży chcesz wyświetlić kategorie i podkategorie produktów w postaci pojedynczej wartości w wierszach, np. „Telefony komórkowe — Akcesoria”, „Telefony komórkowe — Smartfony i urządzenia PDA” itd.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. Lista Pola nie zawiera żadnych pól udostępniających dane, ale istnieje pole ProductCategory i pole ProductSubcategory, każde we własnej tabeli.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. Można utworzyć kolumnę obliczeniową, która łączy wartości z tych dwóch kolumn.You can create a calculated column that combines values from these two columns. Formuły języka DAX mogą wykorzystać wszystkie możliwości, jakie daje już posiadany model, w tym relacje między różnymi, już istniejącymi tabelami.DAX formulas can leverage the full power of the model you already have, including relationships between different tables that already exist.

Kolumny na liście Pola

  1. Aby utworzyć nową kolumnę w tabeli ProductSubcategory, kliknij prawym przyciskiem myszy lub wybierz wielokropek ... obok pozycji ProductSubcategory w okienku Pola, a następnie wybierz pozycję Nowa kolumna z menu.To create your new column in the ProductSubcategory table, right-click or select the ellipsis ... next to ProductSubcategory in the Fields pane, and select New column from the menu.

    Nowa kolumna

    Gdy wybierzesz pozycję Nowa kolumna, wzdłuż górnej części kanwy raportów zostanie wyświetlony pasek formuły, na którym możesz nadać kolumnie nazwę i wprowadzić formułę języka DAX.When you select New column, the Formula bar appears along the top of the Report canvas, ready for you to name your column and enter a DAX formula.

    Pasek formuły

  2. Domyślnie nowa kolumna obliczeniowa nosi nazwę Kolumna.By default, a new calculated column is named Column. Jeśli nie zmienisz tej nazwy, dodatkowe nowe kolumny będą mieć nazwy Kolumna 2, Kolumna 3 itd.If you don’t rename it, additional new columns will be named Column 2, Column 3, and so on. Chcesz, aby kolumna była łatwa do zidentyfikowania, dlatego ponieważ nazwa Kolumna została już wyróżniona na pasku formuły, zmień jej nazwę, wpisując ciąg ProductFullCategory, a następnie wpisz znak równości ( = ).You want your column to be more identifiable, so while the Column name is already highlighted in the formula bar, rename it by typing ProductFullCategory, and then type an equals (=) sign.

  3. Wartości w nowej kolumnie powinny zaczynać się od nazwy w polu ProductCategory.You want the values in your new column to start with the name in the ProductCategory field. Ponieważ ta kolumna znajduje się w innej, ale powiązanej tabeli, możesz użyć funkcji RELATED, która pomoże Ci uzyskać ten efekt.Because this column is in a different but related table, you can use the RELATED function to help you get it.

    Po znaku równości wpisz r.After the equals sign, type r. Zostanie wyświetlona lista rozwijana podpowiedzi, która zawiera wszystkie funkcje języka DAX rozpoczynające się od litery R. Wybranie danej funkcji spowoduje wyświetlenie opisu efektów jej działania.A dropdown suggestion list shows all of the DAX functions beginning with the letter R. Selecting each function shows a description of its effect. Podczas wpisywania lista propozycji jest skalowana w celu przybliżenia do potrzebnej funkcji.As you type, the suggestion list scales closer to the function you need. Wybierz pozycję RELATED, a następnie naciśnij klawisz Enter.Select RELATED, and then press Enter.

    Wybieranie pozycji RELATED

    Zostanie wyświetlony nawias otwierający oraz kolejna lista proponowanych powiązanych kolumn, które można przekazać do funkcji RELATED, z opisami i szczegółami oczekiwanych parametrów.An opening parenthesis appears, along with another suggestion list of the related columns you can pass to the RELATED function, with descriptions and details of expected parameters.

    Wybieranie elementu ProductCategory

  4. Potrzebujesz kolumny ProductCategory z tabeli ProductCategory.You want the ProductCategory column from the ProductCategory table. Wybierz pozycję ProductCategory[ProductCategory] , a następnie naciśnij klawisz Enter i wpisz nawias zamykający.Select ProductCategory[ProductCategory], press Enter, and then type a closing parenthesis.

    Porada

    Błędy składni są najczęściej spowodowane brakującym lub niewłaściwie umieszczonym nawiasem zamykającym, mimo że czasami dodaje go program 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. Chcesz, aby kreski i spacje oddzielały kategorie ProductCategory i ProductSubcategory w nowych wartościach, dlatego po nawiasie zamykającym w pierwszym wyrażeniu wpisz spację, handlowe „i” ( & ), podwójny cudzysłów ( " ), spację, kreskę ( - ), kolejną spację, kolejny podwójny cudzysłów i kolejne handlowe „i”.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. Twoja formuła powinna teraz wyglądać następująco:Your formula should now look like this:

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

    Porada

    Jeśli potrzebujesz więcej miejsca, wybierz strzałkę w dół po prawej stronie paska formuły, aby rozwinąć edytor formuł.If you need more room, select the down chevron on the right side of the formula bar to expand the formula editor. Naciśnij klawisze Alt + Enter, aby przejść do kolejnego wiersza, i klawisz Tab, aby przesunąć wpisany tekst.In the editor, press Alt + Enter to move down a line, and Tab to move things over.

  6. Wprowadź nawias otwierający ( [ ), a następnie wybierz kolumnę [ProductSubcategory] , aby zakończyć formułę.Enter an opening bracket ([), and then select the [ProductSubcategory] column to finish the formula.

    Wybieranie elementu ProductSubcategory

    Do wywołania tabeli ProductSubcategory w drugim wyrażeniu nie trzeba używać innej funkcji RELATED, ponieważ tworzysz kolumnę obliczeniową w tej tabeli.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. Element [ProductSubcategory] możesz wprowadzić z prefiksem nazwy tabeli (w pełni kwalifikowana) lub bez (niekwalifikowana).You can enter [ProductSubcategory] with the table name prefix (fully-qualified) or without (non-qualified).

  7. Zakończ formułę, naciskając klawisz Enter lub wybierając znacznik wyboru na pasku formuły.Complete the formula by pressing Enter or selecting the checkmark in the formula bar. Formuła jest weryfikowana, a nazwa kolumny ProductFullCategory jest wyświetlana w tabeli ProductSubcategory w okienku Pola.The formula validates, and the ProductFullCategory column name appears in the ProductSubcategory table in the Fields pane.

    Ukończona kolumna ProductFullCategory

    Uwaga

    W programie Power BI Desktop kolumny obliczeniowe mają specjalną ikonę w okienku Pola, co oznacza, że zawierają formuły.In Power BI Desktop, calculated columns have a special icon in the Fields pane, showing that they contain formulas. W usłudze Power BI (witrynie usługi Power BI) nie ma możliwości zmiany formuł, dlatego kolumny obliczeniowe nie mają ikon.In the Power BI service (your Power BI site), there’s no way to change formulas, so calculated columns don't have icons.

Używanie nowej kolumny w raporcieUse your new column in a report

Teraz możesz użyć nowej kolumny ProductFullCategory, aby zapoznać się z kwotą SalesAmount według kategorii ProductFullCategory.Now you can use your new ProductFullCategory column to look at SalesAmount by ProductFullCategory.

  1. Wybierz lub przeciągnij kolumnę ProductFullCategory z tabeli ProductSubcategory na kanwę raportu, aby utworzyć tabelę przedstawiającą wszystkie nazwy ProductFullCategory.Select or drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas to create a table showing all of the ProductFullCategory names.

    Tabela ProductFullCategory

  2. Wybierz lub przeciągnij pole SalesAmount (Kwota sprzedaży) z tabeli Sales (Sprzedaż) do tabeli, aby wyświetlić kwotę SalesAmount dla każdego elementu ProductFullCategory.Select or drag the SalesAmount field from the Sales table into the table to show the SalesAmount for each ProductFullCategory.

    Tabela wartości SalesAmount według kolumny ProductFullCategory

Tworzenie kolumny obliczeniowej korzystającej z funkcji IFCreate a calculated column that uses an IF function

Model Contoso Sales Sample zawiera dane sprzedaży zarówno dla sklepów aktywnych i nieaktywnych.The Contoso Sales Sample contains sales data for both active and inactive stores. Upewnij się, czy sprzedaż w sklepach aktywnych jest wyraźnie oddzielona od sprzedaży w sklepach nieaktywnych, tworząc pole Active StoreName (Nazwa sklepu aktywnego).You want to ensure that active store sales are clearly separated from inactive store sales in your report by creating an Active StoreName field. W nowej kolumnie obliczeniowej Active StoreName każdy sklep aktywny będzie wyświetlany z pełną nazwą, a sprzedaż w sklepach nieaktywnych zostanie zgrupowana w jednowierszowym elemencie Inactive (Nieaktywne).In the new Active StoreName calculated column, each active store will appear with the store's full name, while the sales for inactive stores will be grouped together in one line item called Inactive.

Na szczęście tabela Stores (Sklepy) zawiera kolumnę o nazwie Status (Stan), z wartościami „On”(Wł.) dla sklepów aktywnych i „Off” (Wył.) dla sklepów nieaktywnych, której można użyć do tworzenia wartości dla naszej nowej kolumny Active StoreName (Nazwa sklepu aktywnego).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. Formuła języka DAX użyje funkcji logicznej IF, aby sprawdzić stan każdego sklepu, i zwróci określoną wartość w zależności od wyniku.Your DAX formula will use the logical IF function to test each store's Status and return a particular value depending on the result. Jeśli stan sklepu ma wartość „On” (Wł.), formuła zwróci nazwę sklepu.If a store's Status is "On", the formula will return the store's name. Jeśli wartość to „Off” (Wył.), formuła przydzieli nazwę Active StoreName o wartości „Inactive” (Nieaktywny).If it’s "Off", the formula will assign an Active StoreName of "Inactive".

  1. Na pasku formuły utwórz nową kolumnę obliczeniową w tabeli Stores (Sklepy) i nadaj jej nazwę Active StoreName (Nazwa sklepu aktywnego).Create a new calculated column in the Stores table and name it Active StoreName in the formula bar.

  2. Po znaku = rozpocznij wpisywanie ciągu IF.After the = sign, begin typing IF. Lista sugestii będzie zawierać elementy, które możesz dodać.The suggestion list will show what you can add. Wybierz pozycję IF.Select IF.

    Wybieranie pozycji IF

  3. Pierwszym argumentem funkcji IF jest dla Jeśli jest logiczny test określający, czy stan sklepu to „On” (Wł.).The first argument for IF is a logical test of whether a store's Status is "On". Wpisz nawias otwierający [ , co spowoduje wyświetlenie listy kolumn tabeli Stores (Sklepy), i wybierz pozycję [Status] (Stan).Type an opening bracket [, which lists columns from the Stores table, and select [Status].

    Wybieranie pozycji Status (Stan)

  4. Bezpośrednio po pozycji [Status] (Stan) wpisz ciąg ="On" , a następnie wpisz przecinek ( , ), aby zakończyć argument.Right after [Status], type ="On", and then type a comma (,) to end the argument. Etykietka narzędzia sugeruje, że teraz musisz dodać wartość do zwrócenia, jeśli wynik to TRUE.The tooltip suggests that you now need to add a value to return when the result is TRUE.

    Dodawanie wartości TRUE

  5. Jeśli sklep ma stan „On”, chcesz wyświetlić jego nazwę.If the store's status is "On", you want to show the store’s name. Wpisz nawias otwierający ( [ ) i wybierz kolumnę [StoreName] , a następnie wpisz kolejny przecinek, abyśmy mogli wprowadzić nasz trzeci argument.Type an opening bracket ([) and select the [StoreName] column, and then type another comma. Etykietka narzędzia wskazuje teraz, że musisz dodać wartość do zwrócenia, jeśli wynik to FALSE.The tooltip now indicates that you need to add a value to return when the result is FALSE.

    Dodawanie wartości FALSE

  6. Potrzebujesz wartości Inactive (Nieaktywny), dlatego wpisz "Inactive" , a następnie ukończ formułę, naciskając klawisz Enter lub wybierając znacznik wyboru na pasku formuły.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. Formuła zostanie zweryfikowana, a nazwa nowej kolumny zostanie wyświetlona w tabeli Stores (Sklepy) w okienku Pola.The formula validates, and the new column's name appears in the Stores table in the Fields pane.

    Kolumna Active StoreName (Nazwa sklepu aktywnego)

  7. Nowej kolumny Active StoreName (Nazwa sklepu aktywnego) możesz używać w wizualizacji, podobnie jak każdego innego pola.You can use your new Active StoreName column in visualizations just like any other field. Aby wyświetlić kwoty SalesAmount według nazwy Active StoreName (Nazwa sklepu aktywnego), wybierz pole Active StoreName lub przeciągnij je na kanwę raportu, a następnie wybierz pole SalesAmount lub przeciągnij je do tabeli.To show SalesAmounts by Active StoreName, select the Active StoreName field or drag it onto the Report canvas, and then select the SalesAmount field or drag it into the table. W tej tabeli sklepy aktywne są wyświetlane indywidualnie według nazwy, ale sklepy nieaktywne są grupowane na końcu i oznaczane jako Inactive (Nieaktywne).In this table, active stores appear individually by name, but inactive stores are grouped together at the end as Inactive.

    Tabela SalesAmount by Active StoreName (Kwota sprzedaży wg nazwy sklepu aktywnego)

Podsumowanie samouczkaWhat you've learned

Kolumny obliczeniowe mogą wzbogacić Twoje dane i ułatwić uzyskiwanie szczegółowych informacji.Calculated columns can enrich your data and provide easier insights. Wiesz już, jak tworzyć kolumny obliczeniowe w okienku Pola i na pasku formuły, używać list podpowiedzi i etykietek narzędzi jako pomocy podczas tworzenia formuł, wywoływać funkcje języka DAX, takie jak RELATED i IF, z odpowiednimi argumentami oraz używać kolumn obliczeniowych w wizualizacjach raportu.You've learned how to create calculated columns in the Fields pane 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.

Następne krokiNext steps

Jeśli chcesz poznać więcej szczegółowych informacji na temat formuł języka DAX i tworzyć kolumny obliczeniowe za pomocą bardziej zaawansowanych formuł, zobacz Podstawy języka DAX w programie 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. Ten artykuł skupia się na podstawowych pojęciach dotyczących języka DAX, np. składni, funkcjach i dokładniejszym rozumieniu kontekstu.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Pamiętaj, aby dodać dokumentację języka Data Analysis Expressions (DAX) do ulubionych.Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. W tym miejscu znajdziesz szczegółowe informacje dotyczące składni, operatorów i ponad 200 funkcji języka DAX.This is where you'll find detailed info on DAX syntax, operators, and over 200 DAX functions.