✳️

【Power Query】複数のテーブルを結合し、ID列に一意のランダム数値を生成する

2024/07/28に公開

はじめに


上記のようにそれぞれの1つのシートに対して1つのテーブルがあり、テーブルごとにIDが振られている場合、最終的にこれを全て1つのテーブルにし、さらに一意なIDの値を振り直したい場合の手順についてまとめている。

1.テストデータの準備

https://zenn.dev/code_journey_ys/articles/1140babfc18a11
上記記事で詳細は解説している。

2.テストデータのテーブル化

  • データの範囲を選択肢、それぞれのシートをテーブルにしていく

3.テーブルに名前を付ける

  • テーブルを選択した状態でテーブルに名前を付ける(シート名を同じが良いか)

4.Power Queryへインポート

  • テーブルを選択した状態で、「データ」タブの「テーブルまたは範囲から」を選択。

    ※または「データ」タブの「データの取得」-「ファイルから」-「Excelブックから」を選択。

  • パワークエリエディタでテーブルが読み込めているか確認する

5.Power Query上でシートの一覧を取得

  • 適用したステップの中の「ソース」をクリックする。

  • エディタ上の数式バーに以下の内容を入力する。

= Excel.CurrentWorkbook()

6.テーブルを展開

  • 表示されているContentカラムの横にあるボタンをクリックする

  • 元の列名をプレフィックスとして使用しますのチェックを外し、OKをクリックする

  • 展開されたか確認する。

7.一意のインデックス列を生成

  • 「列の追加」タブから「カスタム...」をクリックする。

  • 「開始インデックス」と「増分」を1に設定しOKをクリックする。

カスタムで列を追加する場合

カスタム列を追加する

  • 「列の追加」タブからカスタム列の追加ボタンをクリックする

  • カスタム列作成のウィンドウで「列名」と「カスタム列の式」を入力し、OKをクリックする

カスタム列の数式(7桁の数字をランダムに生成し割り付ける)
Number.RoundDown(Number.RandomBetween(1000000, 9999999))

8.データ型の確認

  • クエリのテーブル全体を選択後、変換タブの「データ型の検出」をクリックする。

  • 各カラムのデータ型を確認していく。(違えば修正を行う)

9.Excelシートに読み込む

  • パワークエリエディタ上のホームタブの「閉じて読み込む」をクリックする。

10.ピボットテーブル化

  • Excelの挿入タブからピボットテーブルの「外部データソース」からを選択する。

  • ピボットテーブルのフィールドを好きなように調整する。

    ※インデックスの値から特定の患者を見つけ出すことが可能。

Discussion