4章: データの結合と整理

4章: データの結合と整理

この章では、Power Queryを使ってデータを結合や整理する方法について学びます。具体的には、クエリのマージ、アペンド、グループ化と集計、ピボットとアンピボット、階層化されたデータの操作といったトピックを取り上げます。

4.1 クエリのマージ

Power Queryでは、2つのテーブルを1つに結合するマージ機能があります。結合方法には、内部結合、左外部結合、右外部結合、完全外部結合などがあります。以下の例を見てみましょう。

テーブル1:

ID氏名
1山田太郎
2鈴木次郎

テーブル2:

ID年齢
128
235

これらのテーブルをIDをキーにして内部結合すると以下のようになります。

ID氏名年齢
1山田太郎28
2鈴木次郎35

4.2 クエリのアペンド

クエリのアペンドは、複数のクエリを縦に連結する機能です。例えば、以下の2つのテーブルをアペンドすると、次のようになります。

テーブル1:

ID氏名
1山田太郎
2鈴木次郎

テーブル2:

ID氏名
3佐藤花子
4高橋洋子

アペンド後のテーブル:

ID氏名
1山田太郎
2鈴木次郎
3佐藤花子
4高橋洋子

4.3 グループ化と集計

Power Queryでは、データをグループ化して集計することができます。例えば、以下のテーブルから都道府県別の人数を集計することができます。

元のテーブル:

氏名都道府県
山田太郎東京都
鈴木次郎神奈川県
佐藤花子東京都
高橋洋子千葉県

グループ化と集計後のテーブル:

都道府県人数
東京都2
神奈川県1
千葉県1

4.4 ピボットとアンピボット

ピボットは、データを転置させる操作で、行を列に、列を行に変換します。逆に、アンピボットは列を行に変換します。

元のテーブル:

氏名科目得点
山田太郎数学80
山田太郎英語75
鈴木次郎数学90
鈴木次郎英語85

ピボット後のテーブル:

氏名数学英語
山田太郎8075
鈴木次郎9085

アンピボット後のテーブル:

氏名科目得点
山田太郎数学80
山田太郎英語75
鈴木次郎数学90
鈴木次郎英語85

4.5 階層化されたデータの操作

Power Queryでは、階層化されたデータ(例えば、JSON形式やXML形式のデータ)を扱うことができます。これらのデータを取り扱う際には、展開、集約、フィルタリングなどの操作が可能です。

例えば、以下のようなJSON形式のデータがあるとします。

[
  {
    "name": "山田太郎",
    "scores": [
      {"subject": "数学", "score": 80},
      {"subject": "英語", "score": 75}
    ]
  },
  {
    "name": "鈴木次郎",
    "scores": [
      {"subject": "数学", "score": 90},
      {"subject": "英語", "score": 85}
    ]
  }
]

このJSONデータをPower Queryで展開して、以下のようなテーブル形式に変換することができます。

氏名科目得点
山田太郎数学80
山田太郎英語75
鈴木次郎数学90
鈴木次郎英語85

さらに、このテーブルを操作して、各生徒の平均得点を算出することもできます。

氏名平均得点
山田太郎77.5
鈴木次郎87.5

このように、Power Queryを使えば、階層化されたデータを効率的に操作し、様々な集計や分析が可能になります。

この章では、データの結合と整理に関する基本的な操作方法を学びました。具体的には、クエリのマージ、アペンド、グループ化と集計、ピボットとアンピボット、階層化されたデータの操作について解説しました。これらの機能を駆使することで、データを効率的に整理し、より深い分析が可能になります。

演習問題

以下の演習問題に取り組んで、データの結合と整理に関する知識を確認しましょう。

  1. 次の2つのテーブルがあります。

    テーブルA:

    ID氏名
    1山田太郎
    2鈴木次郎

    テーブルB:

    ID科目得点
    1数学80
    1英語75
    2数学90
    2英語85

    テーブルAとテーブルBを結合して、氏名、科目、得点の列を持つ新しいテーブルを作成してください。どの結合方法を使用するのが最適でしょうか?

  2. 次のテーブルがあります。
    氏名科目得点
    山田太郎数学80
    山田太郎英語75
    鈴木次郎数学90
    鈴木次郎英語85

    上記のテーブルを使って、各生徒の平均得点を求める新しいテーブルを作成してください。

  3. 次のテーブルがあります。

    氏名

    氏名数学英語
    山田太郎8075
    鈴木次郎9085

    上記のテーブルを使って、ピボット操作を行い、以下の形式のテーブルに変換してください。

    科目山田太郎鈴木次郎
    数学8090
    英語7585
  4. 次のテーブルがあります。
    ID名前性別年齢
    1山田太郎男性25
    2鈴木次郎男性30
    3佐藤花子女性28

    上記のテーブルを使って、性別ごとの年齢の平均値を求める新しいテーブルを作成してください。

  5. 次のテーブルがあります。
    商品名カテゴリー価格
    りんごフルーツ200
    バナナフルーツ100
    オレンジフルーツ150
    じゃがいも野菜80
    にんじん野菜120
    キャベツ野菜90

    上記のテーブルを使って、カテゴリーごとの商品数と総価格を求める新しいテーブルを作成してください。

各問題を解決する際に、本章で学んだ知識を活用しましょう。演習問題を通じて、データの結合と整理に関するスキルを確実に身につけてください。