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

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

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

4.1 クエリのマージ

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

テーブル1:

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

テーブル2:

ID 年齢
1 28
2 35

これらのテーブルを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

ピボット後のテーブル:

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

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

氏名 科目 得点
山田太郎 数学 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. 次のテーブルがあります。

    氏名

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

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

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

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

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

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

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

PAGE TOP
タイトルとURLをコピーしました