事務でExcel処理をしている際に、「#DIV/0!と表示されるのを何とかしたい」「VLOOKUPで表示させた#N/A!をキレイにしたい」といった問題に直面することはよくありますよね。
そんなときはIFERROR関数を使えば簡単に解決できます。
そこで今回の記事では、IFERROR関数の使い方を説明していきます。
マスターすることでExcelでの作業効率が抜群にあがるだけでなく、できあがったデータも非常にキレイになります。ぜひ参考にしてくださいね。
目次
IFERROR関数の書き方
IFERROR関数は、数式がエラーになった場合に指定した値を返します。
それ以外の場合は、数式の結果が返されます。構文は次の通りです。
IFERROR(値, エラーの場合の値) |
IFERROR関数の構成要素には次の引数があります。
1.値は必ず指定します。 エラーかどうかをチェックするための引数です。
2.エラーの場合の値は必ず指定します。 数式がエラー値となった場合に返す値を指定します。 具体的には次のエラーが対象です。
エラー | 定義 |
#DIV/0! | 数式や関数「0」または「空白セル」で除算されると表示されます |
#N/A | 計算や処理の対象となるデータがない、または正式な結果が得られないときに表示されます |
#NAME? | 関数の名前が間違っている、もしくは数式に使用した名前が定義されていないときに表示されます |
#NULL! | 半角空白で空けた参照演算子の共通部分がないときに表示されます |
#NUM! | 数値の指定が不適切か正当な結果が得られないときに表示されます |
#REF! | 数式内で無効なセルが参照されているときに表示されます |
#VALUE! | 関数の引数の形式が間違っている時に表示されます |
IFERROR関数の使い方
それでは実際にエラーが出ている数式を用意しましたので、IFERROR関数を使った例をみていきましょう。下記の図ではF4セルに#DIV/0!エラー値が出力されている数式を作りました。
E3セルを選択し、セルに直接「=IFERROR(」を入力します。
続いて、IFERROR関数の第2引数「エラーの場合の値」として「0」を指定します。
「=IFERROR(C3/D3,」に続いて「0」を入力し、Enterキーを押してください。
E3セルにIFERROR関数が適用された結果が表示されました。E3セルはエラーではないのでC3/D3の結果が表示されています。E3セルの右下をE6セルまでドラッグします。この作業をオートフィルタでコピーする、ともいいます。
E列にIFERROR関数の数式が反映され、最初にエラーになっていたE4セルに0が表示されているのがわかりますよね。
続いては、同じ表を使って、IFERROR関数を使ってエラーの場合の値を非表示(空白セル)で返す、という作業を解説していきます。
先ほどと同じように、F4セルに#DIV/0!エラー値が出力されている数式を作りました。
E3セルを選択し、セルに直接IFERROR関数の第1引数「値」を指定します。
今回チェックしたいのが1日あたりの利用料金なので、C列とD列の割り算です。
ですから、関数は「=IFERROR(C3/D3,」と入力します。
IFERROR関数の第2引数「エラーの場合の値」として「”」(ダブルクォーテーション)で空白セルを指定します。
続いて「=IFERROR(C3/D3,””)」と入力し、Enterを押せばOKです。
すると、E3セルにIFERROR関数が適用された結果が表示されました。
E3セルはエラーではないのでC3/D3の結果が表示されているので、先ほどと同じようにE3セルの右下をE6セルまでドラッグします。
E列にIFERROR関数の数式が適用され、最初にエラーになっていたE4セルが空白セルになりましたね。
IFERROR関数とVLOOKUP関数の組み合わせ
IFERROR関数はよくVLOOKUP関数と組み合わせて使用されます。
VLOOKUP関数は検索した値が見つからない場合に#N/Aエラーを返し、参照先のセルが空白(””)の場合は「0(ゼロ)」を返す関数です。
Excelの#N/Aエラーや0の代わりに空白を返すように設定するには、IFERROR関数を使用します。そこで、ここからはIFERROR関数とVLOOKUP関数を組み合わせて使う方法をお伝えしていきます。
VLOOKUP関数とは
まずはVLOOKUP関数をおさらいしましょう。
VOOKUP関数は「Vertical(垂直)」 を意味する 「V 」と「LOOKUP(探す)」 から来ている言葉です。
表の縦方向にデータを検索し、一致した値と同じ行にあるデータを返す関数で、特定の値で表を検索し、表の中の必要な情報を抽出することができます。
また、元となるデータから値を取得することで、数字や文字の表記のブレを防ぐこともできます。
たとえば、家電量販店でパソコン部品の価格を部品番号で検索したり、従業員IDに基づいて従業員名や所属フロアを検索するようなケースに用いられます。
VLOOKUP関数の書き方と引数のルール
VLOOKUP関数の使い方のコツは、知りたい結果が調べたい戻り値の左側に来るようにデータを作成することです。
VLOOKUP 関数は、検索値、範囲、列番号、検索方法の 4 つの値を入れて使用し、関数を使うために入れるこれらの値のことを引数といいます。
詳しくは次の通りです。
=VLOOKUP(検索値, 範囲, 列番号, [検索の型]) |
検索値
何のキーワードで検索するか、を示す値。
範囲
検索値が含まれるセル範囲。 VLOOKUP関数が正しく機能するため、検索値は範囲の最初の列に必ず位置している必要があります。
たとえば、検索値がセルC2にある場合、範囲はC列から始まる必要があります。
列番号
戻り値を含む範囲内の列番号。
たとえば、B2:D11 を範囲として指定した場合、Bを最初の列、Cを2番目というように数えます。
近似一致もしくは完全一致
必要に応じて、戻り値として近似一致を検索する場合は TRUE、完全一致を検索する場合は FALSE を指定できます。
何も指定しない場合、既定値は TRUE、つまり近似一致を常に返します。
IFERROR関数とVLOOKUP関数の組み合わせ
IFERROR関数とVLOOKUP関数を組み合わせると、エラーになったときでもExcel上ではエラーがないようにみせることが可能です。
上層部やクライアントなどに提出するExcelでは、エラーが表示されていない方が見映えが良いですよね。
そこで、IFERROR関数に調べる値のところにVLOOKUP関数を代入するのです。
数式は次の通りです。
IFERROR(VLOOKUP(検索値,範囲,列番号,検索方法),エラーの場合に代わりに表示させる値) |
検索方法に関しては任意なので、入力しなくても問題ありません。
この数式は、[検索値]を[範囲]の一番左の列から探し、見つかった場合にはその列を1番目として[列番号]だけ右に動いた同じ行の値を取り出すという命令です。
検索値が見つけられなかったり、範囲外に列番号が指定するセルがあったりすると、エラーが表示されます。
しかしながら、IFERROR関数を付けておくことで代わりの値にすることが可能です。
ほかにも、IFERROR関数とVLOOKUP関数で、別のシートが絡む場合も説明していきます。
数式は次の通りです。
IFERROR(VLOOKUP(5,IFERROR!D4:I9,6,FALSE),”-”) |
このケースでは、調べる範囲を別のシートで行っているため「IFERROR!」というシート名が入力されています。検索値も参照してかつセルが別のページにある場合には、その都度シート名を「シート名!」の形で記載して指定しましょう。
この結果、エラーの代わりに「-(ハイフン)」が表示されます。
また、IFERROR関数とVLOOKUP関数の組み合わせて、複数の範囲を検索したい場合についてもみていきましょう。
- 1つ目の値を調べてエラーでなければその値
- エラーであれば2つ目の値を調べてエラーでなければ2つ目の値
- いずれもエラーであれば代わりの値
上記の内容を入力します。数式のは次のように書きます。
=IFERROR(VLOOKUP(検索値,範囲,列番号,検索方法),IFERROR(VLOOKUP(検索値,範囲,列番号,検索方法),エラーの場合に代わりに表示させる値)) |
関数表記としては横に長くなってしまいますが、[1つ目の値][2つ目の値]のところにVLOOKUPが代入されているだけなので、複雑ではありません。
IFERROR関数とIF関数の使い分けについて
IFERROR関数には見ての通りIFがついています。意味も条件により結果を返すというところは同じです。では、具体的にIFERROR関数とIF関数は何が違うのでしょうか。
結論からいうと、IF関数は論理式に入力した条件に合うか(真=TURE)、合わないか(偽=FALSE)ですが、IFERROR関数の場合は、「指定した数式がエラーかどうか」を判断して結果を返すというものです。
IF関数もIFERROR関数も空白処理ができる関数なので、似ているような気がしてしまうと思います。そこで、ここからはIFERROR関数とIF関数の使い分けについて解説していきます。
IF関数とは
IF関数とは、設定した条件に準じて、表示させる値を変化させる関数のことです。
構文は次の通りです。
IF(論理式,真の場合,偽の場合) |
引数の「論理式」には条件文を記載します。
条件文とは、「料金が10,000円以上」や「B3とB4セルの値が同じ」などです。
この条件文は比較演算子を用いて記述されます。
比較演算子 | 定義 | 例 | 例の意味 |
= | 等しい | A1=B1 | A1の値とB1の値が等しければTRUE、そうでなければFALSE 例:1=2のとき結果はFALSE |
<> | 等しくない | A1<>B1 | A1の値とB1の値が等しくなければTRUE、そうでなければFALSE 例: 1<>2のとき結果はTRUE |
> | ~より大きい | A1>B1 | A1の値がB1の値より大きければTRUE、そうでなければFALSE 例:1>2のとき結果はFALSE |
< | ~より小さい | A1<B1 | A1の値がB1の値より小さければTRUE、そうでなければFALSE 例:1<2のとき結果はTRUE |
>= | 以上 | A1>=B1 | A1の値がB1の値以上であればTRUE、そうでなければFALSE 例:1>=2のとき結果はFALSE |
<= | 以下 | A1<=B1 | A1の値がB1の値以下であればTRUE、そうでなければFALSE 例:1<=2のとき結果はTRUE |
IFERROR関数とIF関数の組み合わせの方法
前述したとおり、IFERROR関数は関数IFと一緒に使うことがよくあります。
特に、エラーではない値を別の値や文字列で表したいときに便利。
数式は次の通りです。
IF(IFERROR(値)=0,”◎”,IFERROR(値)) |
この場合、まずIFERRORの値を調べて0であれば「◎」と表示、そうでなければIFERRORを調べてエラーなら別の値、エラーでなければその値を表示するというルールを組んでいます。
調べる値の部分にはVLOOKUP関数を代入して3つの関数を組み合わせることもできるので、使い道の幅広さが特徴です。
まとめ
今回の記事では、IFERROR関数の使い方やVLOOKUP関数、IF関数との組み合わせについてご紹介しました。
#N/Aを含む様々なエラーは該当する値が存在しないことを示すため、非表示にすると注意すべき値を見失ってしまうおそれがあるため、むやみに空白にしない方がよいケースもあります。
また、自分で計算するだけのExcel作業であれば問題ないかもしれませんが、部長への報告用やクライアントへの提出用などのデータはキレイな方が良いですよね。
そのような際にも、エラーではない値を別の値や文字列などに置き換えると見映えがよくなります。
IFERROR関数が正しく使いこなせると、データ抽出やデータ作成のスピードが格段にあがるだけでなく、Excelでの資料もキレイに作ることができます。
ぜひ本記事を参考にマスターしてくださいね。