Power Query エディターを使用してデータをクリーンアップして変換する
これで、Microsoft Power BI Desktop を使用してデータ ソースに接続したので、ニーズに合わせてデータを調整する必要があります。 調整とは、列またはテーブルの名前の変更、テキストから数値への変更、行の削除、先頭の行をヘッダーに設定するなど、データの "変換" を意味することもあります。
Power BI Desktop の Power Query エディターでは、リボンで使用可能なタスクに加えて、ショートカット メニュー (右クリック メニューまたはコンテキスト メニューとも呼ばれます) も広範囲に使用します。 リボンの [変換] タブで選択できるもののほとんどは、項目 (列など) を右クリックし、表示されるショートカット メニューのコマンドを選択することでも、利用できます。
データの整形
Power Query エディターでデータを "整形" するときは、Power Query エディターがデータを読み込んで表示するための調整を実行する手順を指定します。 元のデータ ソースには影響ありません。 データのこの特定の表示のみが調整つまり "整形" されます。
指定した手順 (たとえば、テーブル名の変更、データ型の変換、列の削除など) は、Power Query エディターによって記録されます。 その後、これらの手順はクエリがデータ ソースに接続するたびに実行されるので、データは常に指定した方法で整形されます。 ユーザーが Power BI Desktop でクエリを使用するたび、または他のユーザーが (Power BI サービスなどで) 共有クエリを使用するたびに、このプロセスが実行されます。 これらのステップは、[クエリの設定] ウィンドウの [適用したステップ] で順番にキャプチャされます。
次の図は、整形されたクエリに対する [クエリの設定] ウィンドウを示したものです。 以下では各ステップについて説明します。
Web のデータ ソースに接続して見つけた退職関係のデータに戻りましょう。このデータをニーズに合わせて整形することにします。
Note
サンプル データ セットをダウンロードしていない場合は、前のユニットのページを参照してください。
データは数値である必要があります。 今回は問題ありませんが、データ型を変更する必要がある場合は、列ヘッダーを右クリックし、[型の変更] > [整数] を選択します。 複数の列を変更する必要がある場合は、いずれかの列を選択し、Shift キーを押しながら、隣接する列を選択して追加します。 その後、列ヘッダーを右クリックすると、選択したすべての列が変更されます。 Ctrl キーを使用して、連続していない列を選ぶこともできます。
Note
多くの場合、Power Query では、数値にする必要があるテキストの列が検出され、テーブルを Power Query エディターに導入するときに自動的にデータ型が変更されます。 その場合、[適用したステップ] のステップに、Power Query で行われたことが示されます。
さらに、リボンの [変換] タブを使用することで、列をテキストからヘッダーに変更または "変換" することもできます。 次の画像は、[変換] タブを示しています。赤い枠で強調表示された [データ型] ボタンを押すと、現在のデータ型が別のデータ型に変換されます。
[クエリの設定] ウィンドウの [適用したステップ] の一覧には、行われたすべての変更が反映されることに注意してください。 整形プロセスからいずれかのステップを削除するには、ステップを選択してから、左側にある [X] を選択します。
データに接続する
さまざまな州に関するこのデータは興味深く、追加の分析作業とクエリの構築に役立ちます。 しかし、1 つ問題があります。ここにあるほとんどのデータでは、州の完全な名前ではなく、州コードの 2 文字の省略形が使用されています。 したがって、何らかの方法により、州名をその省略形に関連付ける必要があります。
幸運にも、最適な公共データ ソースがもう 1 つあります。しかし、この退職者テーブルに接続する前に、いくらかの整形を行う必要があります。 州の省略形の Web リソースを次に示します。
http://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations
Power Query エディターのリボンの [ホーム] タブで、[新しいソース] > [Web] を選択します。 次に、アドレスを入力して、[OK] を選択します。 [ナビゲーター] ウィンドウに、その Web ページで検出されたものが表示されます。
Codes and abbreviations... テーブルに必要なデータが含まれているため、このテーブルを選択します。しかし、このデータから余分なところを省くには、かなりの整形作業が必要です。
[読み込み] を選択し、整形できるようにデータを Power Query エディターに取り込みます。 その後、次の手順に従います。
先頭の 3 行を削除する – これらの行は Web ページのテーブルを作成した方法のために生じたものであり、必要ありません。 これらを削除するには、リボンの [ホーム] タブで [行の削除] > [上位の行の削除] を選択します。 表示されるダイアログ ボックスで、削除する行数として「3」と入力します。
末尾の 26 行を削除する – これらの行はすべて準州であり、含める必要はありません。 手順は同じですが、ここでは [行の削除] > [下位の行の削除] を選択し、削除する行数として「26」を入力します。
ワシントン DC を除外する – 退職者統計テーブルにはワシントン DC が含まれていません。そこで一覧から除外します。 "Federal state" 列の横にあるドロップダウン矢印を選択し、"Federal district" のチェック ボックスをオフにします。
いくつかの不要な列を削除する – 各州と公式の 2 文字の省略形のマッピングのみが必要であり、その情報は最初と 4 番目の列にあります。 したがって、これら 2 つの列だけを保持する必要があり、他の列はすべて削除できます。 削除する最初の列を選択し、Ctrl キーを押しながら削除する他の列を選択します (これにより、複数の連続しない列を選択できます)。 次に、リボンの [ホーム] タブで、[列の削除] > [列の削除] の順に選択します。
最初の行をヘッダーとして使用する – 先頭の 3 行を削除したため、現在の先頭の行が必要なヘッダーになります。 [1 行目をヘッダーとして使用] ボタンを選択します。
Note
ここで注目する必要があるのは、Power Query エディターで適用したステップの "順番" が重要であり、データの整形方法に影響する場合があるということです。 あるステップが後続の別のステップに及ぼす影響について考慮することも重要です。 [適用したステップ] のリストからステップを削除すると、クエリのステップの順番に対する影響のため、以降のステップが最初に意図したとおりに動作しない可能性があります。
列とテーブル自体の名前を変更する – 通常どおり、列の名前を変更するにはいくつかの方法があります。 必要に応じていずれかを選べます。 列の名前を State Name と State Code に変更します。 テーブルの名前を変更するには、[クエリの設定] ウィンドウの [名前] フィールドに名前を入力するだけです。 このテーブルを StateCodes と呼ぶことにします。
データを結合する
StateCodes テーブルを整形したので、2 つのテーブルを 1 つに結合できます。 今あるテーブルはデータに適用したクエリの結果であるため、"クエリ" と呼ばれることがよくあります。
クエリの結合には、"マージ" と "追加" という主な 2 つの方法があります。
別のクエリに列を追加する場合は、クエリをマージします。 既存のクエリに行を追加する場合は、クエリを追加します。
ここではクエリをマージする必要があります。 最初に、他のクエリをマージする "先の" クエリを選択します。 次に、リボンの [ホーム] タブで、[クエリのマージ] を選択します。 まず退職者のクエリを選択します。 それを選択している間に、クエリを RetirementStats という名前に変更します。
[マージ] ダイアログ ボックスが表示されて、選択したテーブルにマージするテーブルと、マージに使用する一致する列の選択を求めるメッセージが表示されます。
RetirementStats テーブル (クエリ) から State を選択し、StateCodes クエリを選択します。 (この場合、他のクエリは 1 つだけなので選択は簡単です。しかし、多くのデータ ソースに接続するときは、選択候補のクエリが多数存在します。) 一致する列を正しく選ぶと (RetirementStats の State と StateCodes の State Name)、[マージ] ダイアログ ボックスは次のようになり、[OK] ボタンが有効になります。
クエリの末尾に NewColumn が作成されます。これは、既存のクエリとマージされたテーブル (クエリ) のコンテンツです。 マージされたクエリのすべての列が NewColumn に凝縮されますが、テーブルを展開して、必要な列をどれでも含めることができます。 マージされたテーブルを展開して含める列を選択するには、展開アイコン () を選択します。
[展開] ダイアログ ボックスが表示されます。
ここでは、State Code 列だけが必要です。 したがって、その列のみを選択し、[OK] を選択します。 [元の列名をプレフィックスとして使用します] チェック ボックスをオフにすることもできます。 オンのままにすると、マージされた列の名前は NewColumn.State Code (元の列名。つまり、NewColumn、ドット、クエリに取り込まれた列の名前) になります。
Note
必要に応じて、NewColumn テーブルの取り込み方法をいろいろ試してください。 結果に満足できない場合は、[クエリの設定] ウィンドウの [適用したステップ] リストから [展開] ステップを削除するだけです。 クエリは、そのステップを適用する前の状態に戻ります。 これは、展開プロセスが希望どおりになるまで何回でも好きなだけ実行できる、無料のやり直しのようなものです。
2 つのデータ ソースを結合した 1 つのクエリ (テーブル) ができました。それぞれがニーズに合わせて整形されています。 このクエリは、いずれかの州の住宅費の統計、人口統計、または求人情報など、その他の多くの興味深いデータ接続の基礎となっています。
Power Query エディターで変更を適用して Power BI Desktop に読み込むには、リボンの [ホーム] タブで [閉じて適用] を選択します。
これで、モデルのデータを操作する準備ができました。 次に、レポート用のビジュアルをいくつか作成します。
これで、いくつかの興味深いレポートを、すべて Power BI Desktop 内で作成するために十分なデータが揃いました。 ここはマイルストーンなので、この Power BI Desktop ファイルを保存しましょう。 リボンの [ホーム] タブで [ファイル] > [保存] を選択して、レポートを保存します。Getting Started with Power BI Desktop という名前にします。
お疲れ様です。 次のユニットでは、いくつかの興味深いビジュアルを作成します。