みなさん,こんにちは。
シンノユウキ(shinno1993)です。
食品標準成分表をPower Queryで整形する方法について,連載形式で紹介しています。
前回の記事はこちら
サンプルデータを使用して,インポート→変換→書き出しまでを行いました。サンプルデータだったこともあり,比較的簡単にデータを整形できましたね。
今回から実際の食品標準成分表のデータを使用し,データの整形を行っていきます。まずは,複数のシートに分かれたデータの結合からやっていきましょう。
食品標準成分表の本表では,下記のように食品群ごとにシートが分かれてしまっています:

計算に使用する場合,これらは1つのシートにまとまっていた方が便利です。今回は,これらを1つのシートにまとめる方法を紹介します。
では行きましょう!
Power Queryで複数のシートを縦に結合する方法
Power Queryで1つのブックに含まれる複数のシートを縦に結合していく方法を紹介します。考え方としては,Power Queryでブックを取り込み,ブックに含まれる各シートのデータを展開するといった感じになります。
ステップ①:ファイルをインポートする
まずは,対象となるファイルをインポートします。食品標準成分表のファイルを使用しますので,まだ手元にない方は,下記のリンクからDLしてください:
最初に空のExcelファイルを開いてください。そして,①メニューの「データ」→②「データの取得」→③「ファイルから」→④「ブックから」を選択します:

インポートするファイルを開くためのダイアログが開きますので,①先ほどダウンロードしたサンプルファイルを選択→②「インポート」をクリックします:

ここまでの操作は,前回の記事と同じ内容ですね。
ステップ②:結合するシートを選択する
下記のようなナビゲーターが開きます。今回のインポートの対象は1つのシートでなく,ブックに含まれるすべてのシートですので,ブック自体をインポートします。①ディレクトリの最上位のファイル名(ブック名)を選択→②「データの変換」をクリックします:

ここで,単一のシート名だけ選択しないように注意してください。そうしてしまうと,複数のシートが結合されず,1つのシートをインポートするだけになってしまいます。
さて,「データの変換」をクリックすると,下記のような画面が開きます:

ここでは,インポートするブックのプロパティが示されています。たとえば,「Name」と「Item」はシートや範囲の名前,「Data」は含まれるデータの種類,「Kind」はそれぞれのレコードの種類,「Hidden」は表示の有無を示しています。
このうち,必要なのは「Name」と「Data」だけです。それ以外の情報は不要ですので,データを展開する前に削除してしまいましょう。①「Item」・「Kind」・「Hidden」列をCtrlを押しながら選択→②右クリックし「列の削除」を選択します:

ステップ③:データを展開する
最後に,それぞれのシートのデータを展開します。
①「Data」列にある展開ボタンをクリック→②「OK」をクリックします:

これで下記のように,それぞれのシートに含まれるデータを展開することができました:

下のほうにスクロールして見てみると,18シートすべてのデータが結合されたことを確認できるかと思います。今回はここまでです。
ただし,このままでは不要な行もたくさん含まれています。ヘッダー行が重複してしまっていますし,そもそものヘッダー行となる部分の構造が綺麗でないため整理する必要もあります。これらを処理しないことには,計算用のデータとして使用できません。
次回は,不要な行や列を削除する方法について紹介していきます。
まとめ
今回から実際の食品標準成分表のデータを使用し,複数のシートに分かれたデータの結合を行いました。
次回は,結合したシートに含まれる不要な行や列を削除していきたいと思います。
連載目次
- 食品標準成分表をPower Queryで整形する方法【栄養士向け】
- 栄養士のためのPower Query基礎知識【できること・メリット】
- 栄養士のためのPower Query超入門【インポート・変換・書き出し】
- Power Queryで複数のシートを縦に結合する方法現在のページ
- Power Queryで不要な行・列を削除する方法【データクリーニング】
- Power Queryで値を置換する方法【完全一致と部分一致】
- Power Queryで食品標準成分表の別表のデータを整形する方法
- Power Queryで特定シートのみに含まれるレコードを抽出する方法
- Power Queryで複数のシートを横に結合する方法【クエリのマージ】
- Power Queryでファイルパスを相対パスで指定する方法