Excelで作成された表から必要なデータを検索したい。
そんな場面はよくあると思います。
今回は社員リストを使ってさまざまな検索方法と使い分け方を紹介します!
代表的な検索方法
社員番号から氏名を検索したい。そんな時によく使うのが、以下3つの関数です。
1.VLOOKUP関数
2.XLOOKUP関数
3.INDEX関数とMATCH関数の組み合わせ
今回は以下のように、検索したい社員IDをG1セルに入力するというシチュエーションで、各関数の使い方を紹介します。
VLOOKUPの使い方
書式は以下になります。
=VLOOKUP(検索値, 範囲, 列番号 [,検索方法])
実際に検索をするときは、以下のような書き方をします。
=VLOOKUP(G1,A2:B11,2,FALSE)
考え方は以下のようになります。
A2:B11(⇒ 表の社員IDと氏名)の中から、G1(⇒ 3)を探してください。
見つかった場合は、A列から数えて2列目(⇒ B列)にある同じ行数の値(⇒ B4セルの値)を取り出してください。
という意味合いになります。そのため、結果的に「佐藤 花子」を取り出すことができます。
ちなみに、検索方法はFALSEを指定することが多いです。これは検索値を「完全一致」で調べるように指定しています。
XLOOKUPの使い方
書式は以下のようになります。
=XLOOKUP(検索値, 検索範囲, 戻り配列, [見つからない場合], [一致モード], [検索モード])
実際に検索をするときは、以下のような書き方をします。
=XLOOKUP(G1,A2:A11,B2:B11)
考え方は以下のようになります。
A2:A11(⇒ 表の社員ID)の中から、G1(⇒ 3)を探してください。
見つかった場合は、B2:B11(⇒ 表の氏名)の中から、同じ行数の値(⇒ B4セルの値)を取り出してください。
という意味合いになります。そのため、結果的に「佐藤 花子」を取り出すことができます。
XLOOKUP関数の使い方は「【Excel】XLOOKUP関数を使ってみよう!」でもご紹介しています。ぜひご覧ください!
INDEXとMATCHの使い方
これら二つの関数を組み合わせることで、検索することができます。
大きな流れは、以下のようになります。
1.MATCH関数を利用して、調べたい社員IDが何行目にあるのかを探す
2.INDEX関数を利用して、行と列を指定して値を取り出す
それでは順番に見ていきましょう!
まずはMATCH関数の使い方です。
=MATCH(検索値, 検索範囲, [照合の型])
実際に検索をするときは、以下のような書き方をします。
=MATCH(G1,A2:A11)
考え方は、以下のようになります。
A2:A11(⇒ 表の社員ID)の中から、G1(⇒ 3)を探してください。
見つかった場合は、その行番号を教えてください。
という意味合いになります。見つけたセルはA4セルにあるので、結果的に「4」を取り出すことができます。
続いてINDEX関数の使い方です。
=INDEX(配列, 行番号, [列番号])
今回の行番号はMATCH関数を使って指定するため、以下のような書き方をします。
=INDEX(B2:B11,MATCH(G1,A2:A11))
考え方は以下のようになります。
B2:B11(⇒ 表の氏名)からMATCH関数の結果(⇒ 4行目)と同じ行番号にあたるセルの値を取り出してください。という意味合いになります。
つまり、B4セルの値を表すため、結果的に「佐藤 花子」を取り出すことができます。
結局、どの方法を使えばいいの?
それぞれの特徴を整理してみましょう。
方法 | 特徴 |
---|---|
VLOOKUP関数 | 垂直方向にデータを検索する。 検索値は左端の列にある必要がある。 ※今回の例だと、氏名から社員番号の検索は不可能 |
XLOOKUP関数 | 垂直方向および水平方向にデータを検索する。 検索値がどの列にあっても検索可能。 エラー処理が簡単に行える。 2019年8月28日から利用できるようになった。 |
INDEX関数とMATCH関数の組み合わせ | 垂直方向および水平方向にデータを検索できる。 検索値がどの列にあっても検索可能。 複数条件での検索が可能。 |
XLOOKUP関数はVLOOKUP関数をより使いやすくしたものになりますが、Excel 365およびExcel 2019以降のバージョンでないと利用することができないので注意してください。
まとめ
- シンプルな検索をする場合
⇒ VLOOKUP関数でよいが、表のフォーマットによっては検索できない場合がある。 - 柔軟な検索やエラー処理が必要な場合
⇒ XLOOKUP関数が便利だが、Excelのバージョンによっては利用できない。 - 柔軟な検索や条件が複雑な場合
⇒ INDEXとMATCHの組み合わせを使うと便利。
となります。
一言で検索といっても、さまざまな方法があります。
探したいものに合わせて、検索方法を変えていきましょう!