Power BI Desktop におけるレポート作成のヒントとテクニック

データを最大限に活用するには、少しのヒントが必要な場合があります。 この記事では、Microsoft Power BI Desktop でレポートを作成するときに使えるヒントとコツについて説明します。 これらのヒントは、Power Pivot アドインが有効にされ、Power Query がインストールされて有効にされている、Microsoft Excel 2016 または Excel 2013 Pro-Plus エディションでも役に立ちます。

クエリ エディターの使用方法を学習する

Power BI Desktop のクエリ エディターは、Excel 2013 の Power Query アドイン機能に似ています。 Power BI サポートにも役立つ記事がありますが、support.office.com にある Power Query に関する資料を最初に読まれることをお勧めします。

Power Query リソース センターから追加情報を取得できます。

また、式の参照を表示することもできます。

クエリ エディターのデータ型

Power BI Desktop のクエリ エディターは、最善の推測によってデータ型を検出することにより、データを読み込みます。 数式では、列でのデータ型の設定が保持されないことがあります。 Power Query エディターへのデータの初期読み込み、先頭行の見出しとしての設定、列の追加、グループ化、マージ、追加の各操作を行った後、およびデータを初めて読み込む前に、列のデータ型が正しいことを確認してください。

データ グリッド内の斜体部分は、データ型が正しく設定されていることを表すのではなく、単にデータがテキストと見なされていないことを意味することを忘れないでください。

クエリ エディターでのクエリの参照

Power BI Desktop のクエリ エディターのナビゲーターでいずれかのクエリを右クリックすると、[参照] オプションを使用できます。 これは、次の理由により便利です。

  • クエリのデータ ソースとしてファイルを使用すると、ファイルの絶対パスがクエリに保存されます。 Power BI Desktop ファイルまたは Excel ブックを共有または移動するときは、パスを更新するのではなく、ファイルまたはブックを 1 回だけ更新することによってパスを更新すると、時間を短縮できます。

既定では、すべてのクエリがデータ モデルに読み込まれます。 一部のクエリは中間的な手順であり、エンドユーザー向けのものではありません。 前に説明したようにクエリを参照するときは、多くがこれに該当します。 ナビゲーターでクエリを右クリックして、[読み込みを有効にする] オプションを切り替えることで、クエリの読み込み動作を制御できます。 [読み込みを有効にする] の横にチェック マークが表示されない場合、そのクエリは Power Query エディターで引き続き使用でき、他のクエリでそれを使用できます。 特に、マージ、追加、参照の各変換と組み合わせて使用すると便利です。 ただし、クエリの結果はデータ モデルに読み込まれないため、クエリによってレポートのフィールド一覧やデータ モデルが乱れることはありません。

散布図にはポイント識別子が必要

一例として、気温とそれが測定された時刻の簡単なテーブルについて考えます。 散布図に直接プロットした場合、Power BI によってすべての値が 1 つのポイントに集約されます。 個々のデータ ポイントを表示するには、フィールド一覧の [詳細] バケットにフィールドを追加する必要があります。 Power BI Desktop でこれを簡単に行うには、Power Query エディター[列の追加] リボンの [インデックス列の追加] オプションを使います。

レポート内の参照行

Power BI Desktop の計算列を使って、参照行を定義できます。 参照行を作成するテーブルと列を識別します。 [ホーム] タブのリボンで [新しい列] を選び、数式バーに次の式を入力します。

Target Value = 100

この計算列からは、それが使われている場所に関係なく、値 100 が返されます。 フィールド一覧に新しい列が表示されます。 [ターゲット値] 計算列を折れ線グラフに追加すると、一連の値と特定の参照行との関連性がわかります。

別の列を基準とした並べ替え

カテゴリ別 (文字列) の値を Power BI でグラフの軸に使用する場合、またはスライサーやフィルターで使用する場合、既定の順序はアルファベット順です。 曜日や月のように、この順序をオーバーライドする必要がある場合は、別の列で並べ替えるよう Power BI Desktop に指示できます。 詳しくは、「Power BI で 1 つの列をほかの列で並べ替える」をご覧ください。

Bing へのヒントを使ってより簡単にマップを作成する

Power BI と Bing の統合により、ジオコーディングと呼ばれるプロセスで既定のマップ座標が提供されるため、マップを簡単に作成できます。 Bing ではアルゴリズムとヒントを使って適切な場所の取得が試みられますが、それは最善の推測です。 ジオコーディングの正確性を高めるために、次のヒントを使用してください。

