更新日:2024.05.27
目次
Excel(エクセル)で表作成をしていると、意図せず「#DIV/0!」や「#N/A」といったエラー表示が出て慌てた経験はありませんか?
今回はエラーが出ても落ち着いて対処できるよう、エラー表示の種類やその原因と対処方法、エラー値を別の値に置き換えて表示できるIFERROR関数についてご紹介します。「#DIV/0!」のように記号で表示されるわかりにくいエラー表示も、IFERROR関数を使えば簡単にわかりやすい文字列として表示できます。
監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!
Excelで数式を使った時、参照セルに値が無い、関数名が間違っているなど、正常な処理ができない場合にエラー値が表示されます。
IFERROR関数を使うことで、エラー値を非表示(空白)にしたり、エラーの原因を具体的な文言で表示させて修正を促したり、予め設定した「値」を表示させることができます。
まずは、エラー表示が出ても慌てないよう、どんなエラー表示があるのか一覧で確認していきましょう。
#DIV/0! | 「0」または「空白セル」で割り算した時に表示される |
#N/A | 数式で参照セルに適切な値がない、または値が無効なときに表示される |
#NAME? | 関数名や定義した名前の入力が間違っている、または「:」や「""」の入力漏れで表示される |
#REF! | 指定しているセルを参照できない場合に表示される セルの削除や貼り付けをした際に起こることが多い |
#VALUE! | 参照している値では計算ができない場合に表示される 参照先に「文字列」が含まれている際に起こることが多い |
#NUM! | 数値の指定が不適切か正当な結果が得られないときに表示される Excelで処理できる範囲外の大きな値、または小さな値となっている際に起こることが多い |
#NULL! | 2つのセル範囲の重なる部分を指定する演算子に関するエラー 半角スペース前後のセル範囲に、重なる部分がない時に表示される 半角スペースをカンマ(,)やコロン(:)に書き換えることで対処できる |
#スピル! | Excelに新たに導入されたスピル機能によるもの(Microsoft365・2021のみ使用可) スピル先のセルに既に値が入っている場合に起こることが多い |
####### | 入力した値に対して列幅が足りない場合に表示され、列幅を広げることで正常に値が表示される |
#DIV/0!とは、下の表のように「0」または「空白セル」で割り算した時に表示されるエラーです。
このようなエラー値を別の値、または「0」や「非表示(空白セル)」に置き換えて表示したい場合にIFERROR関数を使います。こちらの関数の使い方は後ほど詳しくご説明します。
#N/Aとは、数式で参照セルに適切な値がない、または値が無効なときに表示され、VLOOKUP関数などを用いる際に起こりやすいエラーです。
=VLOOKUP(検索値,検索範囲,列番号,[検索方法])
参照するデータの中から必要な値を取り出して、指定のセルに入力することができます。
これを踏まえて下の表を見てみると、「=VLOOKUP(B4,$B$11:$D$16,2,FALSE)」では、セル【B4】に完全一致するデータ(FALSE)をカタログ(セル範囲【B11:D16】)から検索し、2番目の列(商品名)の値を返すことができます。また、セル【C4】に入力した数式をコピーした際に参照範囲がずれないよう、「$B$11:$D$16」のように絶対参照で指定しています。
セル【C4】に入力した数式をコピーすると、エラー値が表示されました。
これは検索値として指定しているB列(品番)に値が入力されていないためです。
#NAME?とは、関数名や定義した名前の入力が間違っている、または「コロン(:)」や「ダブルクォーテーション("")」の入力漏れで表示されるエラーです。
下の表を見てみると、セル【G3】にエラー値が表示されています。4教科のテストの合計点数を出す数式を「=SUM(C3:F3)」と入力すべきところ、関数名を誤って「=SU(C3:F3)」と入力しているためです。
#REF!とは、指定しているセルを参照できない場合に表示されます。セルの削除や貼り付けをした際に起こりやすいエラーです。
下の表で「=C3*D3」の数式が入力されている場合を見てみましょう。
C列を削除するとセルが参照できず、D列(元E列)にエラー値が表示されます。
誤って行を削除してしまった場合はCtrl+Zを押すと元に戻すことができます。
見た目上、不要であれば列番号(または行番号)を右クリック→《非表示》をクリックすることで削除せず非表示にすることも可能です。
#VALUE!とは、参照している値では計算ができない場合に表示されます。
下の表のセル【C6】のように、参照先に文字列が含まれている場合に起こりやすいエラーです。
#NUM!とは、数値の指定が不適切か、正当な結果が得られないときに表示されます。Excelで処理できる範囲外の大きな値、または小さな値となる際に起こりやすいエラーです。
下の表の「=10^C2」は10の309乗を意味する数式です。セルの【B2】にエラー値が表示されているのは、Excelで決められた「処理できる最大値:9.99999999999999E+307」を超えているためです。※Eは指数標記(Exponent)の意味となります。
#NULL!とは、2つのセル範囲の重なる部分を指定する演算子に関するエラーです。半角スペースを「カンマ(,)」や「コロン(:)」に書き換えることで対処できます。
下の表のように、セルの範囲とセル範囲の間に半角スペースを空けると、2 つのセル範囲の重なる部分のみを指定するという意味になります。
これを踏まえて下の表を見てみると、指定されたセル【C3】とセル【F3】には重なる部分がないためエラー値が表示されています。半角スペースを「:」に変え、「=SUM(C3:F3)」と入力することで対処できます。
#スピル!とは、Excelに新たに導入されたスピル機能によるもので、スピル先のセルに既に値が入っている場合に起こりやすいエラーです。(Microsoft365・2021のみ使用可)
まず、スピルとはどんな機能か下の表の九九を例にご説明します。
セル【C3】に「=B3:B11*C2:K2」と入力します。
セル範囲【C3:K11】へ自動的に数式の結果が反映されました。このように、隣接したセルにも反映されるのがスピル機能です。
では、#スピル!エラーがどんな時に起こるのか見てみましょう。下の表のように、スピル先のセルに既に値が入っているとします。その状態でセル【C3】に「=B3:B11*C2:K2」と入力してみましょう。
セル【C3】にエラー値が表示されました。
スピル機能を反映するためには、エラーを警告するマークをクリックし、《阻害しているセルを選択》をクリックします。すると、既に値が入っているセル【I9】が選択され、【I9】の値を削除しEnterキーを押すことでスピル機能が正常に反映されます。
#######は、入力した値に対して列幅が足りない場合に表示されるエラーです。列幅を広げることで正常に値が表示されます。
下の表の例で見てみましょう。セル範囲【B12:B14】にエラー値が表示されています。これは日付が2桁になったことで列幅が足りなくなったためです。
列番号の右側の境界線をダブルクリックすると、 その列に入力されたもっとも長いデータにあわせて、幅が自動的に調整されます。
では、エラーが出た際にどのようにすればいいでしょうか? ここからは、エラー処理に使用できるIFERROR関数の使い方をご紹介します。
IFERROR関数は、エラーの場合に指定した値へ置き換えられる関数です。エラー値を別の値に置き換えるときや、「0」や非表示(空白セル)にするときなどに使われます。
まずはIFERROR関数の数式を理解しましょう。
(1)エラーが出ている数式を準備する
今回はセル【E6】にエラー値が表示されている表を使用します。
(2)関数名を入力する
セル【E3】を選択し、「=IFERROR(」と関数名を入力します。
(3)値を指定する
今回はC列とD列の掛け算のため、「C3*D3,」と入力します。
(4)エラーの場合の値を指定する
エラー値を「0」に置き換えたいときは「=IFERROR(C3*D3,」に続いて「0」と入力しEnterキーを押します。
(5)オートフィル機能で数式をコピーする
セル【E3】の右下にカーソルを合わせると黒い十字マークが表示されます。その状態でダブルクリックまたはセル【E6】までドラックして数式をコピーします。
セル【E6】のエラー値が「0」に置き換えられました。
▼オートフィルに関して、こちらの記事もご覧ください。
参考:Excel(エクセル)のオートフィルとは?連続データの自動入力やフラッシュフィルについても解説
(1)〜(3)の手順は前述同様
(4)エラーの場合の値を指定する
エラー値を「非表示(空白セル)」に置き換えたいときは「=IFERROR(C3*D3,」に続いて「ダブルクォーテーション("")」と入力し、Enterキーを押します。
(5)オートフィル機能で数式をコピーする
数式をコピーすると、エラー値が「非表示(空白セル)」に置き換えられました。
(1)〜(3)の手順は前述同様
(4)エラーの場合の値を指定する
エラー値を別の値(今回の場合は要確認)に置き換えたいときは「=IFERROR(C3*D3,」に続いて「"要確認"」と入力し、Enterキーを押します。
※注)関数に数字以外の文字列を含む場合は「ダブルクォーテーション("")」が必須です。
(5)オートフィル機能で数式をコピーする
数式をコピーすると、エラー値が「要確認」に置き換えられました。
データを検索して必要な値を取り出してくれるVLOOKUP関数は、非常に便利で使用頻度の高い関数の一つです。
VLOOKUP関数は、検索した値が見つからなかった場合は「#N/A」を表示し、取り出したい参照先のセルが空白の場合は「0(ゼロ)」を表示します。
IFERROR関数では、「#N/A」や「0(ゼロ)」を非表示(空白)にしたり、「データが見つかりません」のようにわかりやすい文言に置き換えることができます。
▼VLOOKUP関数に関して、こちらの記事もご覧ください。
参考:事務スタッフ必見!データ入力はVLOOKUP関数をうまく活用しよう!
▼職種別のExcelスキルに関して、こちらの記事もご覧ください。
参考:Excel(エクセル)研修の必要性を徹底解説!職種別に習得するべきスキルとは?
今回は、エラー値の種類とIFERROR関数についてご紹介しました。
表示されたエラーの意味を理解し、対処方法をしっかりと把握することで誰が見てもわかりやすいきれいな表を作成できます。
ただし、エラー値はユーザーに異常を教えてくれるExcelの機能です。 IFERROR関数を使用してエラーだった場合に""(空白)を返すなどとしていると、異常に気づけない可能性もあるので使用時は注意が必要です。
当社では、『Microsoft認定トレーナー』資格を持つEXCEL女子による「Excel研修」を提供しております。書籍化するなど注目いただいている研修です。
社員教育に時間を割けない、Excelスキルの底上げをしたいなどお悩みでしたら、ぜひお気軽にお問い合わせください。