【練習問題】VLOOKUP関数で「0」や「#N/A」を非表示/IF関数との組み合わせ

topimg_original 練習問題【データ付き無料】

練習問題1/VLOOKUPで表結合時、0を表示させない方法

【練習問題1 問題】

下記は、社員名簿から社員検索をする表です。
「社員名簿」からVLOOKUP関数を使って該当する項目を検索する式をC4~E4のセルにそれぞれ入れて下さい。ただし、表示される結果が「0」と表示されないようにしてください。

▶練習問題のExcelデータをダウンロード

Hints!

使用する関数が分からない、もしくは関数を知らない場合でも、自分が使いたい関数を調べることが出来れば、利用上問題ありません。ですので、分からない時に関数を調査する検索キーワードを学ぶことはとても重要です。本サイトに加え、Google、Yahoo!などを利用し検索してみましょう。この問題の場合、たとえば以下のようなキーワードを利用して検索すると目的の関数を見つけやすいので、検索キーワードがわからない場合は参考にして、検索をしてみてください。

【検索キーワード】
VLOOKUP関数がわからない場合は・・・Excel VLOOKUP 関数
VLOOKUP関数で0と表示させない方法がわからない場合は・・・Excel vlookup 0を非表示 関数
本サイトの検索ボックス
※上記以外にも検索できるキーワードがあります。

 

【練習問題1 解答】

解答は以下の通りです。

※上の図の解答はわかりやすいように、氏名セルは赤文字、部署セルは緑文字役職セルは青文字で記入しています。

【氏名セル】
C4
:
:
【関数式】
=IF(VLOOKUP(B4,G4:J18,2,FALSE)=0,””,VLOOKUP(B4,G4:J18,2,FALSE))
【部署セル】
D4
:
:
【関数式】
=IF(VLOOKUP(B4,G4:J18,3,FALSE)=0,””,VLOOKUP(B4,G4:J18,3,FALSE))
【役職セル】
E4
:
:
【関数式】
=IF(VLOOKUP(B4,G4:J18,4,FALSE)=0,””,VLOOKUP(B4,G4:J18,4,FALSE))

▶解答のExcelデータをダウンロード

【練習問題1 解説】

まず最初に、それぞれのセルに入るVLOOKUP関数を作成します。
VLOOKUP関数の公式は

topimg_original
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])

社員IDのセルB4を元に検索するので「検索値」はB4
検索対象となる社員名簿データ(G4:J18)が「範囲」となります。
氏名セルC4に表示させたい場合は「氏名」ですので、社員名簿の2列目が「列番号」です。
「検索方法」は完全一致のものを表示させるのでFALSEにします。
C4セル:=VLOOKUP(B4,G4:J18,2,FALSE)

部署セルD4と役職セルE4にも同じように入力してみます。
氏名セルC4の内容と違うのは列番号のみなので、部署セルD4なら「部署」の3列目、役職セルE4なら「役職」の4列目がそれぞれ入ります。
部署セルD4:=VLOOKUP(B4,G4:J18,3,FALSE)
役職セルE4:=VLOOKUP(B4,G4:J18,4,FALSE)

完成したVLOOKUP関数を入れた結果は、以下のように表示されます。

役職セルE4のみが「0」と表示されました。
今回は、“「0」という表示をさせないようにする”という指示がありましたね。
もちろん、社員名簿を見る限り氏名や部署にも空欄の可能性があるので、3つ全てのセルに同様に表示させないようにする必要があります。
考え方としては、「VLOOKUP関数の結果が“0”なら空白に、そうでなければそのまま表示する」とすればよいでしょう。
そこで、今回利用するのは条件式の「IF関数」です。

IF関数の公式は

=IF(論理式, 真の場合, 偽の場合)
[論理式] = 条件となる式を指定します。

50058036001
[真の場合] = [論理式]の内容が「TRUE」になる場合(正しい場合)の処理を指定します。
[偽の場合] = [論理式]の内容が「FALSE」になる場合(違っている場合)の処理を指定します。

「0」値を表示させない方法として利用するIF関数について解説します。IF関数は、VLOOKUP以外にも他の関数と組み合わせで利用することが非常に多い関数です。使い方について良く分からない方は、こちらの説明もよく読んで参考にしましょう。

氏名セルC4に入る数式を当てはめていってみましょう。