マップを作成するときは、通常、国/地域、都道府県、市区町村をプロットします。 Power BI Desktop では、地理的指定に基づいて列に名前を付けると、ユーザーが表示しようとしているものの Bing による検出が向上します。 たとえば、"カリフォルニア" や "ワシントン" のような米国の州名のフィールドがある場合、"ワシントン" と指定すると Bing はワシントン州ではなくワシントン DC を返す可能性があります。 列に "州" という名前を付けると、ジオコーディングが改善されます。 同様に、列には "Country または Region" や "City" のように名前を付けます。

この指定は、複数の国や地域のコンテキストではあいまいになることもあります。 国や地域によっては、"州" と呼ばれるものが、"都道府県" や "郡" などと呼ばれる場合があります。 ジオコーディングの正確性を増すには、作成する列に複数のフィールドを追加し、それらのフィールドをデータの場所のプロットに使用します。 たとえば、"Wiltshire" という値のみを渡すのではなく、"Wiltshire, England" という値を渡せば、ジオコーディング結果の正確性が高まります。

Power BI サービスまたは Power BI Desktop では、特定の緯度と経度の場所を常に指定できます。 これを行う場合は、[場所] フィールドも渡す必要があります。 そうしないと、データは既定で集約されるため、緯度と経度の場所が想定と一致しない可能性があります。

Bing のジオコーディングにヒントを与える地理的フィールドを分類する

フィールドが正確にジオコーディングされるようにするためのもう 1 つの方法は、データ フィールドにデータ カテゴリを設定することです。 Power BI Desktop で目的のテーブルを選択し、[詳細設定] リボンに移動し、データ カテゴリを [Address]、[City]、[Continent]、[Country/Region]、[Postal Code]、[State]、または [Province] に設定します。 これらのデータのカテゴリは、Bing で日付を正しくエンコードするために役立ちます。 詳しくは、「Power BI Desktop でデータ分類を指定する」をご覧ください。

より具体的な場所を指定してジオコーディングを向上させる

マッピング用のデータ カテゴリの設定だけでは不十分な場合があります。 Power BI Desktop のクエリ エディターを使って、番地のようなさらに詳細な場所を作成してください。 [列の追加] 機能を使用して、カスタム列を作成します。 その後、次のように必要な場所指定を作成します。

= [Field1] & " " & [Field2]

この結果のフィールドをマップ表示で使用します。 これは、データ セットによくある配送先住所フィールドから番地を作成するときに便利です。 注意しなければならないのは、連結がテキスト フィールドにしか機能しない点です。 必要な場合は、住所の作成に使う前に、番地をテキスト データ型に変換します。

クエリ ステージのヒストグラム

Power BI Desktop では複数の方法でヒストグラムを作成できます。

最も単純なヒストグラム: ヒストグラム作成の基になるフィールドが含まれるクエリを決定します。 クエリの [参照] オプションを使用して、新しいクエリを作成し、"FieldName Histogram" という名前を付けます。 [変換] リボンの [グループ化] オプションを使用し、[行のカウント] 集計を選択します。 結果の集計列のデータ型が数値であることを確認してください。 その後、このデータをレポート ページで視覚化します。 このヒストグラムは、短時間で簡単に作成できますが、データ ポイントの数が多い場合はうまく機能せず、視覚エフェクト間でのブラッシングはできません。

ヒストグラムを作成するためのバケットの定義: ヒストグラム作成の基になるフィールドが含まれるクエリを決定します。 クエリの [参照] オプションを使用して、新しいクエリを作成し、"FieldName" という名前を付けます。 ルールを使用してバケットを定義します。 [列の追加] リボンの [カスタム列の追加] オプションを使用し、カスタム ルールを作成します。 次に、バケットの単純なルールの例を示します。

if([FieldName] \< 2) then "\<2 min" else
if([FieldName] \< 5) then "\<5 min" else
if([FieldName] \< 10) then "\<10 min" else
if([FieldName] \< 30) then "\<30 min" else
"longer")

結果の集計列のデータ型が数値であることを確認してください。 「最も単純なヒストグラム」で説明した手法でグループを使用して、ヒストグラムを完成させます。 このオプションでは、より多くのデータ ポイントが処理されますが、ブラッシングはやはり使用できません。

ブラッシングをサポートするヒストグラムの定義: ブラッシングとは、視覚エフェクトが相互にリンクされた状態であり、ユーザーがある視覚エフェクトでデータ ポイントを選ぶと、レポート ページの他の視覚エフェクトで、選ばれたデータ ポイントに関連するデータ ポイントが強調表示またはフィルター処理されます。 クエリ時にデータを操作するので、テーブル間のリレーションシップを作成し、どの詳細項目がヒストグラムのバケットに関連するか、またその逆の関連を、把握しておく必要があります。

