小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2025年4月1日【ID:0】

【Excel】VLOOKUP関数で複数の表から検索


通常、VLOOKUP関数では、1つの表から検索して値を抽出します。
しかし、以下の表のように、複数に分かれた表で管理されていることもあるかと思います。

今回は、VLOOKUP関数を活用して、複数に分かれた全ての表から検索して値を抽出する方法について2通りで解説していきます。


方法1

VLOOKUP関数を活用して、1つの表から検索して値を抽出する場合の数式は以下のようになります。

=VLOOKUP(B3,B6:C20,2,FALSE)

ただ、この数式のままですと、対象が見つからない場合にエラーになってしまいますよね。

そのため、まずはエラー対策としてIFERROR関数を組み合わせます。
IFERROR関数の使い方は、以下になります。

=IFERROR(値, エラーの場合の値)
//指定した[値]がエラーの場合は、指定した[エラーの場合の値]を返す

実際に組み合わせると、以下のようになります。

=IFERROR(VLOOKUP(B3,B6:C20,2,FALSE),"")
// エラーの場合は何も表示しない("")

これで、エラーの場合は何も表示されなくなりました。

後は、もう片方の表から抽出する数式を、以下のように「&」で文字結合するだけで、複数の表から検索して値を抽出することができます。

=IFERROR(VLOOKUP(B3,B6:C20,2,FALSE),"")&IFERROR(VLOOKUP(B3,E6:F20,2,FALSE),"")

複数の表に重複した検索値が含まれていない場合は、いずれか1つのVLOOKUP関数の数式でしか値が抽出されず、他のVLOOKUP関数の数式ではエラーとなり、IFERROR関数で空が返されます。
そのため、上記のように、1つの値のみが抽出されます。


方法2

次の方法は、VSTACK関数を活用する方法になります。
VSTACK関数を活用することで、複数の表を縦に結合することができるため、離れている複数の表を縦に結合した表をVLOOKUP関数の範囲に指定することができます。
VSTACK関数は、現時点では365のバージョンでないと活用することができません。
VSTACK関数の使い方は、以下になります。

=VSTACK(範囲1,範囲2,範囲3,…)
// 指定した[範囲]を縦に結合して返す

VLOOKUP関数の範囲を指定する際に、VSTACK関数を組み合わせて指定することで、複数の表を縦に結合した範囲から検索して値を抽出することができます。
実際に組み合わせた数式が以下になります。

=VLOOKUP(B3,VSTACK(B6:C20,E6:F20),2,FALSE)

上記の数式では、IFERROR関数を使用していないため、対象が見つからない時にエラーになってしまいます。

必要に応じて、以下のようにIFERROR関数を組み合わせると良いです。

=IFERROR(VLOOKUP(B3,VSTACK(B6:C20,E6:F20),2,FALSE),"")

パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

5353819

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