Excel(エクセル)関数逆引き VLOOKUPで複数ページの表を検索したい。

ExcelでVLOOKUPを使用すると、一つのページしか検索できない。
複数ページに渡って検索できるように工夫する。
ついでにエラー表示「N/A」を非表示にして空白にする。

Excel VBA小技集@でVLOOKUPの使い方を記載したが、一つのページしか検索できなかった。
複数ページの表を検索するように工夫する。
ついでに検索できなかった時のエラー表示「N/A」を非表示にして空白にすることを考える。

テンプレートはこちら。ダウンロードはこちら

シート1とシート2を検索することを考える。




シート1のみ検索するときはこうなる。



シート1に「5月1日」はないので「N/A」と表示される。


シート2のみ検索するとこうなる。



シート2に「5月1日」があるので「5月1日」と表示される。


さあ、シート1とシート2の両方を検索してみる。検索して値がなければ空白とする。



一気に構文が長くなった、というよりかIF文をつなぎ合わせただけである。


=IF(ISERROR(VLOOKUP(B3,シート1!A2:A6,1,0))=FALSE,VLOOKUP(B3,シート1!A2:A6,1,0),IF(ISERROR(VLOOKUP(B3,シート2!A2:A6,1,0))=FALSE,VLOOKUP(B3,シート2!A2:A6,1,0),""))

IF文の構文は

IF(条件式,条件式があっている時の処理,条件式があっていない時の処理)

である。

ISERRORはVLOOLUP等で検索されないときのエラーを判別する関数で、エラーの時はTRUE、エラーでない時はFALSEとなる。

というわけで、関数を読んでいく。

=IF(ISERROR(VLOOKUP(B3,シート1!A2:A6,1,0))=FALSE」でB3「5月3日」がシート1で検索され、エラーとならないとき(FALSE)の時は、

VLOOKUP(B3,シート1!A2:A6,1,0)」を表示、

シート1で検索されないとき(TRUE)の時は次のIF分へ行く。

IF(ISERROR(VLOOKUP(B3,シート2!A2:A6,1,0))=FALSE」でB3「5月3日」がシート2で検索され、エラーとならないとき(FALSE)の時は、

VLOOKUP(B3,シート2!A2:A6,1,0)」を表示、

シート2で検索されないときは

""(空白)を表示する。

シート3以上検索したいときは、最後の""の部分をIF文に変えてつなげていく。


忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP