チュートリアル:Power BI Desktop での独自のメジャーの作成Tutorial: Create your own measures in Power BI Desktop

メジャーを使用すると、Power BI Desktop で最も強力なデータ分析ソリューションをいくつか作成できます。By using measures, you can create some of the most powerful data analysis solutions in Power BI Desktop. メジャーは、ユーザーがレポートで操作するデータに対して計算を実行するために役立ちます。Measures help you by performing calculations on your data as you interact with your reports. このチュートリアルでは、メジャーの基本について説明し、独自のメジャーを Power BI Desktop で作成する手順を紹介します。This tutorial will guide you through understanding measures and creating your own basic measures in Power BI Desktop.

前提条件Prerequisites

  • このチュートリアルは、Power BI Desktop を使用して高度なモデルを作成することに既に慣れている Power BI ユーザー向けに書かれています。This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. [データの取得] とクエリ エディターを使用してデータをインポートする操作、複数の関連したテーブルを取り扱う操作、およびレポート キャンバスにフィールドを追加する操作に既に習熟している必要があります。You should already be familiar with using Get Data and 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 Sales Sample for Power BI Desktop ファイルを使用します。このファイルには、Contoso という架空の会社のオンライン売上データが既に含まれています。This tutorial uses the Contoso Sales Sample for Power BI Desktop file, which includes online sales data from the fictitious company, Contoso. このデータはデータベースからインポートされるため、データソースに接続したり、クエリ エディターで表示したりすることはできません。Because this data is imported from a database, you can't connect to the datasource or view it in Query Editor. ご使用のコンピューターにファイルをダウンロードして展開します。Download and extract the file on your computer.

自動メジャーAutomatic measures

Power BI Desktop でメジャーが作成されるときは、ほとんどの場合、自動的に作成されます。When Power BI Desktop creates a measure, it's most often created for you automatically. Power BI Desktop でメジャーがどのように作成されるかを確認するため、次の手順を行います。To see how Power BI Desktop creates a measure, follow these steps:

  1. Power BI Desktop で、 [ファイル] > [開く] の順に選択し、Contoso Sales Sample for Power BI Desktop.pbix ファイルを参照し、 [開く] を選択します。In Power BI Desktop, select File > Open, browse to the Contoso Sales Sample for Power BI Desktop.pbix file, and then select Open.

  2. [フィールド] ウィンドウで、Sales テーブルを展開します。In the Fields pane, expand the Sales table. 次に、 [SalesAmount] フィールドの横にあるチェックボックスをオンにするか、SalesAmount をレポート キャンバスにドラッグします。Then, either select the check box next to the SalesAmount field or drag SalesAmount onto the report canvas.

    新しい縦棒グラフの視覚化が表示され、Sales テーブルの SalesAmount 列のすべての値を合計した値が表示されます。A new column chart visualization appears, showing the sum total of all values in the SalesAmount column of the Sales table.

    SalesAmount 縦棒グラフ

[フィールド] ウィンドウ内のシグマ アイコン シグマ アイコン 付きのすべてのフィールド (列) は数値で、その値は集計することができます。Any field (column) in the Fields pane with a sigma icon Sigma icon is numeric, and its values can be aggregated. Power BI Desktop では、多数の値 (SalesAmount に 200 万行) を含むテーブルを表示するのではなく、数値データ型を検出すると、メジャーを自動的に作成して計算し、データを集計します。Rather than display a table with many values (two million rows for SalesAmount), Power BI Desktop automatically creates and calculates a measure to aggregate the data if it detects a numeric datatype. 合計は数値データ型の既定の集計ですが、平均やカウントなど、異なる集計を簡単に適用できます。Sum is the default aggregation for a numeric datatype, but you can easily apply different aggregations like average or count. メジャーはすべて何らかの種類の集計を実行するので、集計について理解することは、メジャーについて理解することの土台になります。Understanding aggregations is fundamental to understanding measures, because every measure performs some type of aggregation.

グラフの集計を変更するには、次の手順を行います。To change the chart aggregation, follow these steps:

  1. レポート キャンバスで SalesAmount 視覚化を選択します。Select the SalesAmount visualization in the report canvas.

  2. [視覚化] ウィンドウの [値] 領域で、 [SalesAmount] の右側にある下矢印を選択します。In the Value area of the Visualizations pane, select the down arrow to the right of SalesAmount.

  3. 表示されたメニューから、 [平均] を選択します。From the menu that appears, select Average.

    視覚化グラフは、SalesAmount フィールド内のすべての売上値の平均に変わります。The visualization changes to an average of all sales values in the SalesAmount field.

    SalesAmount の平均グラフ

必要な結果に応じて、集計の種類を変更できます。Depending on the result you want, you can change the type of aggregation. ただし、すべての種類の集計がすべての数値データ型に適用されるわけではありません。However, not all types of aggregation apply to every numeric datatype. たとえば、SalesAmount フィールドの場合、合計と平均は有用で、最小値と最大値にも役割があります。For example, for the SalesAmount field, Sum and Average are useful, and Minimum and Maximum have their place as well. ただし、カウントは SalesAmount フィールドではあまり意味をなしません。このフィールドの値は数値ですが、実際には金額だからです。However, Count doesn't make sense for the SalesAmount field, because while its values are numeric, they’re really currency.

メジャーから計算される値は、ユーザーのレポート操作に合わせて変化します。Values calculated from measures change in response to your interactions with your report. たとえば、RegionCountryName フィールドを Geography テーブルから既存の SalesAmount グラフにドラッグすると、各国の平均売上金額が表示されるように変更されます。For example, if you drag the RegionCountryName field from the Geography table onto your existing SalesAmount chart, it changes to show the average sales amounts for each country.

国別の SaleAmount

ユーザーがレポートを操作した結果としてメジャーが変化した場合は、ユーザーがそのメジャーの コンテキスト に影響を与えたことになります。When the result of a measure changes because of an interaction with your report, you've affected your measure’s context. ユーザーがレポートの視覚化を操作するたびにコンテキストが変更され、メジャーは結果を計算して表示します。Every time you interact with your report visualizations, you're changing the context in which a measure calculates and displays its results.

独自のメジャーの作成と使用Create and use your own measures

ほとんどの場合、Power BI Desktop によって自動的に計算され、選択したフィールドと集計の種類に応じて値が返されます。In most cases, Power BI Desktop automatically calculates and returns values according to the types of fields and aggregations you choose. ただし、場合によっては、さらに複雑な固有の計算を実行するために独自のメジャーを作成した方がよい場合があります。However, in some cases you might want to create your own measures to perform more complex, unique calculations. Power BI Desktop では、Data Analysis Expressions (DAX) 数式言語を使用して独自のメジャーを作成できます。With Power BI Desktop, you can create your own measures with the Data Analysis Expressions (DAX) formula language.

DAX の数式では、Excel の数式と同じ関数、演算子、および構文を多数使用しています。DAX formulas use many of the same functions, operators, and syntax as Excel formulas. ただし、DAX の関数は、リレーショナル データを処理し、ユーザーがレポートを操作するのに合わせて動的に計算を実行するように設計されています。However, DAX functions are designed to work with relational data and perform more dynamic calculations as you interact with your reports. 200 種類を超える DAX 関数は、Sum や Average などの簡単な集計から、さらに複雑な統計関数やフィルター処理関数まで、あらゆる処理を実行できます。There are over 200 DAX functions that do everything from simple aggregations like sum and average to more complex statistical and filtering functions. DAX の理解を深めるために役立つリソースは多数あります。There are many resources to help you learn more about DAX. このチュートリアルを終えたら、「Power BI Desktop における DAX の基本事項」をお読みください。After you've finished this tutorial, see DAX basics in Power BI Desktop.

独自のメジャーを作成すると、それは モデル メジャーと呼ばれ、選択したテーブルの [フィールド] リストに追加されます。When you create your own measure, it's called a model measure, and it's added to the Fields list for the table you select. メジャー モデルの利点として、任意の必要なものに名前を付けて識別しやすくすることができる、他の DAX 式の引数として使用できる、複雑な計算を高速に実行できるなどがあります。Some advantages of model measures are that you can name them whatever you want, making them more identifiable; you can use them as arguments in other DAX expressions; and you can make them perform complex calculations quickly.