プロセスを開始するため、ヒストグラム作成の基準とするフィールドが含まれているクエリの [参照] オプションを使用します。 新しいクエリに "Buckets" という名前を付けます。 この例では、元のクエリを Details という名前にします。 次に、ヒストグラムのバケットとして使う列以外のすべての列を削除します。 そして、クエリで [重複部分の削除] 機能を使います。 この機能は、列を選んだときの右クリック メニューにあるので、その列には一意の値だけが残ります。 10 進数がある場合は、「バケットを定義してヒストグラムを作成する」というヒントを使用すると、管理可能なバケットのセットを取得できます。 ここで、クエリのプレビューに表示されるデータを確認します。 空白の値または null がある場合は、リレーションシップを作成する前に、それらを修正する必要があります。 この方法を使うと、並べ替えが必要になるため、問題が発生する可能性があります。

注意

ビジュアルを作成する前に並べ替え順序を考えておくことをお勧めします。

プロセスの次のステップでは、バケット列で Buckets クエリと Details クエリの間のリレーションシップを定義します。 Power BI Desktop のリボンで、[リレーションシップの管理] を選びます。 Buckets が左側のテーブル、Details が右側のテーブルに表示されるリレーションシップを作成し、ヒストグラムに使用するフィールドを選択します。

最後のステップは、ヒストグラムの作成です。 "Buckets" テーブルから [バケット] フィールドをドラッグします。 結果として得られる縦棒グラフから、既定のフィールドを削除します。 次に、Details テーブルのヒストグラム フィールドを同じ視覚エフェクトまでドラッグします。 このフィールド一覧で、既定の集計を [カウント] に変更します。 これでヒストグラムの完成です。 ツリーマップのようなビジュアルを "Details" テーブルから作成する場合は、ツリーマップのデータ ポイントを選択して、ヒストグラムの強調表示を確認し、データ シート全体の傾向に関連する選択済みデータ ポイントのヒストグラムを表示します。

ヒストグラム

Power BI Desktop では、計算フィールドを使ってヒストグラムを定義できます。 ヒストグラム作成の基にするテーブルと列を識別します。 計算領域で、次の数式を入力します。

Frequency:=COUNT(<Column Name>)

変更を保存し、レポートに戻ります。 <Column Name> と Frequency をテーブルに追加してから、横棒グラフに変換します。 <Column Name> は x 軸、計算済みの Frequency フィールドは y 軸です。

Power BI Desktop におけるリレーションシップ作成のヒントとテクニック

複数のソースから詳細なデータ セットを読み込むと、多くの場合、null 値、空白値、重複値などの問題で、リレーションシップを作成できません。

アクティブなカスタマー サポート要求の読み込まれたデータ セットと、スキーマを含む作業項目の別のデータ セットの、次のような例を見てみましょう。

CustomerIncidents: {IncidentID, CustomerName, IssueName, OpenedDate, Status} WorkItems: {WorkItemID, IncidentID, WorkItemName, OpenedDate, Status, CustomerName }

特定の CustomerName に関連するすべてのインシデントと作業項目を追跡する場合、これらの 2 つのデータ セットの間のリレーションシップを作成するだけでは済みません。 一部の WorkItem は CustomerName に関連していない可能性があり、そのフィールドは空白または null になります。 特定の CustomerName の WorkItem と CustomerIncident に複数のレコードが存在する場合があります。

データに null または空白の値が含まれている場合に Power BI Desktop でリレーションシップを作成する

多くの場合、データ セットには値が null または空白の列が含まれています。 これにより、リレーションシップを使用しようとすると、問題が発生することがあります。 この問題に対処するには、基本的に 2 つのオプションがあります。

  1. 1 つ目のオプションは、null または空白の値を持つ行を削除する方法です。 これを行うには、Power Query エディターのフィルター機能を使うか、クエリをマージしている場合は "一致する行だけを保持する" オプションを選びます。
  2. 2 つ目のオプションは、null または空白の値を、リレーションシップで機能する値 (一般的には "NULL" や "(Blank)" などの文字列) に置き換える方法です。

この場合、適切なアプローチはありません。 クエリ ステージで行をフィルターで除外すると、行が削除され、概要の統計情報や計算に影響する可能性があります。 値を置き換えるとデータ行は保持されますが、関連のない行がモデルに関連するように見える可能性があるため、計算ミスにつながります。 この 2 番目のオプションを採用する場合は、ビューやグラフの適切な場所でフィルターを使って、正確な結果が得られるようにします。 最も重要なのは、どの行を保持または削除するかを評価し、分析への全体的な影響を理解することです。

