SQL Server のことなら SQL Quality SQL Server パフォーマンス チューニング、コンサルティング、アドバイス、相談、定期診断、トレーニング

ホーム > 技術情報 > Power BI 自習書 No.1 無料で利用できる Power BI を試しみよう

Microsoft Power BI 自習書シリーズ (HTML 版)
「No.1 無料で利用できる Power BI を試しみよう」

松本美穂と松本崇博が執筆した Power BI 自習書シリーズの「No.1 無料で利用できる Power BI を試しみよう」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2015年12月29日]

目次へ | 前のページへ | 次のページへ

3.6 MERGE(クエリの JOIN)

Power BI Desktop では、クエリを MERGEJOIN)することも簡単に行うことができます。前の手順では、複数のクエリを連結(UNION)する方法を説明しましたが、ここでは、MERGE 機能を利用して、リレーションシップのあるデータを、1つのクエリにまとめる(JOIN する)方法を説明します。
MERGE(JOIN)は、内部結合Inner Join)だけでなく、左外部結合Left Outer Join)や、右外部結合Right Outer Join)、完全外部結合Full Outer Join)を選択することもできます。

複数のクエリを 1つのクエリにまとめることができれば、人口データを面積で除算した「人口密度」を計算したり、列同士の計算する場合に便利になるので、ぜひ試してみてください。

1.まずは、リボンの[クエリを編集]をクリックして、クエリ エディターを開きます。

00167

2.次に、[都道府県別の人口]クエリを選択して、[クエリのマージ]をクリックします。

00168

3.マージ]ダイアログが表示されたら、マージのキー列(JOIN キー)として[都道府県]列を選択して、マージ先のテーブルには[都道府県別の面積]クエリを選択、こちらもキー列に[都道府県]列を選択します。

00169

4.マージ先の列(都道府県)を選択すると、次のように[プライバシー レベル]ダイアログが表示されるので、今回のように Web 上のデータを利用する場合は[パブリック]を選択して、[保存]ボタンをクリックします。

00170

5.マージ]ダイアログに戻ったら、[結合の種類]では[内部(一致する行のみ)]を選択して、[OK]ボタンをクリックします。

00171

これで、「都道府県」列を利用して、MERGE を行うことができます(結語の種類で「内部」を選択している場合は、Inner Join で結合することができます)。

6.MERGE が完了すると、次のように[NewColumn]という列が追加されて、マージ先に選択したクエリのデータが「Table」形式で格納されるようになります。

00172

7.Table」形式のデータの場合は、列名(NewColumn)の隣に[←→]ボタンが表示されるので、これをクリックします。これで、次のように「順位」や「都道府県」、「面積」といったマージ先のテーブル(都道府県別の面積クエリ)の列の一覧が表示されるので、ここでは「面積」列のみをチェックします。

00173

元の列名をプレフィックスとして使用します]のチェックは外して、[OK]ボタンをクリックします。このようにチェックを外すことで、「面積」という列の名前にすることができ、もし、チェックを付けたままの場合は、「NewColumn.面積」という列の名前(元の列の名前がプレフィックスに付いた形)になります。

◆ 列に対する計算(列の追加、人口を面積で除算して人口密度を取得)

1.Power BI Desktop では、複数の列を利用して、計算を行うことも簡単にできます。ここでは、[2010年]の人口を、[面積]で除算(Divide)して、人口密度(面積1km2 あたりの人口)を取得してみましょう。これを行うには、次のように[2010年]と[面積]列を Ctrl キーを押しながら選択して、[列の追加]タブを開き、[標準]の[除算]をクリックします。

00174

これで、「2010年 / 面積」を計算した結果を新しい列として追加できるようになります。ポイントは、2010年を先に選択することです。もし、面積、2010年のように面積を先に選択してしまう場合は「面積 / 2010年」という計算になってしまうことに注意してください。

前述したように、面積は 2014年、人口は 2010年のものなので、正確な人口密度ではないのですが、ここでは列同士を計算することができる例として試してみてください。

2.次に、追加した列の名前を「人口密度」に変更します。列の名前を変更するには、列の名前をダブルクリックします。

00175

3.変更後、[ホーム]タブで[閉じて適用]をクリックして、レポート デザイナーに戻ります。

00176

◆ レポートの作成(面積と人口密度の関係)

1.レポート デザイナーに戻ったら、画面下部の[]ボタンをクリックして、新しいレポート ページを作成します。

00177

2.新しいレポート ページでは、次のように[フィールド]ペインで[都道府県別の人口]クエリを展開して、[都道府県]と[面積]をチェックします。

00178

この面積は、前の手順の MERGE 操作によって取得したものです。