クイック メジャーQuick measures

Power BI Desktop の 2018 年 2 月のリリースから、ウィンドウでの入力に基づいて DAX 式が自動的に入力される クイック メジャー で、利用できる一般的な計算が多数増えました。Starting with the February 2018 release of Power BI Desktop, many common calculations are available as quick measures, which write the DAX formulas for you based on your inputs in a window. 迅速で強力な計算なので、DAX の学習や、独自のカスタマイズしたメジャーのシード処理にも役立ちます。These quick, powerful calculations are also great for learning DAX or seeding your own customized measures.

次のいずれかの方法を使用して、クイック メジャーを作成します。Create a quick measure using one of these methods:

  • [フィールド] ウィンドウ内のテーブルで、その他のオプション [...] を右クリックするか選択し、一覧から [新しいクイック メジャー] を選択します。From a table in the Fields pane, right-click or select More options (...), and then select New quick measure from the list.

  • Power BI Desktop リボンの [ホーム] タブにある [計算] の下で、 [新しいクイック メジャー] を選択します。Under Calculations in the Home tab of the Power BI Desktop ribbon, select New Quick Measure.

クイック メジャーの作成と使用の詳細については、クイック メジャーの使用に関するページを参照してください。For more information about creating and using quick measures, see Use quick measures.

メジャーを作成するCreate a measure

総売上金額から割引と返品を差し引いて純売上高を分析したいとします。Suppose you want to analyze your net sales by subtracting discounts and returns from total sales amounts. 視覚化に存在するコンテキストには、SalesAmount の合計から DiscountAmount と ReturnAmount の合計を差し引くメジャーが必要です。For the context that exists in your visualization, you need a measure that subtracts the sum of DiscountAmount and ReturnAmount from the sum of SalesAmount. [フィールド] リストに純売上高のフィールドはありませんが、純売上高を計算する独自のメジャーを作成するための構成要素はあります。There's no field for Net Sales in the Fields list, but you have the building blocks to create your own measure to calculate net sales.

