この記事では、エクセルのVLOOKUP関数で空白なら空白(空欄ならそのまま:表示しない)・0を出力する方法【日付なども】について解説していきます。
本処理における基本的方針は、下記のようなものとなります。
・VLOOKUP関数で出力された値をチェックし、異常値なら空白を返す
・条件付き書式を設定し、異常値の場合はセルの背景に同化させる
それでは、サンプルデータを用いて解説しましょう。
エクセルのVLOOKUP関数で空白なら空白(空欄ならそのまま:表示しない)・0を出力する方法【日付なども】
下記サンプルは、プレーヤーの得点リストであります。
プレーヤー名から得点を抽出したい、といった想定になります。
セルE2に「=IFERROR(VLOOKUP(D2,$A$2:$B$201,2),””)」 と入力します。
なお、セル参照及び数値入力を行っているので、”(ダブルクォーテーション)で括ってしまうと意図する処理が行われません。
間違えやすいポイントなので、十分注意しましょう。
使用している関数について解説します。
VLOOKUP関数は、指定された範囲において、検索値がある行の別の列の値を取得する際に使用し、
=VLOOKUP (検索値, 範囲, 列番号, [検索方法])
と入力します。
各引数には
・検索値(D2):プレーヤー名を指定してもらう
・範囲($A$2:$B$201): 検索対象の範囲を指定
・列番号(2):範囲の左端の列番号を1とし、どの位置の列になるかを指定
・[検索方法](-): 今回は未使用
をそれぞれ指定します。
IFERROR関数は対象の値が異常値かどうかをチェックする際に使用し、
=IFERROR (値, エラーの場合の値)
と入力します。
各引数には
・値(VLOOKUP):VLOOKUP関数の結果が判定対象
・エラーの場合の値(“”): 判定対象が異常値の場合に出力される
をそれぞれ指定します。
まずVLOOKUP関数がセルD2に入力されたプレーヤー名がリストのどの行かを突き止め、得点を取得します。
しかし、プレーヤー名が指定されていなかったら、その時は異常値となります。
それをIFERROR関数でチェックし、正常値ならその値をそのまま出力し、異常値なら””(空白)を出力する、というのが、この数式の仕組みです。
なお、VLOOKUP関数の範囲については、実際のプレーヤー数により変わります。
本サンプルは200名のプレーヤーが存在する、という想定です。
ENTERを押すと、まだプレーヤー名が不明なので、得点は表示されていません。
プレーヤー名を指定すると、このように得点が表示されます。
オートフィル機能でセルE3、E4にも数式をコピーします。
セルD3にプレーヤー名を入力し、同じように得点が表示されることを確認出来たら、お題クリアです。
エクセルのVLOOKUP関数で空白なら空白(空欄ならそのまま:表示しない)・0を出力する方法【日付なども】②
1章では、「VLOOKUP関数の出力結果を別の関数で判定し、どうするか」といった方針で処理を構築しましたが、本章では「条件付き書式設定で判定を行う」手法をお話しします。
メリットとしては使用する関数を減らせるので、数式が見やすくなるといったところです。
下記はある団体の会員名簿で、生年月日から年齢が計算される仕組みとなっている、とお考え下さい。
まず、ID場合に、VLOOKUP関数が何を出力しているか、確認してみましょう。
セルD2に「=VLOOKUP(D2,$A$2:$C$201,2)」E2に「=VLOOKUP(D2,$A$2:$C$201,2)」とそれぞれ入力します。
ENTERを押すと、「#N/A」と出力されていることが判明します。
「#N/A」は”Not Applicable”(該当なし)、あるいは”Not Available”(利用不可)の意味となります。
今回用意したサンプルにおいては、全ての会員にIDが付与されているので、「Birth」「Age」ともに、このような結果となります。
これは、VLOOKUP関数において、抽出対象のデータ型について特に区別せず、該当ありならその値を出力し、なければ「#N/A」を出力する、というルールによるものです。
したいことは「値が#N/Aの場合にのみ適用される書式を設定する」です。
セル範囲E2:H2を選択し、リボンより「ホーム」–「条件付き書式」–「新しいルール」をクリックします。
下記の設定用ダイアログが開くので、「数式を使用して、書式設定するセルを決定」を選択します。
数式の入力を求められたら、「=ISNA(D2)」と入力します。
ISNA関数は、対象のセルの値が「#N/A」であるかを判定する際に使用し、
=ISNA (D2)
といった使い方をします。
次に、書式ボタンを押し、書式設定ダイアログを開きます。
セルの書式設定ダイアログが開くので、「フォント」タブを開きます。
「色」がドロップダウンメニューとなっているので、セルの背景色と同じものにセットします。
なお、セルの背景色は事前に確かめておく必要があります。
「塗りつぶし」タブを開き、背景色をセットします。
全てのダイアログをOKで閉じます。
シートを確認し、「#N/A」が表示されていないことを確認します。
任意でIDを指定すると、「Birth」及び「Age」が抽出されます。
オートフィルで数式をコピーし、全てのセルで同じ処理が実行されていることが確認できれば、お題クリアです。
まとめ VLOOKUP関数で空欄をそのまま表示(空白なら空白:表示しない)・0を返す方法【日付も】
この記事では「エクセルのVLOOKUP関数で空白なら空白(表示しない)・0を返す方法【日付も】」について解説しました。
画面上にエラーと分かる表示が存在していたら、やはり気持ち悪いものです。
処理のロジックを設計する際に、異常発生時の処理を用意しておくのは必須事項であり、勿論エクセルで行う場合も例外はありません。
この記事を読んで、異常状態の取り扱いをどうすればよいかについて参考になったとあれば非常に光栄です。