初期データの整形

完了

Power BI Desktop の Power Query エディターを使用すると、インポートしたデータを整形 (変換) できます。 列またはテーブルの名前の変更、テキストから数値への変更、行の削除、先頭の行をヘッダーに設定するなどのデータの操作を実行できます。 確実にニーズを満たし、レポートでの使用に適したものにするために、データを整形することが重要です。

2 つのソースから Power BI モデルに売上の生データを読み込みました。  データの一部は、Microsoft Excel で販売チームによって手動で作成された .csv ファイルからのものです。  その他のデータは、組織のエンタープライズ リソース プランニング (ERP) システムへの接続を通して読み込まれました。  ここで、Power BI Desktop 上でデータを見ると、混乱状態にあることがわかります。必要のないデータと必要なデータの形式が間違っています。

レポートの作成を開始するには、その前に、Power Query エディターを使用して、このデータをクリーンアップして整形する必要があります。

Query エディターを使用したデータの変換

Power Query エディターでの作業開始

データの整形を開始するには、Power BI Desktop の [ホーム] タブで [データの変換] オプションを選択して Power Query エディターを開きます。

Power Query エディターを開く

Power Query エディターでは、選択したクエリのデータが画面の中央に表示され、左側の [クエリ] ペインに、使用可能なクエリ (テーブル) が一覧表示されます。

Power Query エディターで作業すると、データを整形するために実行したすべてのステップが記録されます。 それ以降、クエリでデータ ソースに接続するたびに、自動的にそれらのステップが適用されるので、データは常に指定したとおりに整形されます。  Power Query エディターでは、データの特定のビューにのみ変更が加えられるため、元のデータ ソースに対して行われる変更を確実に確認できます。 ステップのリストは、画面の右側にある [クエリの設定] ペインに、クエリのプロパティと共に表示されます。

Power Query エディターのリボンには、データの選択、表示、整形に使用できる多くのボタンが含まれています。

使用できる機能の詳細については、クエリ リボンに関する記事をご覧ください。

Note

Power Query エディターには、右クリックのコンテキスト メニューとリボンの [変換] タブに、同じオプションが多数用意されています。

列のヘッダーと名前の識別

初期データを整形する最初の手順として、データの中にある列のヘッダーと名前を識別し、それらがどこに配置されているかを評価して、適切な場所にあることを確認します。

次のスクリーンショットでは、SalesTarget の csv ファイル内のソース データに (サンプルの提供なし)、製品別にカテゴリ分けされたターゲットと、月別に分割されたサブカテゴリが含まれており、それらの両方が列として編成されています。

元の Excel データ

ただし、データが予期したとおりにインポートされなかったことがわかります。

列のヘッダーと名前の識別

その結果、データを読み取るのが困難になっています。 列ヘッダーが別の行にあるため (赤でマーク)、現在の状態のデータで問題が発生しています。また、Column1Column2 のような、わかりにくい名前の列がいくつかあります。

列のヘッダーと名前がどこにあるかを確認したら、データを再編成するための変更を加えることができます。

ヘッダーのレベル上げ

Power BI Desktop でテーブルを作成する場合、Power Query エディターでは、すべてのデータがテーブルの行に属していると想定されます。 ただし、データ ソースにある先頭の行に、列名が含まれている場合があります。これは、前の SalesTarget の例で発生したことです。  この不正確さを修正するには、先頭のテーブル行を列のヘッダーにレベル上げする必要があります。

ヘッダーのレベル上げは、2 つの方法で行うことができます。[ホーム] タブの [1 行目をヘッダーとして使用] オプションを選択する、またはColumn1 の横にあるドロップダウン ボタンを選択し、[1 行目をヘッダーとして使用] を選択します。

1 行目をヘッダーとして使用するための異なる複数のオプション

次の図は、[1 行目をヘッダーとして使用] 機能のデータに対する影響を示しています。

[1 行目をヘッダーとして使用] の結果

列名の変更

データを整形するための次の手順は、列のヘッダーを調べることです。 1 つ以上の列のヘッダーが間違っていることや、ヘッダーにスペルミスがあること、ヘッダーの名前付け規則が一貫していなかったりユーザーにわかりにくかったりすることが見つかる可能性があります。

前のスクリーンショットを参照してください。[1 行目をヘッダーとして使用]機能の影響を示しています。 サブカテゴリである Name のデータを含む列に、列ヘッダーとして Month が表示されていることに注目します。 この列ヘッダーは正しくありません。そのため、名前を変更する必要があります。

列ヘッダーの名前を変更するには、次の 2 つの方法があります。 1 つは、ヘッダーを右クリックし、[名前の変更] を選択して名前を編集し、Enter キーを押す方法です。 または、列ヘッダーをダブルクリックして、正しい名前で名前を上書きすることもできます。