メジャーを作成するには、次の手順に従います。To create a measure, follow these steps:

  1. [フィールド] ウウィンドウで、Sales テーブルを右クリックするか、テーブルにマウス カーソルを移動し、その他のオプション [...] を選択します。In the Fields pane, right-click the Sales table, or hover over the table and select More options (...).

  2. 表示されたメニューから、 [新しいメジャー] を選択します。From the menu that appears, select New measure.

    このアクションにより、新しいメジャーが Sales テーブルに保存され、簡単に検索できるようになります。This action saves your new measure in the Sales table, where it's easy to find.

    一覧の [新しいメジャー]

    Power BI Desktop リボンの [ホーム] タブにある [計算] グループの [新しいメジャー] を選択して、新しいメジャーを作成することもできます。You can also create a new measure by selecting New Measure in the Calculations group on the Home tab of the Power BI Desktop ribbon.

    リボンの [新しいメジャー]

    ヒント

    メジャーをリボンから作成すると、どのテーブルでもメジャーを作成できますが、使用する予定の場所にメジャーを作成すると見つけやすくなります。When you create a measure from the ribbon, you can create it in any of your tables, but it's easier to find if you create it where you plan to use it. この場合、まず Sales テーブルを選択してアクティブにしてから、 [新しいメジャー] を選択します。In this case, select the Sales table first to make it active, and then select New measure.

    レポート キャンバスの上部に数式バーが表示されます。数式バーでは、メジャーの名前を変更し、DAX 式を入力できます。The formula bar appears along the top of the report canvas, where you can rename your measure and enter a DAX formula.

    数式バー

  3. 既定では、新しいメジャーにはそれぞれ Measure という名前が付けられます。By default, each new measure is named Measure. 名前を変更しない場合、新しいメジャーを追加すると Measure 2Measure 3 などの名前になります。If you don’t rename it, additional new measures are named Measure 2, Measure 3, and so on. メジャーを識別しやすくしたいので、数式バーで Measure を強調表示してから、Net Sales に変更します。Because we want this measure to be more identifiable, highlight Measure in the formula bar, and then change it to Net Sales.

  4. 数式の入力を開始します。Begin entering your formula. 等号に続けて「Sum」と入力します。After the equals sign, start to type Sum. 入力すると、ドロップダウン候補リストに、入力した文字で始まるすべての DAX 関数が表示されます。As you type, a drop-down suggestion list appears, showing all the DAX functions, beginning with the letters you type. 必要に応じて下にスクロールしてリストから [SUM] を選択し、Enter キーを押します。Scroll down, if necessary, to select SUM from the list, and then press Enter.

    リストから SUM を選択

    始めかっこが表示され、ドロップダウン候補リストに、SUM 関数に渡すことのできる使用可能な列が表示されます。An opening parenthesis appears, along with a drop-down suggestion list of the available columns you can pass to the SUM function.

    列の選択

  5. 式は、常に、始めかっこと終わりかっこの間に入ります。Expressions always appear between opening and closing parentheses. この例では、式には SUM 関数に渡す 1 つの引数 (SalesAmount 列) が含まれます。For this example, your expression contains a single argument to pass to the SUM function: the SalesAmount column. Sales (SalesAmount) がリストに残されている唯一の値になるまで、「SalesAmount」と入力します。Begin typing SalesAmount until Sales(SalesAmount) is the only value left in the list.

    テーブル名の前にある列名は、列の完全修飾名と呼ばれます。The column name preceded by the table name is called the fully qualified name of the column. 列の完全修飾名を使用すると、式が読みやすくなります。Fully qualified column names make your formulas easier to read.

    SalesAmount の選択

  6. 一覧から Sales[SalesAmount] を選択し、終わりかっこを入力します。Select Sales[SalesAmount] from the list, and then enter a closing parenthesis.

    ヒント

    構文エラーが最も発生しやすいケースは、終わりかっこの入力漏れか、入力位置の間違いです。Syntax errors are most often caused by a missing or misplaced closing parenthesis.

  7. 数式内の他の 2 つの列を減算します。Subtract the other two columns inside the formula:

    a.a. 最初の式の終わりかっこの後に、スペース、マイナス演算子 (-)、もう 1 つスペースの順に入力します。After the closing parenthesis for the first expression, type a space, a minus operator (-), and then another space.

    b.b. もう 1 つの SUM 関数を入力し、Sales[DiscountAmount] 列が引数として選択できるようになるまで「DiscountAmount」と入力します。Enter another SUM function, and start typing DiscountAmount until you can choose the Sales[DiscountAmount] column as the argument. 閉じかっこを追加します。Add a closing parenthesis.

    c.c. スペース、マイナス演算子、スペース、Sales[ReturnAmount] を引数とするもう 1 つの SUM 関数、終わりかっこの順に入力します。Type a space, a minus operator, a space, another SUM function with Sales[ReturnAmount] as the argument, and then a closing parenthesis.

    式の完了

  8. Enter キーを押すか、数式バーにある コミット (チェックマーク アイコン) を選択して入力を完了し、数式を検証します。Press Enter or select Commit (checkmark icon) in the formula bar to complete and validate the formula.

    検証された Net Sales メジャーは、 [フィールド] ウィンドウの Sales テーブルで使用できるようになります。The validated Net Sales measure is now ready to use in the Sales table in the Fields pane.

    Sales テーブルのフィールド一覧の Net Sales メジャー

  9. 数式を入力する領域が足りなくなった場合や、複数行に分けたい場合は、数式バーの右側にある下矢印を選択して、領域を広げます。If you run out of room for entering a formula or want it on separate lines, select the down arrow on the right side of the formula bar to provide more space.

    下矢印が上矢印に変わり、大きなボックスが表示されます。The down arrow turns into an up arrow and a large box appears.

    数式の上矢印

  10. Alt + Enter キーを押しながら別の行の数式の一部を分割したり、Tab キーを押してタブの間隔を広げたりします。Separate parts of your formula by pressing Alt + Enter for separate lines, or pressing Tab to add tab spacing.

    展開された数式

