はじめに
Excelの複数のテーブルを結合して何かをしたいときはPower Queryの方を使ってしまう事が多いのですが、たまにVLOOKUPなどを使います。
少し前にVLOOKUPより便利だよ、という触れ込みでXLOOKUPという関数が出てきたのですが、テーブルの列名で指定しようとするといつも迷います。
この記事では、ExcelのXLOOKUPでA1:B100のようなセルの範囲ではなく、テーブルの列名を使って指定する方法について書きます。
元のデータ
Usersテーブル
例えば、社員番号、名前、UPNのある社員一覧があるとします。
EmpNo | Name | UPN |
---|---|---|
1111 | User A | userA@example.com |
2222 | User B | userB@example.com |
3333 | User C | userC@example.com |
4444 | User D | userD@example.com |
Formsテーブル
さらに、Formsのアンケート結果をダウンロードしたものがあるとします。
ID | 開始時刻 | 完了時刻 | メール | 名前 | answer1 | answer2 | answer3 |
---|---|---|---|---|---|---|---|
1 | 10:00 | 10:05 | userA@example.com | User A | 1 | 2 | 3 |
2 | 11:00 | 11:05 | userD@example.com | User D | 2 | 3 | 4 |
3 | 12:00 | 12:05 | userB@example.com | User B | 3 | 4 | 1 |
欲しいデータ
ユーザー一覧にアンケート結果が結合されたものが、今回欲しいデータとします。
EmpNo | Name | UPN | answer1 | answer2 | answer3 |
---|---|---|---|---|---|
1111 | User A | userA@example.com | 1 | 2 | 3 |
2222 | User B | userB@example.com | 3 | 4 | 1 |
3333 | User C | userC@example.com | #N/A | #N/A | #N/A |
4444 | User D | userD@example.com | 2 | 3 | 4 |
XLOPOKUPでの書き方
このようになります。(answer1列の場合)
=XLOOKUP([@UPN],Forms[メール],Forms[answer1])
これを色分けして整理してみました。
おわりに
たまにXLOOKUPを使おうとするといつも悩んでしまうので、自分用のメモと思って書きました。
Formsのアンケートをメンバー全員出したかな?と確認する際などに重宝します。
同じように悩んでいる方の参考になれば幸いです。
執筆担当者プロフィール
舟越 匠(日本ビジネスシステムズ株式会社)
人材開発部に所属。社内向けの技術研修をしつつ、JBS Tech Blog編集長を兼任。2024年8月からキーマンズネットでPower Automateの連載を開始。好きなサービスはPower AutomateやLogic Apps。好きなアーティストはZABADAKとSound Horizon。
担当記事一覧