Excelで複数のデータベース・名簿を結合するならXLOOKUP関数

  • URLをコピーしました!

複数のデータベース・名簿といったものは、ExcelのXLOOKUP関数で結合できます。

※Excelで結合 by SIGMA fp

複数のデータベースがある場合

たとえば、次のように、
・左→氏名・生年月日・性別のデータベース
・右→氏名・生年月日・コード(16桁)
といったものがあるとします。

右側にあるコードを、左側に入れたいとき、どうするか。

右側のデータをプリントアウトして、それを見ながら一生懸命入力することもできます。
しかし、時間はかかりますし、人の目でやることでミスもありうるでしょう。

何よりも大変です。
データ数が多くなれば、なおさらでしょう。
少なくとも私はやりたくありません。

公務員だったときも、こういった事例はありました。
それまでは手入力していたようですが、私が当時使ったのは、ExcelのVLOOKUP関数。
今もVLOOKUP関数で解決できますが、今は、もっとかんたんなXLOOKUP関数があります。

今回はXLOOKUP関数で解説しました。
(Excelのバージョンによっては、XLOOKUP関数を使えない場合もあります)

 

ExcelのXLOOKUP関数で結合

XLOOKUP関数は、「LOOKUP(探す)」が含まれているとおり、1行のデータの中から、1つの項目を探し、それを見つけたら、他の項目を表示することができます。

今回の事例は、左側のデータに、16桁のコードを入力するというものです。

たとえば、「山口 弘人」を、「氏名」「生年月日」「コード」というデータ(右側)から探し、

見つかったら、その同じ行にある「コード」を表示します。
人間が目で見ながら、探し、入力することと同じ結果です。
しかしながら、このXLOOKUP関数を使えば、ミスはありませんし、人間より、圧倒的に高速で処理できます。

念のため、今回の事例では、同姓同名の可能性もあるので、氏名と生年月日をくっつけたもので探します。
この場合も同じデータがあるかもしれませんが、その確率はかなり減るはずです。
(現実的にはくっつけるデータをもう少し増やすことになるでしょう)

くっつけるには、&を使います。
(日付は、このようにくっつけると、5桁の数値になります。)
これをキーにして、XLOOKUP関数で探しましょう。

=XLOOKUP(
と入力し、E2を選択します。
これを探すわけです。

次に、そのデータがある列を指定しましょう。
D列です。

最後に、見つかった場合に表示する列を指定します。
Ç列の「コード」です。

これで、コードが無事表示されます。

左側の「氏名」「姓名月日」「性別」と、右側の「氏名」「生年月日」「コードというデータベースをくっつけるということになるのです。

マッチングといい、よく使います。
(現実的には、氏名の空白をなくすという処理をしておいたほうがいいでしょう)

YouTubeにもアップしました。

脱・Excelの前に脱・入力

脱Excel(脱・Excel)という言葉をよく見かけます。
Excelで変になにかしようとせずに、システムやソフト(ときに高額な)を入れましょうということでしょう。

ただ、Excelにはそれなりの可能性があります。
マクロとまでは言いませんが、
・XLOOKOUP関数
・ピボットテーブル
を使い、
・ファイル、シートを極力減らす
・データを整える(半角全角を混合しない、表記を統一するなど)
ということを心がけましょう。

こういった本も書いていますので、参考にしていただければ。
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる

「脱」ということで言えば、脱・入力を心がけたいものです。
入力すれば時間もかかりますし、ミスの可能性も高くなります。

「Excelを極力使わない」のではなく、「極力入力しない」ようにしましょう。
私はデータを入力すれば、寿命が1秒縮まると考えています。

なお、この事例(氏名、コード等)をつくるのも、ほぼ入力していません。
入力したら大変ですので。
RANDBETWEEN関数を使っています。

 



■編集後記
昨日は、新宿御苑へ。
事前予約・決済で混乱もありません。
少なくとも平日は。

「1日1新」
SIGMA fp L 予約
Anker PowerPort III 65W Pod Lite

■娘(4歳0ヶ月)日記
20以上数えられるようになったのですが、なぜかやはり17が抜けがちです。
保育園のクラスのみんな(21名)の写真で、数えるのを練習しています。

 

  • URLをコピーしました!