チュートリアル: Power BI Desktop で計算列を作成するTutorial: 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. 計算列は、列の値を定義するのに Data Analysis Expressions (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. たとえば、データに ([フィールド] の一覧のフィールドとして) [市区町村] 列と [都道府県] 列があるとします。しかし、単一値として両方を持つ [地域] フィールドを 1 つ必要としています (「Miami、FL」 など)。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 Desktop を使用して高度なモデルを作成することに既に慣れている Power BI ユーザー向けに書かれています。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 Sample 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

たとえば、[携帯電話]-[アクセサリ]、[携帯電話]-[スマートフォンおよび PDA] などのように、行の単一の値に、製品カテゴリを製品サブカテゴリと一緒に表示するとします。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.

新しい計算列を作成し、その 2 つの列の値を結合して、新しい列の新しい値にします。We’ll create a new calculated column to combine values from these two column into new values for our new column. 興味深いことに、2 つの異なるテーブルのデータを、1 つの列に結合する必要があります。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.

ProductFullCategory 列を作成するにはTo 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」と入力します。ドロップダウンに候補リストが表示され、"R" で始まるすべての DAX 関数が列挙されます。さらに文字を入力すると、候補リストが絞り込まれて、必要な関数を見つけやすくなります。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] を選択し、Enter キーを押します。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 と Enter を押し、場所を開けるには Tab を押します。Click Alt & Enter to move down a line, and Tab to move things over.

  5. 最後に、もう 1 つ左角かっこを入力し、[ProductSubcategory] 列を選択して、数式を完成させます。Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. 数式は、次のようになるはずです。Your formula should look like this:

    お気づきのとおり、ProductSubcategory 列を呼び出す 2 番目の式では、RELATED 関数を使用しませんでした。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. Enter を押すか、数式バーのチェック マークをクリックして、数式を完成させます。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 サービス (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. ProductFullCategory ごとの SalesAmount を見てみましょう。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.

Power BI Desktop モデルの Contoso Sales のサンプルには、アクティブ ストアと非アクティブ ストアの両方の販売データが含まれます。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. 今回のケースでは、ストアが非アクティブのときに、ストアの名前を “Inactive” として表示するための新しい 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 StoreName 列を作成するにはTo 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. ストアの状態がオンの場合は、数式はストアの名前を返します。If a stores status is On, our formula will return the stores name. オフになっている場合は、“Inactive” の名前になります。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. [IF]を選択します。Select IF.

    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"」を入力し、コンマ (,) を入力して、2 つ目の引数を入力します。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] 列を選択して、もう 1 つコンマを入力します。これにより、3 つ目の引数を入力できます。Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. 結果が false になった場合の値を追加する必要があります。今回のケースでは、値を "Inactive" にします。We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Enter を押すか、数式バーのチェック マークをクリックして、数式を完成させます。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" になっているストアはグループ化され、"Inactive" として示されます。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 の数式で計算列を作成する場合は、「Power BI Desktop における DAX の基本事項」をご覧ください。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.

また、「Data Analysis Expressions (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.