【Power Query】横持ちデータを縦持ちデータに変換

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

下記の図でように
① 他エクセルデータの取り込み
② Power Queryでデータの整理
③ ピボットテーブルの作成
という手順を紹介しています。

![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/9a2038b7-ef67-b52b-6bdf-6e1399927b3c.png)



# データの取り込み

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

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


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

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/65448f03-bae8-76ec-d467-0729542495e6.png)


インポートすると下記の画面に遷移するので、
取り込みたいシートを選択して、`データの変換` をクリック。

データをそのまま取り込みたい場合は `読み込み` をクリックしてください。
 

![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/84e8ca3b-2fcf-d1d9-5b44-eb7d052825d2.png)


下記画面のようにPower Queryが開かれます。

![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a0200a87-0b93-c271-09a5-fa82749d31dc.png)



# Power Queryでデータ整理

大まかな手順としては下記の流れで処理をしていきます。

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


## ①「日付1」～「担当3」をアンピボットしてデータを縦に並べる

「日付1」～「担当3」を選択して、`列のピボット解除` をクリック。

![図6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/5bc0debe-cd66-6f1e-a696-603758e4fe22.png)



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

![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/154bef11-4f41-3240-c3b4-f586db687a71.png)



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

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

![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/360f7672-25a5-29d6-dc27-2195a328e4ed.png)



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

![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/b1273747-4150-3648-4024-214fc5f62bab.png)


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

![図9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/519c04fa-07ff-93d2-73aa-7ca31019cc74.png)


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


![図10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a0515e23-0425-a8cb-31cd-d505facd31b0.png)


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

![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/0313a256-81b1-97fa-daf6-d635d76ef5b9.png)


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

![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/7dd6a37b-44b9-1f6d-eca2-a5754c73a0c4.png)




## ③ 結果の項目をピボット化する

このままでもピボットで集計はできますが、各項目の0,1データにした方が
ピボットで集計する際に柔軟性が高くなるのでそのデータを作っていきます。

そのためにまず `結果` を複製します。

![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/5ae1c11a-e1fc-7344-8a8f-3d20cf1fdf3a.png)


新しい項目で追加されるので、結果の内容を選択する。

![図16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/38bdc4ee-6e2f-feaf-fa04-422e23f7dd95.png)


![図17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/1cde2d75-d4c0-a5af-f83c-69ccd5e0c079.png)


今複製した結果を使って結果の列をピボット化します。

![図18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/bf60ddb8-66d0-1ee1-b96a-e3e096e5e25f.png)


![図19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/bab364e8-78d6-c452-f03e-d63e7f6c57fb.png)


これで、結果に入っていた項目名の0,1データが作成されます。

![図20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/4266ab28-f865-71c4-aa08-af3daaf3dc1f.png)

欲しい項目名が決まっている場合は上記図の③の箇所を直接入力することで、
今結果にはないけれど項目は作っておきたいという内容を作成することが可能です。

直接していしたい場合はリストを入れてあげます。
Power Queryでのリストは下記のように記載します。

```
{"data1", "data2", "data3", "data4"}
```

![図22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/5c6c0604-b22b-bf55-7812-af5ead2db99f.png)


以上でデータの整理は完了です。
`ホーム` の `閉じて読み込み` でエクセルに取り込むことが可能です。

![図21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/f533e06c-a0fc-9fde-413a-39b9d2146a73.png)



# ピボットテーブルの作成

エクセルへの取り込みを行うと下記の状態になります。
右側のクリエ一覧から今取り込んだクエリ名で右クリック。

![図30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/d3e6cd0e-458f-971a-dd8e-b3768b3b953c.png)


読み込み先をクリック。

![図25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/aff778dc-5a4b-7666-ab1f-ffc41965920b.png)

デフォルトだと下記図の `このデータをデータモデルに追加する` が選択されていないので、
こちらのチェックボックスを選択してください。

![図26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/e3d6f7a3-1cbe-bcd1-9f4e-9024ec12a926.png)


ピボットテーブルを作りたいセルを選択して、
`挿入` からピボットテーブルの挿入を選択。

![図27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/00343c12-02e9-6cfc-cba6-3b1944d007a7.png)

今作成したクエリが表示されているので、欲しい項目を追加すれば見たいデータが表示されます。

![図31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/1f025201-dec7-d504-8b9d-b50b50a3c8da.png)