ExcelのXLOOKUPでテーブルの列名を使って指定する方法の覚書

はじめに

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やMS認定資格取得の推進役もやっています。資格としてはAzure Solutions Architect Expertを所持。Power AutomateやLogic Appsで楽をするのが好きです。

執筆記事一覧