〈論理式〉「VLOOKUP(B4,G4:J18,2,FALSE)の結果が0である」という式が入ります。
VLOOKUP(B4,G4:J18,2,FALSE)=0
〈真の場合〉上記の論理式に当てはまる場合は「空白」にします。
“”(空白)
〈偽の場合〉上記の論理式により0でない場合はVLOOKUP関数の結果をそのまま表示します。
VLOOKUP(B4,G4:J18,2,FALSE)
結果、全体のIF関数は以下のようになります。
氏名セルC4:=IF(VLOOKUP(B4,G4:J18,2,FALSE)=0,“”,VLOOKUP(B4,G4:J18,2,FALSE))

部署セルD4、役職セルE4にも同じように入れていきます。それぞれ列番号が違うだけの式になります。
部署セルD4:=IF(VLOOKUP(B4,G4:J18,3,FALSE)=0,“”,VLOOKUP(B4,G4:J18,3,FALSE))
役職セルE4:=IF(VLOOKUP(B4,G4:J18,4,FALSE)=0,“”,VLOOKUP(B4,G4:J18,4,FALSE))

【練習問題1 まとめ】

この問題では、0を表示させず空白にするという方法を学びましたが、
ただ、空白だけではエラーかもしれないと勘違いされやすいので、氏名欄には「該当者なし」と表示すると親切かもしれません。
社員IDのセルB4に「AB501326」と入力して、下記の式を氏名セルC4に入れて見ましょう。
=IF(VLOOKUP(B4,G4:J18,2,FALSE)=0,“該当者なし”,VLOOKUP(B4,G4:J18,2,FALSE))

今回使用した関数は、以下の記事に詳しい使い方の説明が掲載されています。
今回の問題が難しいと感じた方は、ぜひ確認してみてください。

「0」値を表示させない方法)VLOOKUP関数/IF関数について解説します。
「0」値を表示させない方法として利用するIF関数について解説します。IF関数は、VLOOKUP以外にも他の関数と組み合わせで利用することが非常に多い関数です。使い方について良く分からない方は、こちらの説明もよく読んで参考にしましょう。

練習問題2/VLOOKUPで表結合時、#N/Aを表示させない方法1

【練習問題2 問題】

下記は、とある文房具店の売上計算表のフォームです。
表は完成しましたが、数式などはまだ入っていません。
1.黄色いセルに商品リストから”商品名”と”単価”を表示させるように数式を入力してください。ただし、商品No欄が空白になる場合、IF関数ISERROR関数も使って#N/Aエラーが表示されないようにしてください。
2.数式の入力後、表の下にある売り上げメモの内容をB列「商品No」とE列「個数」のセルに入力してください。

▶練習問題のExcelデータをダウンロード

Hints!

使用する関数が分からない、もしくは関数を知らない場合でも、自分が使いたい関数を調べることが出来れば、利用上問題ありません。ですので、分からない時に関数を調査する検索キーワードを学ぶことはとても重要です。本サイトに加え、Google、Yahoo!などを利用し検索してみましょう。この問題の場合、たとえば以下のようなキーワードを利用して検索すると目的の関数を見つけやすいので、検索キーワードがわからない場合は参考にして、検索をしてみてください。

【検索キーワード】
VLOOKUPとISERRORの使い方がわからない場合は・・・VLOOKUP ISERROR エラー 表示しない 関数
本サイトの検索ボックス
※上記以外にも検索できるキーワードがあります。

【練習問題2 解答】

解答は以下の通りです。

※上の図の解答はわかりやすいように、商品名セルは赤文字、単価セルは青文字で記入しています。

【商品名セル】
C5
:
:
【関数式】
=IF(ISERROR(VLOOKUP($B5,$H$5:$J$13,2,FALSE)),””,VLOOKUP($B5,$H$5:$J$13,2,FALSE))

【値】
消しゴム
【単価セル】
D5
:
:
【関数式】
=IF(ISERROR(VLOOKUP($B5,$H$5:$J$13,3,FALSE)),””,VLOOKUP($B5,$H$5:$J$13,3,FALSE))

【値】
100

▶解答のExcelデータをダウンロード

【練習問題2 解説】

まずはVLOOKUP関数を作ります。

VLOOKUP関数の公式
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
[検索値]には検索する元となる商品NoのセルB5が該当します。
[範囲]は、検索先となる「商品リスト」のデータ部分H5:J13です。この範囲はどのセルからも変わらない位置にしておくため絶対参照$H$5:$J$13で指定しておきます。
[列番号]には、商品名セルの場合は列目、単価セルの場合は列目をそれぞれ指定します。
[検索方法]はどれも「完全一致」となるFALSEとします。
以上の内容で、「商品名」列の1行目セルD5にVLOOKUP関数を作ってみましょう。