レポートでメジャーを使用するUse your measure in the report

新しい Net Sales メジャーをレポート キャンバスに追加し、レポートに他の任意のフィールドを追加して純売上高を計算します。Add your new Net Sales measure to the report canvas, and calculate net sales for whatever other fields you add to the report.

国別の純売上高を表示するには:To look at net sales by country:

  1. Net Sales メジャーを Sales テーブルから選択するか、レポート キャンバスにドラッグします。Select the Net Sales measure from the Sales table, or drag it onto the report canvas.

  2. RegionCountryName フィールドを Geography テーブルから選択するか、Net Sales グラフにドラッグします。Select the RegionCountryName field from the Geography table, or drag it onto the Net Sales chart.

    国別の純売上高

  3. 純売上高と売上高の差異を国別に表示するには、SalesAmount フィールドを選択するか、グラフにドラッグします。To see the difference between net sales and total sales by country, select the SalesAmount field or drag it onto the chart.

    国別の売上高と純売上高

    グラフでは、次の 2 つのメジャーが使用されるようになりました:Power BI で自動的に合計される SalesAmount と、手動で作成した Net Sales メジャー。The chart now uses two measures: SalesAmount, which Power BI summed automatically, and the Net Sales measure, which you manually created. 各メジャーは別フィールド RegionCountryName のコンテキストで計算されました。Each measure was calculated in the context of another field, RegionCountryName.

スライサーでメジャーを使用するUse your measure with a slicer

スライサーを追加して、純売上高と売上高を、カレンダー年でさらにフィルター処理します。Add a slicer to further filter net sales and sales amounts by calendar year:

  1. グラフの横にある空白の領域を選択します。Select a blank area next to the chart. [視覚化] ウィンドウで、 [テーブル] 視覚化を選びます。In the Visualizations pane, select the Table visualization.

    このアクションにより、空白のテーブルの視覚化がレポート キャンバスに作成されます。This action creates a blank table visualization on the report canvas.

    新しい空のテーブルの視覚化

  2. Year フィールドを Calendar テーブルから新しい空白のテーブルの視覚化にドラッグします。Drag the Year field from the Calendar table onto the new blank table visualization.

    Year は数値フィールドであるため、Power BI Desktop によってその値が合計されます。Because Year is a numeric field, Power BI Desktop sums up its values. この合計は、集計としては正しく機能しません。これについては、次の手順で説明します。This summation doesn’t work well as an aggregation; we'll address that in the next step.

    年の集計

  3. [視覚化] ウィンドウの [値] ボックスで、Year の横にある下矢印を選択し、一覧から [集計しない] を選択します。In the Values box in the Visualizations pane, select the down arrow next to Year, and then select Don't summarize from the list. テーブルに個々の年が表示されるようになります。The table now lists individual years.

    [集計しない] を選択

  4. [視覚化] ウィンドウで [スライサー] アイコンを選択して、テーブルをスライサーに変換します。Select the Slicer icon in the Visualizations pane to convert the table to a slicer. 視覚化に一覧ではなくスライダーが表示される場合は、スライダーの下矢印から [一覧] を選択します。If the visualization displays a slider instead of a list, select List from the down arrow in the slider.

    テーブルをスライサーに変換

  5. Year スライサーで任意の値を選択すると、それに従って RegionCountryName 別の売上高と純売上高 グラフがフィルター処理されます。Select any value in the Year slicer to filter the Net Sales and Sales Amount by RegionCountryName chart accordingly. 選択した Year フィールドのコンテキストで Net Sales メジャーと SalesAmount メジャーが再計算され、結果が表示されます。The Net Sales and SalesAmount measures recalculate and display results in the context of the selected Year field.

    年ごとにスライスされたグラフ

作成したメジャーを別のメジャーで使用するUse your measure in another measure