データに重複する値が含まれている場合に Power BI Desktop でリレーションシップを作成する

複数のソースから詳細なデータ セットを読み込むと、多くの場合、重複するデータ値のためにリレーションシップを作成できません。 この問題を克服するには、両方のデータ セットの一意の値を使用してディメンション テーブルを作成します。

アクティブなカスタマー サポート要求の読み込まれたデータ セットと、スキーマを含む作業項目の別のデータ セットの、次のような例を見てみましょう。

CustomerInicdents: {IncidentID, CustomerName, IssueName, OpenedDate, Status} WorkItems: {WorkItemID, IncidentID, WorkItemName, OpenedDate, Status, CustomerName }

特定の CustomerName に関連するすべてのインシデントと作業項目を追跡する場合、これらの 2 つのデータ セットの間のリレーションシップを作成するだけでは済みません。 一部の WorkItem は CustomerName に関連していない可能性があり、そのフィールドは空白または null になります。 CustomerNames テーブルに空白値または null が含まれている場合も、リレーションシップを作成できません。 1 つの CustomerName に複数の WorkItem と CustomerIncident が存在する場合があります。

この場合、リレーションシップを作成するには、2 つのデータ セットにまたがるすべての CustomerName の論理データ セットを最初に作成します。 Power Query エディターでは、次のシーケンスを使って論理データ セットを作成できます。

  1. 両方のクエリを複製し、最初のクエリに Temp 、2 番目のクエリに CustomerNamesという名前を付けます。
  2. 各クエリで、CustomerName 列 以外 のすべての列を削除します。
  3. 各クエリで [重複を削除] を使用します。
  4. CustomerNames クエリで、リボンの [追加] オプションを選択し、 Tempクエリを選択します。
  5. CustomerNames クエリで [重複を削除] を選択します。

これで、相互にすべての値を含む CustomerIncidentsWorkItems を関連付けるために使用できるディメンション テーブルが作成されました。

クエリ エディターの使用をジャンプ スタートできるパターン

クエリ エディターは、視覚化またはモデル化できるようにデータを操作、整形、クリーンアップできる強力な機能を備えています。 知っておく必要があるパターンがいくつかあります

結果の計算後に一時的な列を削除可能

Power BI Desktop では、多くの場合、複数の列のデータを 1 つの新しい列に変換する計算を作成する必要があります。 これは複雑な計算になる可能性があります。 この問題を解決するための簡単な方法の 1 つは、操作を複数のステップに分解することです。

  • 最初の列を複製します。
  • 一時的な列を作成します。
  • 最終的な結果の列を作成します。
  • 最終的なデータ セットが乱雑にならないように、一時的な列を削除します。

Power Query エディターではステップが順番に実行されるため、これが可能です。

クエリの複製または参照の後に元のクエリへのマージを実行

データ セットの概要統計情報を計算すると便利な場合があります。 これを簡単に行うには、Power Query エディターでクエリを複製または参照します。 その後、[グループ化] を使用して、概要統計情報を計算します。 概要の統計情報は、元のデータを正規化して比較しやすくするのに役立ちます。 これは特に、個々の値を全体と比較する場合に役立ちます。 これを行うには、元のクエリに移動し、[マージ] オプションを選びます。 その後、適切な識別子に一致する概要統計情報クエリからデータをマージします。 これで、分析に必要な場合にデータを正規化する準備ができました。

DAX を初めて使用する

DAX は、Power BI Desktop で使用される計算式言語です。 それは BI の分析のために最適化されています。 SQL のような標準化されたクエリ言語しか使ったことがない場合、使い慣れたものとは若干異なります。 DAX を学習するのに適したオンライン リソースや出版物があります。

Power BI Desktop における DAX の基本事項を学習する

Data Analysis Expressions (DAX)

DAX リソース センター

Power BI サービス "および" Power BI Desktop

"視覚的に美しいレポート (とダッシュボード) をデザインする方法" を読むまたは見る

コミュニティ メンバーの Miguel Myers は、データ サイエンティストでグラフィック デザイナーです。

Screenshot showing an example Power BI report.

閲覧者をよく考える

対象者の意思決定に役立つ重要なメトリックは何でしょうか。 レポートはどのように使われるのでしょうか。 デザインの選択に影響を与える可能性のある学習上または文化的な前提は何ですか? 閲覧者が成功するためにどのような情報が必要ですか。

レポートはどのようなデバイスで表示されますか。 大型のモニターの場合、より多くのコンテンツを配置できます。 閲覧者がタブレットでそれを見る場合、視覚エフェクトの数が少ない方が読みやすくなります。