【商品名セル】
D5
:
:
【関数式】
=VLOOKUP(B5,$H$5:$J$13,2,FALSE)

【値】
#N/A

検索元である商品Noが空欄なので、「#N/A」と表示していることを確認しました。
さて、この「#N/A」を表示しないようにするために、今回はISERROR関数を利用します。

ISERROR関数は、数式がエラーかどうかを検証する関数です。

ISERROR(検証対象)

[検証対象] = 式や参照先など、エラー判定したい対象を指定します。

20171016_o0106
ISERROR関数は、エラーならTRUE(真)を返し、エラーでなければFALSE(偽)を返します。

ISERROR関数の使い方について解説します。IF関数との組み合わせに関する説明もありますので、良く分からなかった方は、こちらも参考にしてください。

このISERROR関数の検証対象となるのは、先に作成したVLOOKUP関数になります。
ISERROR(VLOOKUP(B5,$H$5:$J$13,2,FALSE))

この関数だけでは、結果はTRUEあるいはFALSEのみです。
結果をエラーかどうか判定し、エラーなら空白(””)、エラーでなければVLOOKUP関数の結果をそのまま表示させる、という関数が必要になります。それがIF関数です。

IF関数は、練習問題1でも学習したように、
IF関数の公式
=IF(論理式, 真の場合, 偽の場合)
に当てはめていきます。

[論理式] ISERRORによるVLOOKUP関数の検証⇒ISERROR(VLOOKUP(B5,$H$5:$J$13,2,FALSE))
[真の場合] つまり論理式が真の値(エラーである)なら、空白にする⇒””(空白)
[偽の場合] 論理式が偽の値(エラーではない)なら、VLOOKUP関数の結果を表示⇒VLOOKUP(B5,$H$5:$J$13,2,FALSE)
ということになり、以下のような数式になります。

【商品名セル】
C5
:
:
【関数式】
=IF(ISERROR(VLOOKUP(B5,$H$5:$J$13,2,FALSE)),“”,VLOOKUP(B5,$H$5:$J$13,2,FALSE))

【値】
(空白)

この数式を、隣の単価セルにもコピー、修正して(注:検索値と列番号を修正)、残りの下の行(C6:D9)にもコピーしていきます。

【単価セル】
D5
:
:
【関数式】
=IF(ISERROR(VLOOKUP(B5,$H$5:$J$13,3,0)),“”,VLOOKUP(B5,$H$5:$J$13,3,0))

【値】
(空白)

すべてのセルに数式を入れたら、表下の売上げメモを実際に入力して確認します。

【練習問題2 まとめ】

今回の表では、「金額」欄、「合計金額」欄が空欄のままですが、IF関数を使って計算結果に0を表示しないよう数式を入力してみましょう。

★#N/Aという表示
#N/Aには、「該当なし (not applicable)」あるいは「利用できない (not available)」という意味で使われます。つまり、”表の中に該当するデータがない”という意味で使われます。
VLOOKUP関数で#N/Aが表示されるときのパターンには2種類あります。
・そもそも検索値のセルになにも入っていないとき
・検索値セルの値に該当するデータが、検索対象の範囲の中に見当たらないとき

何かしら検索値セルに入力した際には、入力ミスか、検索範囲にそのデータがない可能性があります。
練習問題の解答のように、すべてのエラーを空白にした場合には、どちらが原因なのかわかりにくいので、注意して確認しましょう。

★ISERRORの発展形「IFERROR関数」
ISERROR関数は、「エラーかどうかを検証」するだけの関数ですが、主にIF関数と組み合わせて使われることが多かったため、Excel2007から「IFERROR関数」がでてきました。
IFERROR関数の公式は
IFERROR(値,エラーの場合の値)
[値]エラーかどうかを検証する値または数式
[エラーの場合の値]エラーに該当した場合の表示方法を指定します。エラーでなければ値または数式の結果がそのまま表示されます。

IF関数とISERROR関数を使った数式よりも短くて済むという利点があります。
例えば、今回の練習問題に当てはめると、
[値]はVLOOKUP関数をいれ、[エラーの場合の値]には“”(空白)と指定すればよいのです。
C5:=IFERROR(VLOOKUP(B5,$H$5:$J$13,2,0),””)
どうでしょうか。IF関数とISERROR関数を使った時の半分程度まで短いので、わかりやすいですね。
しかし、2007よりも前のExcelでは利用できないので、バージョンに注意が必要です。