先頭の 2 行を削除 (スキップ) してから列を正しい名前に変更することでも、この問題を回避できます。

先頭の行を削除する

データを整形するときに、上位の行の一部を削除することが必要な場合があります。たとえば、空白である場合や、レポートに不要なデータが含まれている場合などです。

引き続き SalesTarget の例で、1 行目が空白 (データが含まれていない) であり、2 行目には不要になったデータが含まれていることに注意してください。

上位の行の削除

これらの余分な行を削除するには、[ホーム] タブの [行の削除]>[上位の行の削除] を選択します。

上位の行を削除する機能

列の削除

不要な列を削除することは、データ整形プロセスの重要な手順です。  列の削除は、できるだけ早くに行うことをお勧めします。 列を削除する 1 つの方法は、データ ソースからデータを取得するときに列を制限することです。 たとえば、SQL を使用してリレーショナル データベースからデータを抽出する場合は、SELECT ステートメントで列リストを使用して、抽出する列を制限することをお勧めします。

テーブル間のリレーションシップが確立されている場合は特に、プロセスの後の方ではなく早い段階で列を削除することをお勧めします。 不要な列を削除すると、必要なデータに集中しやすくなり、Power BI Desktop セマンティック モデルとレポートの全体的なパフォーマンスを向上させるのに役立ちます。

各列を調べて、それに含まれるデータが本当に必要かどうかを確認します。 レポートでそのデータを使用する予定がない場合、その列はセマンティック モデルに価値を加えるものではありません。 そのため、その列を削除する必要があります。  時間の経過と共に要件が変化した場合は、後からいつでもその列を追加できます。

列を削除するには、2 つの方法があります。 1 つ目は、削除する列を選択してから、[ホーム] タブで [列の削除] を選択する方法です。

列の削除機能

または、保持する列を選択してから、[ホーム] タブで、[列の削除]>[他の列の削除] を選択することもできます。

他の列の削除機能

列のピボットを解除する

ピボット解除は、Power BI の便利な機能です。 この機能は任意のデータ ソースのデータで使用できますが、ほとんどの場合は、Excel からデータをインポートするときに使用します。 次の例では、売上データを含むサンプル Excel ドキュメントを示します。

ピボット解除が必要な Excel データ

データは最初は意味があったかもしれませんが、2018 年と 2019 年から結合されたすべての売上の合計を作成するのは困難です。 目標は、Power BI で次の 3 つの列のデータを使用することです: MonthYearSalesAmount

Power Query にデータをインポートすると、次の図のようになります。

元の Power Query データ

次に、最初の列の名前を Month に変更します。 Excel でのヘッダーのラベルは 2018 列と 2019 列であったため、この列のラベルには誤ったラベルが付けられていました。 2018 列と 2019 列を強調表示し、Power Query で [変換] タブを選択して、[ピボット解除] を選択します。

Power Query でのピボット解除の結果

Attribute 列の名前を Year に、Value 列の名前を SalesAmount に変更できます。

ピボットを解除すると、後でデータに DAX メジャーを作成するプロセスが効率化されます。 このプロセスを完了すると、データを Year 列と Month 列でスライスする簡単な方法が作成されます。

列のピボット

整形するデータがフラットである場合 (つまり、多数の詳細があるが、どのような方法でも編成またはグループ化されていない場合)、構造がないと、データ内のパターンを識別する能力が複雑化する可能性があります。

列のピボット機能を使用して、ご自分のフラット データを、列内の一意の値ごとに集計値を含むテーブルに変換できます。 たとえば、この機能を使用し、CountMinimumMaximumMedianAverageSum などのさまざまな算術関数を使用してデータを集計することができます。

SalesTarget の例では、列をピボットして、各製品カテゴリの製品サブカテゴリの数量を取得できます。

[変換] タブで、[変換] > [ピボット列] を選択します。

列のピボット

表示された [ピボット列] ウィンドウで、[値列] のリストから Subcategory name などの列を選択します。 詳細オプションを展開し、[値の集計関数] のリストから [カウント (すべて)] などのオプションを選択して、[OK] を選択します。

値の集計関数

次の図は、列のピボット機能でデータの編成方法を変更する方法を示しています。

列のピボット機能ではデータの編成方法を変更する

Power Query エディターで、データを整形するために実行したすべてのステップが記録され、ステップのリストが [クエリの設定] ペインに表示されます。 必要な変更をすべて行ったら、[閉じて適用] を選択して Power Query エディターを閉じ、セマンティック モデルに変更を適用します。 ただし、[閉じて適用] を選択する前に、Power Query エディターでデータをクリーンアップおよび変換する追加のステップを実行することができます。  追加のステップについては、このモジュールで後ほど説明します。