初期データの整形
Power BI Desktop の Power Query エディターを使用すると、インポートしたデータを整形 (変換) できます。 列またはテーブルの名前の変更、テキストから数値への変更、行の削除、先頭の行をヘッダーに設定するなどのデータの操作を実行できます。 すべての操作は、元のデータ ソースを更新せずに実行されます。 確実にニーズを満たし、レポートでの使用に適したものにするために、データを整形することが重要です。
2 つのソースからの生の売上データを Power BI モデルに読み込みました。 一部のデータは、営業チームが Microsoft Excel で手動で作成した .csv ファイルから取得されました。 その他のデータは、組織のエンタープライズ リソース プランニング (ERP) システムへの接続を通して読み込まれました。 ここで、Power BI Desktop でデータを確認すると、データが乱雑になっていることがわかります。一部のデータは必要ではなく、一部のデータは必要なのですが、形式が間違っています。
レポートの作成を開始する前に、Power Query エディターを使用してこのデータをクリーンアップし、整形する必要があります。
Power Query エディターの利用を開始する
データの整形を開始するには、Power BI Desktop の ホーム タブで データの変換 オプションを選択して Power Query エディターを開きます。
Power Query エディターでは、選択したクエリのデータが画面の中央に表示され、左側のクエリ ペインに使用可能なクエリ (テーブル) が一覧表示されます。
Power Query エディターで作業する場合、データを整形するために実行するすべての手順が記録されます。 それ以降、クエリでデータ ソースに接続するたびに、自動的にそれらのステップが適用されるので、データは常に指定したとおりに整形されます。 Power Query エディターはデータのビューのみを変更するため、元のデータ ソースは変更されないことを確信できます。 画面の右側の クエリ設定 ペインに、クエリのプロパティと共に手順のリストが表示されます。
Power Query エディターのリボンには、データの選択、表示、および成形に使用できる多数のボタンが含まれています。
利用可能な機能の詳細については、クエリ リボンを参照してください。
注
Power Query エディターでは、右クリックのコンテキスト メニューとリボンの 変換 タブに、同じオプションが多数用意されています。
列のヘッダーと名前の特定
最初のデータを成形する第 1 の手順は、データ内の列ヘッダーと列名を識別することです。次に、場所を評価してそれらが正しい場所にあることを確認します。
次のスクリーンショットでは、SalesTarget の csv ファイル内のソース データに (サンプルの提供なし)、製品別にカテゴリ分けされたターゲットと、月別に分割されたサブカテゴリが含まれており、それらの両方が列として編成されています。
ただし、データが予期したとおりにインポートされなかったことがわかります。
その結果、データを読み取るのが困難になっています。 列ヘッダーが別の行にあるため (赤でマーク)、現在の状態のデータで問題が発生しています。また、Column1、Column2 のような、わかりにくい名前の列がいくつかあります。
列のヘッダーと名前がどこにあるかを確認したら、データを再編成するための変更を加えることができます。
ヘッダーのレベル上げ
Power BI Desktop でテーブルを作成すると、Power Query エディターはすべてのデータがテーブル行に属していると想定します。 ただし、データ ソースにある先頭の行に、列名が含まれている場合があります。これは、前の SalesTarget の例で発生したことです。 この間違いを修正するには、最初のテーブル行を列ヘッダーに昇格する必要があります。
ヘッダーを昇格させるには、ホーム タブで 1 行目をヘッダーとして使用オプションを選択するか、Column1 の横にあるドロップダウン ボタンを選択してから 1 行目をヘッダーとして使用を選択するという 2 つの方法があります。
次の図は、1 行目をヘッダーとして使用機能のデータに対する影響を示しています。
列名の変更
データを整形するための次の手順は、列のヘッダーを調べることです。 1 つ以上の列のヘッダーが間違っていることや、ヘッダーにスペルミスがあること、ヘッダーの名前付け規則が一貫していなかったりユーザーにわかりにくかったりすることが見つかる可能性があります。
1 行目をヘッダーとして使用機能の影響を示す前のスクリーンショットを参照してください。 サブカテゴリの名前データを含む列の列ヘッダーが月になっていることに注目してください。 この列ヘッダーは正しくありません。そのため、名前を変更する必要があります。
列ヘッダーの名前を変更するには、2 つの方法があります。 1 つの方法は、ヘッダーを右クリックし、名前の変更を選択して名前を編集し、Enter キーを押す方法です。 または、列のヘッダーをダブルクリックし、正しい名前で名前を上書きできます。
先頭の 2 行を削除 (スキップ) してから列を正しい名前に変更することでも、この問題を回避できます。
先頭の行を削除する
データを整形するときに、上位の行の一部を削除することが必要な場合があります。たとえば、空白である場合や、レポートに不要なデータが含まれている場合などです。
引き続き SalesTarget の例で、1 行目が空白 (データが含まれていない) であり、2 行目には不要になったデータが含まれていることに注意してください。
これらの余分な行を削除するには、ホーム タブで 行の削除>上位の行の削除 を選択します。
列の削除
データ成形プロセスでの重要な手順は、不要な列を削除することです。 列の削除は、できるだけ早くに行うことをお勧めします。 列を削除する 1 つの方法は、データ ソースからデータを取得するときに列を制限することです。 たとえば、SQL を使用してリレーショナル データベースからデータを抽出する場合は、SELECT ステートメントで列リストを使用して、抽出する列を制限することをお勧めします。
列の削除はプロセスの後半よりも初期の段階で行うのがベストです。特に、テーブル間に確立したリレーションシップがある場合にこれが当てはまります。 不要な列を削除すると、必要なデータに集中できるようになり、Power BI Desktop セマンティック モデルとレポートの全体的なパフォーマンスが向上します。
各列を調べて、それに含まれるデータが本当に必要かどうかを確認します。 そのデータをレポートで使用する予定がない場合、その列はセマンティック モデルに値を追加しません。 そのため、その列を削除する必要があります。 時間の経過と共に要件が変化した場合は、後からいつでもその列を追加できます。
列を削除するには、次の 2 つの方法があります。 最初の方法は、削除する列を選択し、ホーム タブで 列の削除 を選択する方法です。
または、保持する列を選択し、ホーム タブで 列の削除>その他の列の削除 を選択することもできます。
列のピボットを解除する
ピボット解除は Power BI の便利な機能です。 この機能は任意のデータ ソースのデータで使用できますが、ほとんどの場合は、Excel からデータをインポートするときに使用します。 次の例では、売上データを含むサンプル Excel ドキュメントを示します。
データは最初は意味があったかもしれませんが、2018 年と 2019 年から結合されたすべての売上の合計を作成するのは困難です。 目標は、Power BI でこのデータを Month、Year、SalesAmount の 3 つの列で使用することです。
データを Power Query にインポートすると、次の図のようになります。
次に、最初の列の名前を Month に変更します。 Excel でのヘッダーのラベルは 2018 列と 2019 列であったため、この列のラベルには誤ったラベルが付けられていました。 2018 列と 2019 列を強調表示し、Power Query の 変換 タブを選択して、ピボット解除 を選択します。
Attribute 列の名前を Year に、Value 列の名前を SalesAmount に変更できます。
ピボットを解除すると、後でデータに DAX メジャーを作成するプロセスが効率化されます。 このプロセスを完了すると、データを Year 列と Month 列でスライスする簡単な方法が作成されます。
列のピボット
整形するデータがフラットである場合 (つまり、多数の詳細があるが、どのような方法でも編成またはグループ化されていない場合)、構造がないと、データ内のパターンを識別する能力が複雑化する可能性があります。
列のピボット機能を使用すると、フラット データを、列内の一意の値ごとに集計値を含むテーブルに変換できます。 たとえば、この機能を使用して、カウント、最小、最大、中央値、平均、または合計などのさまざまな計算関数を使用してデータを集計できます。
SalesTarget の例では、列をピボットして、各製品カテゴリの製品サブカテゴリの数量を取得できます。
変換 タブ ツールバーで、変換>列のピボット を選択します。
表示された 列のピボット ウィンドウで、値列リストから Subcategory name などの列を選択します。 詳細オプションを展開し、値の集計関数の一覧からカウント (すべて) などのオプションを選択して、OK を選択します。
次の図は、列のピボット機能によってデータの編成方法がどのように変化するかを示しています。
Power Query エディターは、データを整形するために実行するすべての手順を記録し、手順のリストが クエリ設定 ペインに表示されます。 必要な変更をすべて行った場合、閉じて適用 を選択して Power Query エディターを閉じ、変更をセマンティック モデルに適用します。 ただし、閉じて適用 を選択する前に、Power Query エディターでデータをクリーンアップして変換するための追加の手順を実行できます。 これらの追加手順については、このモジュールで後述します。