Power Query 、Power Pivot 入門(3)ダイアグラム ビューを使ってリレーションシップの追加と計算列を使ったデータ モデルの拡張

Microsoft
この記事は約5分で読めます。

はじめに

 Microsoftチュートリアルに沿って学習する第2回目としてのPower Query 、Power Pivot 入門(2)では、主に次のことを学びました。

  • 新たなExcelファイルの表からのインポート
  • Webページ内の表からのインポート
  • 読み込んだデータと前のデータとのリレーションシップの一つの仕方
  • リレーションした結果のピボットテーブルの整形

 今日のPower Query 、Power Pivot 入門(3)では、次のことを学習します。

  • ダイアグラム ビューを使ってリレーションシップ
    • データビュー
    • ダイアグラムビュー
  • 計算列を使ったデータ モデルの拡張
  • 計算列を使ったリレーションシップの作成
 OS、機種などで説明の仕方が変わってくることがありますので、私の使用しているパソコン環境について載せておきます。

パソコンOS : Windows10 Pro
Windowsバージョン : 21H1
Excel バージョン : 2107

ダイアグラム ビューを使ってリレーションシップ

 Power Query 、Power Pivot 入門(2)で作成したファイル(Microsoft-pwerpviot-tutorial.xlsx)をダブルクリックして起動してください。

 Excel の Power Pivot のダイアグラムを利用してリレーションシップを作成します。

データビュー

 上部リボンのメニューにある「Power Pivot」⇒「管理」の順にクリックします。

  データビューが開かれます。

 データビューでは、下のタブを切り替えることにより、見たい表データを見ることができます。

ダイアグラムビュー

 データビューの右隣の「ダイアグラムビュー」をクリックします。

 ダイアグラムビューでは、今まで取り込んだ7つの表のオブジェクトが表示され、下のスライドバーを操作することにより全てのオブジェクトを見ることができ、オブジェクトをドラッグして好きな位置に持っていくことができます。

 「Events」の「DisciplineEvent」と「Medals」の「DisciplineEvent」は同じ項目であり、データビューを見ると「Events」 テーブルの 「DisciplineEvent」 項目は、一意で繰り返されない値によって構成さていますが、「Medals」テーブルの「DisciplineEvent」項目は、何度も出てきて一意ではありませんが、1対多のリレーションシップは可能ですので、この間でリレーションシッ作成します。

 「Events」の「DisciplineEvent」をドラッグして、「Medals」の「DisciplineEvent」にドロップすると、その間に線が引かれ、「Events」側に1が、「Medals」側には*が記されているのが分かります。

 また、引かれた線をクリックすると、それぞれのオブジェクトのどの項目とリレーションしているのかが分かります。

計算列を使ったデータ モデルの拡張

 次に「Hosts」と他のテーブルとのリレーションシップを作成したいのですが、「Hosts」には、一意の値を持つ項目がありません。

 「Hosts」にある項目を使って、新たに一意の値となるような項目を作成する必要があり、この作成した項目が「Medals」の項目にも必要になります。

 幸いにも、「Edition 」項目 (オリンピック イベントが開催された年) と「 Season 」項目が「Hosts」と「Medals」の両方にありますので、これらを使って新たな項目を作成することによりお互いにリレーションシップを作成することができます。

 新たな項目を作成するのは、DAX関数を使います。

 データビューを開き、「Hosts」タブをクリックして、表の「列の追加」と書かれた下のセルをクリックし、上の数式欄に次の式を記入してリターンをすると、「Edition 」と「 Season 」が繋がった項目ができ、その列に値が埋まります。

=CONCATENATE([Edition],[Season])

 さらに、ラベルに「EditionID」と記入します。

  同様にして、「Medals」にも「EditionID」を作成しなければならないのですが、「Medals」の「Edition」と「 Season 」を繋げても、同じ「Hosts」の「EditionID」にはなりません。

 「Medals」の「Edition」は、年月日と時間までが入力されているので、年だけを抜き出した新しいカラムを作る必要があります。

 そのカラムの名前を「Year」とし、次の計算式を計算欄に記入します。

=YEAR([Edition])

 さらに作成した「Year」と「 Season 」を繋ぎ合わせた「EditionID」を次の式により作成します。

=CONCATENATE([Year],[Season])

計算列を使ったリレーションシップの作成

 ダイアグラムビューを表示させ、先ほど作成した「Hosts」の「EditionID」と「Medals」の「EditionID」を結んでやり、リレーションシップを作成します。

 

おわりに

 如何だったでしょうか?

 新たなExcelファイルの表からのインポート、Webページ内の表からのインポート、読み込んだデータと前のデータとのリレーションシップの一つの仕方、リレーションした結果のピボットテーブルの整形などについて解説してきました。

 この記事が少しでもあなたにとって役に立てればこれほど嬉しいことはありません。

以上です。

 

コメント

タイトルとURLをコピーしました