3.次に、[視覚化]ペイン[折れ線グラフおよび積み上げ縦棒グラフ]をクリックして、グラフの種類を複合グラフに変更します。

00179

4.次に、[人口密度]を[線の値]にドラッグ&ドロップして配置します。

00180

これで、人口密度を折れ線グラフ、面積を縦棒グラフとして表示できるようになります。神奈川県東京都大阪府は、面積が小さい割りには、人口密度が高く北海道面積が大きいのに対して人口密度が低いことが分かります。

このように、人口密度のように計算した値を作っておくことで、よりグラフを分かりやすいものにしていくことができます。こういったことが簡単に行えるのも Power BI の大きな利点の1つです。

Note: DAX 式で人口密度を計算することも可能
本文中では、クエリ エディターで MERGE を行って、列の作成を行いましたが、DAX(Data Analysis Expressions)式という機能を利用すると、MERGE を行わなくても、リレーションシップのあるデータを取得して、列同士の計算を行う、ということも可能です。DAX 式については、Step6 でも説明しますが、次のようにレポート デザイナーで[データ]をクリックして、「データ ツール」を開くことで利用することができます。
00181
データ ツールでは、次のように[新しい列]をクリックすることで、DAX 式を入力できるようになります。
00182
DAX 式は、Excel の式のようなもので、DAX で用意された関数や、演算(乗算を行う * や、除算を行う / など)を利用することができます。DAX では、「'クエリ名'[列名]」という形で、クエリの名前を「'」で囲んで指定する決まりがあります。また、列名は [ ] で囲む必要があります。上の例のように「'」を入力すると、インテリセンス(入力補完機能)が働いて、列の一覧が表示されるので、人口密度を計算するには、「2010年」列を選択します(Tab キーを押下することで確定できます)。
次に、人口密度を計算するために、「面積」列を利用しますが、本文中の MERGE 処理によって、「都道府県別の人口」クエリの中にも「面積」列があるのですが、ここではこれを利用せずに、「都道府県別の面積」クエリの中にある「面積」列を利用するようにします。このように、別のクエリ内にある列を扱うには、DAX では、RELATED という関数を利用します(この関数は、リレーションシップのある別のクエリの列を取得できます)。RELATED 関数は、次のように利用します。
00183
RE」と入力すると、インテリセンス機能が働いて、RE で始まる関数が一覧されるので、「RELATED」関数を選択します(Tab キーを押下することで確定できます)。
次に、RELATED 関数の引数に、次のように「'都道府県別の面積'[面積]」を入力して、最後に、「)」を付け加えて関数を閉じれば、人口密度の計算が完了です(最後に、Enter キーを押下して、DAX 式を確定します)。
00184
人口密度を計算できたら、次のように列の名前を変更できます。
00185
小数点以下を表示したい場合には、次のように「書式」を「10進数」に設定して、小数点以下の桁数を設定するようにします。
00186
このように、DAX 式を利用すれば、MERGE を利用しなくても、他のクエリの列データを取得して、計算を行うことができるので、大変便利です。もちろん、MERGE も大変便利な機能なので、ぜひ活用してみてください。

目次へ | 前のページへ | 次のページへ

事例1

MPNロゴ


SQLQualityは執筆とセミナーを通じて技術の啓蒙やエンジニアの育成支援も行っています
最新刊
SQL Server 2012 の教科書
SQL Server 2012 の教科書(ソシム)

弊社オリジナル制作の
SQL Server 2012 自習書も
マイクロソフトのサイトで公開中!
ロングセラー
ASP.NET でいってみよう  SQL Server 2000 でいってみよう
ASP.NET でいってみよう
第7刷 16,500 部発行
SQL Server 2000 でいってみよう
第12刷 28,500 部発行


セミナー風景
セミナー風景

弊社執筆の
SQL Server 2012 自習書
マイクロソフトのサイトで公開中
全30冊
ダウンロードはこちら
弊社執筆の
SQL Server 2008 R2 自習書
マイクロソフトのサイトで公開中
全30冊
目次はこちら
松本美穂のコラム
(公開活動などのお知らせ)

第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回: iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回: PASS Summit 2012 参加レポート
第31回: SQL Server 2012 Reporting Services 自習書のお知らせ
第30回: SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回: 書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回: SQL Server 2012 の Power View 機能のご紹介
第25回: SQL Server 2012 の Data Quality Services
第24回: SQL Server 2012 自習書のご案内と初セミナー報告
第23回: Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加

技術コミュニティでも活動中

Microsoft MVP for SQL Server

松本美穂松本崇博

松本崇博 Blog(SQL Server Tips)
松本美穂ブログ(SQL Serverノート)