今回使用した関数は、以下の記事に詳しい使い方の説明が掲載されています。
今回の問題が難しいと感じた方は、ぜひ確認してみてください。

VLOOKUPで表結合時、#N/Aを表示させない方法1)VLOOKUP関数/IF関数/ISERROR関数について解説します。

ISERROR関数の使い方について解説します。IF関数との組み合わせに関する説明もありますので、良く分からなかった方は、こちらも参考にしてください。

練習問題3/VLOOKUPで表結合時、#N/Aを表示させない方法2

【練習問題3 問題】

練習問題2と同じような売上計算表のフォームです。
1.今回はIF関数のみを使って「商品No」のB列が空白の場合には商品名セルおよび単価セル(緑のセル)に「空白」にするよう数式を入力してください。
2.数式の入力後、表の下にある売り上げメモの内容をB列「商品No」とE列「個数」のセルに入力してください。(商品リストにない内容もあえて記載しています)

▶練習問題のExcelデータをダウンロード

Hints!

使用する関数が分からない、もしくは関数を知らない場合でも、自分が使いたい関数を調べることが出来れば、利用上問題ありません。ですので、分からない時に関数を調査する検索キーワードを学ぶことはとても重要です。本サイトに加え、Google、Yahoo!などを利用し検索してみましょう。この問題の場合、たとえば以下のようなキーワードを利用して検索すると目的の関数を見つけやすいので、検索キーワードがわからない場合は参考にして、検索をしてみてください。

【検索キーワード】
VLOOKUP関数のIF関数を使った空白回避がわからない場合は・・・Excel VLOOKUP IF 空白 回避 -ISERROR 関数
本サイトの検索ボックス
※上記以外にも検索できるキーワードがあります。

【練習問題3 解答】

解答は以下の通りです。

※上の図の解答はわかりやすいように、商品名セルは赤文字、単価セルは青文字で記入しています。

【商品名セル】
C5
:
:
【関数式】
=IF(B5=””,””,VLOOKUP(B5,$H$5:$J$13,2,0))

【値】
ボールペン(黒)
【単価セル】
D5
:
:
【関数式】
=IF(B5=””,””,VLOOKUP(B5,$H$5:$J$13,3,0))

【値】
90

▶解答のExcelデータをダウンロード

【練習問題3 解説】

練習問題2と同じような表を利用していますので、VLOOKUP関数についての説明は省略します。
今回は、商品Noが空白なら「商品名」セル、「単価」セルもそれぞれ空白にする、という指定をIF関数のみを使って数式を作っていきます。

IF関数の公式は

=IF(論理式, 真の場合, 偽の場合)

これに当てはめて条件を作成します。

column-331-5c9d9ebb-9bc68
[論理式]は、元となる検索値「商品No」のセルB5が「空白(“”)」かどうか⇒B5=“”
[真の場合]は、論理式でセルB5が空白(””)ならばこのセル(C5)には空白⇒“”
[偽の場合]は、 論理式でセルB5が空白でなければVLOOKUP関数の値をこのセル(C5)に入れる⇒VLOOKUP(B5,$H$5:$J$13,3,0)
となり、以下のような数式になります。
商品名セルC5:=IF(B5=””,“”,VLOOKUP(B5,$H$5:$J$13,2,0))
単価セルや残りのセルにも、同様にコピー、修正し、正しい数式を入れてみましょう。
数式を入れた後に、売上げメモの内容を入力していきますが、今回エラーが表示されるような内容があえて入れてあります。
検索値が空白なのか、検索値が範囲内にないデータなのかわかりやすくするためです。

【練習問題3 まとめ】

練習問題2と3で、それぞれIF関数、ISERROR関数を使った0や#N/Aエラーへの対応を学んできました。
すべて非表示(空白)にするべきか、あえて#N/Aエラーの表示は残すべきか、使用する場面に合わせて使い分けていくとよいでしょう。

今回使用した関数は、以下の記事に詳しい使い方の説明が掲載されています。
今回の問題が難しいと感じた方は、ぜひ確認してみてください。

VLOOKUPで表結合時、#N/Aを表示させない方法2)VLOOKUP関数/IF関数について解説します。
Rate article