Power Queryで横持ちデータを縦持ちデータへ変換

## この記事で紹介している内容

下記のように
取り込み前のデータがある状態から日付1～3は日付として1列へ
結果1～3は結果という1列にまとめるという処理を行っていきたいと思います。

| 社名 | 日付1 | 結果1 | 担当1 | 日付2 | 結果2 | 担当2 | 日付3 | 結果3 | 担当3 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 株式会社AAA | 11/25 | 不在 | 佐藤 | 11月25日 | アポイント | 佐藤 |  |  |  |
| 株式会社BBB | 11/25 | 不在 | 佐藤 | 11月25日 | キーマンNG | 佐藤 |  |  |  |
| 株式会社CCC | 11/25 | 不在 | タカハシ | 11月26日 | 不在 | タカハシ | 11月26日 | 受付NG | タカハシ |


Power Queryでデータ整理を行った後は下記のテーブルになります。


| 社名 | 日付 | 結果 | 担当 |
| --- | --- | --- | --- |
| 株式会社AAA | 44160 | 不在 | 佐藤 |
| 株式会社BBB | 44160 | 不在 | 佐藤 |
| 株式会社CCC | 44160 | 不在 | タカハシ |
| 株式会社AAA | 44160 | アポイント | 佐藤 |
| 株式会社BBB | 44160 | キーマンNG | 佐藤 |
| 株式会社CCC | 44161 | 不在 | タカハシ |
| 株式会社CCC | 44161 | 受付NG | タカハシ |

## データの取り込み

エクセルデータで下記のデータ取得をクリック。


![b67f9a0f-2fad-a2c7-f41d-28ab9b32cf18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/f6305f8c-bbfe-7676-98ec-e7a9747799a5.png)


取り込みたいExcelブックを選択

![65448f03-bae8-76ec-d467-0729542495e6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/597ecad2-69e0-16b2-d3be-8eb8a96b8f89.png)


インポートすると下記の画面に遷移するので、
取り込みたいシートを選択して、データの変換をクリック。
データをそのまま取り込みたい場合は読み込みをクリックしてください。

![84e8ca3b-2fcf-d1d9-5b44-eb7d052825d2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a234e1cd-a323-bce1-f5f1-7e6cee6fe351.png)

記画面のようにPower Queryのエディターが開かれます。

![a0200a87-0b93-c271-09a5-fa82749d31dc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/c8407950-b6d8-38f8-f7a0-31c92e6a3ed4.png)


## Power Queryでデータ整理
大まかな手順としては下記の流れで処理をしていきます。

① 「日付1」～「担当3」をアンピボットしてデータを縦に並べる
② 項目整理をしたのちに「日付」～「担当」をピボット化する
③ 結果の項目をピボット化する

### ①「日付1」～「担当3」をアンピボットしてデータを縦に並べる
「日付1」～「担当3」を選択して、列のピボット解除をクリック。

![5bc0debe-cd66-6f1e-a696-603758e4fe22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/faa85d8e-058f-2c8f-90a4-5feb1f48ec2e.png)

すると「日付1」～「担当3」までが縦にならび、属性という項目で縦にならび
「日付1」～「担当3」に入っていた内容が値という項目に一覧で表示されます。

![154bef11-4f41-3240-c3b4-f586db687a71.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/bfd38d4a-494c-92da-750c-67ac36e3a6bf.png)

### ② 項目整理をしたのちに「日付」～「担当」をピボット化する

まず、属性 の項目整理するのに、数値データのみ分割します。

![360f7672-25a5-29d6-dc27-2195a328e4ed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/04308d51-165d-18fa-78d8-44aeebe984eb.png)

数値データが分割されると、属性.1には「日付」、「結果」、「担当」のみ入っている状態になるので、
この列をピボット化していきます。


![b1273747-4150-3648-4024-214fc5f62bab.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/9bf2ee7e-c6a8-24b1-84f6-edd6a19169eb.png)


下記の画面に遷移するので、
値列を 値, 集計関数を集計しないを選択。

![519c04fa-07ff-93d2-73aa-7ca31019cc74.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/0614024c-ba51-3ae4-985a-7ad1019a2b18.png)

下記の図のように、「日付」、「結果」、「担当」の項目が作成されます。

![a0515e23-0425-a8cb-31cd-d505facd31b0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/eb2d68e4-94db-f503-2560-38f30c2ef9c3.png)

これで属性.2は不要なので、削除してください。

![0313a256-81b1-97fa-daf6-d635d76ef5b9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/c94731c1-de23-953d-6bc5-de7b6c34c88d.png)


これで「日付1」～「担当3」を「日付」、「結果」、「担当」という3つの項目にまとめることができました。

今回はエディター画面での操作を見ていきましたがが次回はコードを使ってより汎用的にしていきたいと思います。