チュートリアル: Power BI Desktop で独自のメジャーを作成する
メジャーを使用すると、Power BI Desktop で最も強力なデータ分析ソリューションをいくつか作成できます。 メジャーは、ユーザーがレポートで操作するデータに対して計算を実行するために役立ちます。 このチュートリアルでは、メジャーの基本について説明し、独自のメジャーを Power BI Desktop で作成する手順を紹介します。
前提条件
このチュートリアルは、Power BI Desktop を使用して高度なモデルを作成することに既に慣れている Power BI ユーザー向けに書かれています。 [データの取得] と Power Query エディターを使用してデータをインポートする操作、複数の関連テーブルを取り扱う操作、およびレポート キャンバスにフィールドを追加する操作に、既に習熟している必要があります。 Power BI Desktop を新しく使い始めたユーザーの場合は、必ず「Power BI Desktop の概要」を確認してください。
このチュートリアルでは、Contoso Sales Sample for Power BI Desktop ファイルを使用します。このファイルには、Contoso という架空の会社のオンライン売上データが既に含まれています。 このデータは、データベースからインポートされるため、データソースに接続したり、Power Query エディターで表示したりすることはできません。 ご使用のコンピューターにファイルをダウンロードして展開します。
自動メジャー
Power BI Desktop でメジャーが作成されるときは、ほとんどの場合、自動的に作成されます。 Power BI Desktop でメジャーがどのように作成されるかを確認するため、次の手順を行います。
Power BI Desktop で、[ファイル]>[開く] の順に選択し、Contoso Sales Sample for Power BI Desktop.pbix ファイルを参照してから、[開く] を選びます。
[フィールド] ペインで、Sales テーブルを展開します。 次に、[SalesAmount] フィールドの横にあるチェックボックスをオンにするか、SalesAmount をレポート キャンバスにドラッグします。
新しい縦棒グラフの視覚化が表示され、Sales テーブルの SalesAmount 列のすべての値を合計した値が表示されます。
[フィールド] ペイン内でシグマ アイコン が表示されているすべてのフィールド (列) は、数値であり、その値は集計することができます。 Power BI Desktop では、多数の値 (SalesAmount に 2,000,000 行) を含むテーブルを表示するのではなく、数値データ型を検出すると、メジャーを自動的に作成して計算し、データを集計します。 合計は数値データ型の既定の集計ですが、平均やカウントなど、異なる集計を簡単に適用できます。 メジャーはすべて何らかの種類の集計を実行するので、集計について理解することは、メジャーについて理解することの土台になります。
グラフの集計を変更するには、次の手順を行います。
レポート キャンバスで SalesAmount 視覚化を選択します。
[視覚化] ペインの [値] 領域で、[SalesAmount] の右側にある下矢印を選択します。
表示されたメニューから、[平均] を選択します。
視覚化グラフは、SalesAmount フィールド内のすべての売上値の平均に変わります。
必要な結果に応じて、集計の種類を変更できます。 ただし、すべての種類の集計がすべての数値データ型に適用されるわけではありません。 たとえば、SalesAmount フィールドの場合、合計と平均は有用で、最小値と最大値にも役割があります。 ただし、カウントは SalesAmount フィールドではあまり意味をなしません。このフィールドの値は数値ですが、実際には金額だからです。
メジャーから計算される値は、ユーザーのレポート操作に合わせて変化します。 たとえば、RegionCountryName フィールドを Geography テーブルから既存の SalesAmount グラフにドラッグすると、各国/地域の平均売上金額が表示されるように変更されます。
ユーザーがレポートを操作した結果としてメジャーが変化した場合は、ユーザーがそのメジャーのコンテキストに影響を与えたことになります。 ユーザーがレポートの視覚化を操作するたびにコンテキストが変更され、メジャーは結果を計算して表示します。
独自のメジャーの作成と使用
ほとんどの場合、Power BI Desktop によって自動的に計算され、選択したフィールドと集計の種類に応じて値が返されます。 ただし、場合によっては、さらに複雑な固有の計算を実行するために独自のメジャーを作成した方がよい場合があります。 Power BI Desktop では、Data Analysis Expressions (DAX) 数式言語を使用して独自のメジャーを作成できます。
DAX の数式では、Excel の数式と同じ関数、演算子、および構文を多数使用しています。 ただし、DAX の関数は、リレーショナル データを処理し、ユーザーがレポートを操作するのに合わせて動的に計算を実行するように設計されています。 200 種類を超える DAX 関数は、Sum や Average などの簡単な集計から、さらに複雑な統計関数やフィルター処理関数まで、あらゆる処理を実行できます。 DAX の理解を深めるために役立つリソースは多数あります。 このチュートリアルを終えたら、「Power BI Desktop における DAX の基本事項」をお読みください。
独自のメジャーを作成すると、それはモデル メジャーと呼ばれ、選択したテーブルの [フィールド] リストに追加されます。 モデル メジャーには、識別しやすいように自由に名前を付けられるという利点があります。 それらを他の DAX 式で引数として使用したり、複雑な計算をすばやく行うことができます。
クイック メジャー
さまざまな一般的計算を "クイック メジャー" として利用できます。これはウィンドウへの入力に基づいて DAX 式を自動的に入力するものです。 迅速で強力な計算なので、DAX の学習や、独自のカスタマイズしたメジャーのシード処理にも役立ちます。
次のいずれかの方法を使用して、クイック メジャーを作成します。
[フィールド] ペイン内のテーブルで、[その他のオプション] (...) を右クリックするか選択し、リストから [新しいクイック メジャー] を選びます。
Power BI Desktop リボンの [ホーム] タブにある [計算] の下で、[新しいクイック メジャー] を選択します。
クイック メジャーの作成と使用の詳細については、クイック メジャーの使用に関するページを参照してください。
メジャーを作成する
総売上金額から割引と返品を差し引いて純売上高を分析したいとします。 視覚化に存在するコンテキストには、SalesAmount の合計から DiscountAmount と ReturnAmount の合計を差し引くメジャーが必要です。 [フィールド] リストに純売上高のフィールドはありませんが、純売上高を計算する独自のメジャーを作成するための構成要素はあります。
メジャーを作成するには、次の手順に従います。
[フィールド] ウウィンドウで、Sales テーブルを右クリックするか、テーブルにマウス カーソルを移動し、その他のオプション [...] を選択します。
表示されたメニューから、[新しいメジャー] を選びます。
このアクションにより、新しいメジャーが Sales テーブルに保存され、簡単に検索できるようになります。
Power BI Desktop リボンの [ホーム] タブにある [計算] グループの [新しいメジャー] を選択して、新しいメジャーを作成することもできます。
ヒント
メジャーをリボンから作成すると、どのテーブルでもメジャーを作成できますが、使用する予定の場所にメジャーを作成すると見つけやすくなります。 この場合、まず Sales テーブルを選択してアクティブにしてから、[新しいメジャー] を選びます。
レポート キャンバスの上部に数式バーが表示されます。数式バーでは、メジャーの名前を変更し、DAX 式を入力できます。
既定では、新しいメジャーにはそれぞれ Measure という名前が付けられます。 名前を変更しない場合、新しいメジャーは Measure 2、Measure 3 などの名前になります。 メジャーを識別しやすくしたいので、数式バーで Measure を強調表示してから、Net Sales に変更します。
数式の入力を開始します。 等号に続けて「Sum」と入力します。 入力すると、ドロップダウン候補リストに、入力した文字で始まるすべての DAX 関数が表示されます。 必要に応じて下にスクロールしてリストから [SUM] を選択し、Enter キーを押します。
始めかっこが表示され、ドロップダウン候補リストに、SUM 関数に渡すことのできる使用可能な列が表示されます。
式は、常に、始めかっこと終わりかっこの間に入ります。 この例では、式には SUM 関数に渡す 1 つの引数 (SalesAmount 列) が含まれます。 Sales (SalesAmount) がリストに残されている唯一の値になるまで、「SalesAmount」と入力します。
テーブル名の前にある列名は、列の完全修飾名と呼ばれます。 列の完全修飾名を使用すると、式が読みやすくなります。
一覧から Sales[SalesAmount] を選択し、終わりかっこを入力します。
ヒント
構文エラーが最も発生しやすいケースは、終わりかっこの入力漏れか、入力位置の間違いです。
数式内の他の 2 つの列を減算します。
a. 最初の式の終わりかっこの後に、スペース、マイナス演算子 (-)、もう 1 つスペースの順に入力します。
b. もう 1 つの SUM 関数を入力し、Sales[DiscountAmount] 列が引数として選択できるようになるまで「DiscountAmount」と入力します。 閉じかっこを追加します。
c. スペース、マイナス演算子、スペース、Sales[ReturnAmount] を引数とするもう 1 つの SUM 関数、終わりかっこの順に入力します。
Enter キーを押すか、数式バーにあるコミット (チェックマーク アイコン) を選択して入力を完了し、数式を検証します。
検証された Net Sales メジャーは、[フィールド] ウィンドウの Sales テーブルで使用できるようになります。
数式を入力する領域が足りなくなった場合や、複数行に分けたい場合は、数式バーの右側にある下矢印を選択して、領域を広げます。
下矢印が上矢印に変わり、大きなボックスが表示されます。
Alt + Enter キーを押しながら別の行の数式の一部を分割したり、Tab キーを押してタブの間隔を広げたりします。
レポートでメジャーを使用する
新しい Net Sales メジャーをレポート キャンバスに追加し、レポートに他の任意のフィールドを追加して純売上高を計算します。
国/地域別の純売上高を表示するには:
Net Sales メジャーを Sales テーブルから選択するか、レポート キャンバスにドラッグします。
RegionCountryName フィールドを Geography テーブルから選択するか、Net Sales グラフにドラッグします。
純売上高と売上高の差異を国/地域別に表示するには、SalesAmount フィールドを選択するか、グラフにドラッグします。
グラフでは、次の 2 つのメジャーが使用されるようになりました: Power BI で自動的に合計される SalesAmount と、手動で作成した Net Sales メジャー。 各メジャーは別フィールド RegionCountryName のコンテキストで計算されました。
スライサーでメジャーを使用する
スライサーを追加して、純売上高と売上高を、カレンダー年でさらにフィルター処理します。
グラフの横にある空白の領域を選択します。 [視覚化] ウィンドウで、[テーブル] 視覚化を選びます。
このアクションにより、空白のテーブルの視覚化がレポート キャンバスに作成されます。
Year フィールドを Calendar テーブルから新しい空白のテーブルの視覚化にドラッグします。
Year は数値フィールドであるため、Power BI Desktop によってその値が合計されます。 この合計は、集計としては正しく機能しません。これについては、次の手順で説明します。
[視覚化] ペインの [値] ボックスで、Year の横にある下矢印を選択し、リストから [集計しない] を選びます。 テーブルに個々の年が表示されるようになります。
[視覚化] ウィンドウで [スライサー] アイコンを選択して、テーブルをスライサーに変換します。 視覚化にリストではなくスライダーが表示される場合は、スライダーの下矢印から [リスト] を選びます。
Year スライサーで任意の値を選択すると、それに従って RegionCountryName 別の売上高と純売上高グラフがフィルター処理されます。 選択した Year フィールドのコンテキストで Net Sales メジャーと SalesAmount メジャーが再計算され、結果が表示されます。
作成したメジャーを別のメジャーで使用する
販売されたユニットあたりの純売上高が最も高い製品を特定したいとします。 純売上高を販売されたユニット数で除算するメジャーが必要になります。 この場合、Net Sales メジャーの結果を Sales[SalesQuantity] の合計で除算する新しいメジャーを作成します。
[フィールド] ウィンドウで、Net Sales per Unit という名前の新しいメジャーを、Sales テーブルに作成します。
数式バーに「Net Sales」と入力します。 追加できる項目が候補リストに表示されます。 [Net Sales] を選択します。
また、始め角かっこ ([) を入力するだけで、メジャーを参照することもできます。 候補リストには、数式に追加できるメジャーのみが表示されます。
スペース、除算演算子 (/)、もう 1 つのスペース、SUM 関数の順に入力し、「Quantity」と入力します。 候補リストに、名前に「Quantity」が含まれるすべての列が表示されます。 Sales[SalesQuantity] を選択し、終わりかっこを入力し、Enter キーを押すか、[コミット] (チェックマーク アイコン) を選んで数式を検証します。
結果として得られる式は次のようになります。
Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])
Net Sales per Unit メジャーを Sales テーブルから選択するか、レポート キャンバスの空白の領域にドラッグします。
グラフには、販売されたすべての製品のユニットあたりの純売上高が表示されます。 このグラフの情報は有益ではありません。これについては、次の手順で説明します。
表示方法を変えるために、グラフの視覚化タイプを [ツリーマップ] に変更します。
ProductCategory フィールドを選択するか、ツリーマップまたは [視覚化] ウィンドウの [グループ] フィールドにドラッグします。 ここでお勧めの情報を紹介します。
ProductCategory フィールドを削除し、代わりに ProductName フィールドをグラフにドラッグしてみてください。
これは単なるお遊びですが、すばらしい機能ではありませんか。 他の視覚化のフィルター処理と書式設定も試してみてください。
学習した内容
メジャーには、データから必要な洞察を得るための機能があります。 ここでは、数式バーを使用してメジャーを作成し、わかりやすい名前を付け、DAX の候補リストを使用して適切な数式の要素を見つけて選択する方法を学びました。 また、コンテキストについても学習しました。コンテキストとは、メジャーの計算結果が他のフィールドに従って変化すること、または数式にある他の式によって変化することを指します。
関連するコンテンツ
多数の一般的なメジャーの計算を利用できる Power BI Desktop のクイック メジャーの詳細については、「クイック メジャーを使用して一般的な計算を実行する」を参照してください。
DAX の数式についてさらに詳しく知りたい場合や、さらに高度なメジャーを作成する場合は、「Power BI Desktop における DAX の基本を学習する」を参照してください。 この記事では、構文、関数、およびコンテキストの詳しい理解など、DAX の基本的な概念について説明します。
また、「Data Analysis Expressions (DAX) リファレンス」を、ぜひお気に入りに追加してください。 このリファレンスでは、DAX の構文、演算子、および 200 種類を超える DAX 関数について詳細を調べることができます。
関心のあるその他の記事: