雑・Excel入門試論 - 脱VLOOKUPの思考 16 - Power Query - 変換

　読み込まれたデータをそのまま利用することは多くなく、8割以上は何かしらの整形・変換が必要だと思います。
　Power Queryは、強力なETLツールです。ETLとは、抽出(Extract)、変換(Transform)、取込（Load)の3つを指します。前回は抽出部分について説明しましたので、変換について2回に渡って説明します。

# データのプロファイリング
　まず、データの品質を調べます。表示タブの「列の品質」、「列の分布」にチェックを入れると、以下のような表示が現れます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/9d95a8f5-783a-5e12-6ecc-1dc681ee7ce7.png"/>

　1列目のNoは全て一意の値が5つあり、エラーも空もありません。2列目のValは、4種類の値があり、一意の値はnull,12,13の３つです。null（空）の値は全体の20%で、有効な値はそれを除く80%になります。

　後でキーとして扱う項目は全て一意になっていることが大切です。その他のデータ項目は、エラーや空（null）の値がないことが望ましいです。ただし、データの種類によって、必ずしもそうならないものもあります。

　データ処理を行う前に、この情報を確認するようにしてください。
　この情報は、上位1000行の値で作成されていますが、それ以上のデータがあり、確認が必要な場合は、ステータスバーの「上位1000行に基づく列のプロファイリング」のメッセージをクリックし、「データセット全体に基づく列のプロファイリング」を選択します。ただし、データ数が多い場合、時間がかかります。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/4f4b53e4-6ac4-c3be-6e28-a68e25cbbce2.png"/>

# 変換の例を与えると変換方法を推理してくれる
　「列の追加」タブで、「例からの列」の「選択範囲から」を使用すると、変換方法を推理してくれます。下の例では、チェックボックスの付いている列「Val」の「Hello World」を元に、「World」という値になるという例を入力すると、それ以降の列の値を推理して灰色の文字で表示してくれます。うまく推理してくれない時は、2行目、3行目と例を示してやるとうまくいくことがあります。複雑な変換はできないことがあります。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/b9113745-91b1-4609-0d41-e39c070d6ba8.png"/>

# 計算列の追加
　自分で処理を記述して列を追加するには、「カスタム列」を選択します。
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/7d9773d7-c136-3bdd-5cb3-1f3e640baa2d.png"/>

# 意味的変換
　元のデータには、男性、女性、不明を0,1,2などのようなコードで入れてある場合、男性、女性、不明という表記に変えるか、男性、女性、不明という値を持つ項目を追加してやるほうがいい場合があります。

# 重複排除
　データの重複がある場合、重複を削除しなければならないときがあります。項目名を右クリックし、「重複の削除」を行います。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/6279fe7c-644c-f5d9-fef7-8f1e4308e7aa.png"/>

# データソースの隙間や空白セルをなくす
　データソース内の空白の列は、事前に削除しておかなければなりません。空白の列がある場合、殆どの場合テーブルの作成に失敗します。

　データソース内の空の行を、事前にすべて削除して置かなければなりません。空白の行があると、データの範囲を特定できません。

　データソースの空白セルは、できるだけ埋めておきます。必須ではありませんが、後処理でエラーが発生しやすくなります。可能な限り、論理的な欠落値コードを使って表現することが推奨されます。

:::note info
隙間や空白のセルをなくすことは、見た目が美しいレポートを作りたい人には嫌がられるかもしれませんが、価値のあるデータを記録し活用できるようにするためには、重要な意味があります。
:::

# 作業の文書化
　Power Queryを使うメリットの1つに、複数の作業のステップを見ることができることです。右側に表示されている「適用のステップ」の名前を、作業の内容がわかるように変更したり、プロパティに説明を書いておけば保守がしやすくなります。

<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/35276f81-18e0-ffe4-3951-be61ba3f5ca8.png"/>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/19d71a69-3c1e-f220-b1fd-08455028c4e2.png)


# コンテンツ
- [雑・Excel入門試論 - 脱VLOOKUPの思考 01 - ブック - 仕様と制限](https://qiita.com/spumoni/items/189004c01181c50a4821)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 02 - ブック - オプション](https://qiita.com/spumoni/items/75955db69cc34695de14)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 03 - ワークシート](https://qiita.com/spumoni/items/5408cae114034be528c4)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 04 - セル - 文字列型](https://qiita.com/spumoni/items/4ab1d7067418886c0582)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 05 - セル - 数値データ](https://qiita.com/spumoni/items/970b4b39a5a2185992ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 06 - セル - 日時データ](https://qiita.com/spumoni/items/9f270e181fbc45503759)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 07 -  リンクされたデータ型](https://qiita.com/spumoni/items/ed59d15753d992c3a630)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 08 - セル - 計算式・関数](https://qiita.com/spumoni/items/ae339c97627110e2134e)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 09 -  セル - 数値の書式設定](https://qiita.com/spumoni/items/1b3134d4b0284465976f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 10 - セル - 日付と時刻の書式設定](https://qiita.com/spumoni/items/6eb602f69956a5e1502f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 11 - セル - 条件付き書式](https://qiita.com/spumoni/items/04bd8e24284daef6f27a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 12 - テーブル - テーブルの作成と入力規則](https://qiita.com/spumoni/items/f23beca01c5093c81c47)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 13 - テーブル - ソートとスライサー](https://qiita.com/spumoni/items/b66027008c2f9edb853f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 14 - テーブル - 動的配列関数](https://qiita.com/spumoni/items/cc03e898f02b8c3017f7)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 15 - Power Query - エクセルのデータを読み込む](https://qiita.com/spumoni/items/fc38a4ae595b64af87f5)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 16 - Power Query - 変換](https://qiita.com/spumoni/items/100e0e3c6a5a59b03229)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 17 - Power Query - テーブルの結合](https://qiita.com/spumoni/items/debb9ea9b8692ca8fc8c)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 18 パワーピボット - データモデル](https://qiita.com/spumoni/items/08458978e86dc59f18ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 19 パワーピボット - 操作](https://qiita.com/spumoni/items/e7b3f245e87622e9bc79)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 20 パワーピボット - 日付テーブル](https://qiita.com/spumoni/items/340e0fcbc9cd10198112)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 21 DAX - コンテキストとイテレーター](https://qiita.com/spumoni/items/cddc7fa16341e20bafb8)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 22 DAX - CALCULATE](https://qiita.com/spumoni/items/e2218fece1ec01e177b0)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 23 DAX - タイムインテリジェンス](https://qiita.com/spumoni/items/6d8aeb9f80ecafb69c5a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 24 - ダッシュボード - ピボットグラフ（Pivot Chart）](https://qiita.com/spumoni/items/ffb0d57a6272c2e5ad37)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 25 - ダッシュボードの作成](https://qiita.com/spumoni/items/5e57ad587a343857e543)