販売されたユニットあたりの純売上高が最も高い製品を特定したいとします。Suppose you want to find out which products have the highest net sales amount per unit sold. 純売上高を販売されたユニット数で除算するメジャーが必要になります。You'll need a measure that divides net sales by the quantity of units sold. この場合、Net Sales メジャーの結果を Sales[SalesQuantity] の合計で除算する新しいメジャーを作成します。Create a new measure that divides the result of your Net Sales measure by the sum of Sales[SalesQuantity].

  1. [フィールド] ウィンドウで、Net Sales per Unit という名前の新しいメジャーを、Sales テーブルに作成します。In the Fields pane, create a new measure named Net Sales per Unit in the Sales table.

  2. 数式バーに「Net Sales」と入力します。In the formula bar, begin typing Net Sales. 追加できる項目が候補リストに表示されます。The suggestion list shows what you can add. [Net Sales] を選択します。Select [Net Sales].

    Net Sales を使用する数式

  3. また、始め角かっこ ( [ ) を入力するだけで、メジャーを参照することもできます。You can also reference measures by just typing an opening bracket ([). 候補リストには、数式に追加できるメジャーのみが表示されます。The suggestion list shows only measures to add to your formula.

    角かっこでメジャーのみが表示されます

  4. スペース、除算演算子 (/)、もう 1 つのスペース、SUM 関数の順に入力し、「Quantity」と入力します。Enter a space, a divide operator (/), another space, a SUM function, and then type Quantity. 候補リストに、名前に「Quantity」が含まれるすべての列が表示されます。The suggestion list shows all the columns with Quantity in the name. Sales[SalesQuantity] を選択し、終わりかっこを入力し、Enter キーを押すか、コミット (チェックマーク アイコン) を選択して数式を検証します。Select Sales[SalesQuantity], type the closing parenthesis, and press ENTER or select Commit (checkmark icon) to validate your formula.

    結果として得られる式は次のようになります。The resulting formula should appear as:

    Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])

  5. Net Sales per Unit メジャーを Sales テーブルから選択するか、レポート キャンバスの空白の領域にドラッグします。Select the Net Sales per Unit measure from the Sales table, or drag it onto a blank area in the report canvas.

    グラフには、販売されたすべての製品のユニットあたりの純売上高が表示されます。The chart shows the net sales amount per unit over all products sold. このグラフはあまり有益ではありません。これについては、次の手順で説明します。This chart isn't very informative; we'll address it in the next step.

    単位あたりの全体的な純売上高

  6. 表示方法を変えるために、グラフの視覚化タイプを [ツリーマップ] に変更します。For a different look, change the chart visualization type to Treemap.

    ツリーマップへの変更

  7. ProductCategory フィールドを選択するか、ツリーマップまたは [視覚化] ウィンドウの [グループ] フィールドにドラッグします。Select the Product Category field, or drag it onto the treemap or the Group field of the Visualizations pane. ここでお勧めの情報を紹介します。Now you have some good info!

    製品カテゴリ別のツリーマップ

  8. ProductCategory フィールドを削除し、代わりに ProductName フィールドをグラフにドラッグしてみてください。Try removing the ProductCategory field, and dragging the ProductName field onto the chart instead.

    製品名別のツリーマップ

    これは単なるお遊びですが、すばらしい機能ではありませんか。Ok, now we're just playing, but you have to admit that's cool! 他の視覚化のフィルター処理と書式設定も試してみてください。Experiment with other ways to filter and format the visualization.

学習した内容What you've learned

メジャーには、データから必要な洞察を得るための機能があります。Measures give you the power to get the insights you want from your data. ここでは、数式バーを使用してメジャーを作成し、わかりやすい名前を付け、DAX の候補リストを使用して適切な数式の要素を見つけて選択する方法を学びました。You've learned how to create measures by using the formula bar, name them whatever makes most sense, and find and select the right formula elements by using the DAX suggestion lists. また、コンテキストについても学習しました。コンテキストとは、メジャーの計算結果が他のフィールドに従って変化すること、または数式にある他の式によって変化することを指します。You've also been introduced to context, where the results of calculations in measures change according to other fields or other expressions in your formula.

次の手順Next steps