ストーリーを持たせ、それを 1 つの画面に収める

レポートの各ページでは、ストーリーが一目でわかる必要があります。 スクロール バーがページに表示されないようにできますか。 レポートが乱雑またはにぎやかすぎませんか。 不可欠な情報以外のすべてを削除して、読みやすく、分かりやすいものにします。

最も重要な情報を最も大きくする

レポート ページ上のテキストと視覚エフェクトがすべて同じサイズの場合、閲覧者は最も重要なことを見つけるのに苦労します。 たとえば、次のようなカードの視覚化は、重要な数値を目立つように表示するための優れた方法です。

Screenshot showing a card visualization.

ただし、必ずその意味を示す

テキスト ボックスやヒントなどの機能を使って、視覚エフェクトにコンテキストを追加します。

最も重要な情報は、上部の隅に配置する

たいていの人は上から下に向かって情報を読むため、概要の情報を先頭に配置し、閲覧者が読み進むにつれて (左から右、または右から左) より詳しい情報を示すようにします。

データに適した視覚エフェクトを使用し、見やすく書式設定する

趣向を変えて変化をつけるためだけにさまざまな視覚化を使用することは避けてください。 視覚化は絵を描くように作成し、しかも読みやすく分かりやすいものにしてください。 データや視覚化によっては、シンプルなグラフの視覚化で十分です。 ただし、他のデータではさらに複雑な視覚エフェクトが必要になることがあります。必ずタイトル、ラベル、その他のカスタマイズを利用して、閲覧者が理解しやすいようにします。

  • 3D グラフやゼロから始まっていないグラフなど、事実を歪曲するグラフを使うときは注意してください。 人の脳は円形のものを解釈することがより困難であることに留意してください。 円グラフ、ドーナツ グラフ、ゲージ、その他の円形の種類のグラフは見栄えはよいですが、代わりに使用できる別の視覚化があるはずです。
  • 軸上のグラフの目盛、グラフのディメンションの順序、およびグラフ内のディメンション値に使用する色と調和させます。
  • 量的なデータを必ず読みやすくエンコードします。 数値を表示する場合、数字を 3 ~ 4 桁までにしてください。 メジャーは、小数点の左側の数字を 1 桁または 2 桁にし、千または百万のスケールを使用して表示します。 たとえば、3,400,000 ではなく 3.4 百万を使用します。
  • 精度と時間のレベルを混在させないようにします。 期間がよくわかるようにします。 前月のある 1 つのグラフを、その年の特定の 1 つの月からフィルター処理されたグラフの横に配置しないでください。
  • また、折れ線グラフや横棒グラフなど、同じ尺度に大きい測定単位と小さい測定単位を混在させないようにします。 たとえば、1 つの測定単位が数百万単位で、もう一方の測定単位が数千単位のような指定の方法です。 このような大きいスケールを使用すると、千単位のメジャーの差がわかりにくくなります。 測定単位を混在させる必要がある場合は、複合グラフのような 2 つ目の軸の使用を可能にする視覚化を選びます。
  • 必要のないデータ ラベルでグラフが見づらくならないようにします。 通常、横棒グラフの値は、十分に大きければ、実際の数値を示さなくてもわかります。
  • グラフの並べ替え方法にご注意ください。 最大数または最小数に注目させる必要がある場合は、測定単位に従って並べ替えます。 閲覧者が他の多くのカテゴリの中の特定のカテゴリをすばやく見つけられるようにするには、軸に従って並べ替えます。
  • 円グラフは、カテゴリが 7 つ以下の場合に最適です。 円グラフ内の各値の比較は、値を並べて比較できないため横棒グラフや縦棒グラフよりも難しくなります。 円グラフは、部分の比較ではなく、全体に対する部分の関係を示すために適しています。 ゲージ グラフは、ある目標に関して現在の状態を表示するために適しています。

視覚化について詳しくは、「Power BI での視覚化の種類」をご覧ください。

ダッシュボード デザインのベスト プラクティスの詳しい情報

役立つ書籍としては、次のものがあります。

  • Storytelling with Data』(データでのストーリーテリング)、Cole Nussbaumer Knafic 著
  • Data points』(データ ポイント)、Nathan Yau 著
  • The truthful Art』(真実を語るアート)、Alberto Cairo 著
  • Now You See It Stephen Few 著
  • Envisioning Information Edward Tufte 著
  • Advanced Presentations by Design』(高度なプレゼンテーションのデザイン)、Design Andrew Abela 著

他にわからないことがある場合は、 Power BI コミュニティに質問する