エラー値を見えなくする

関数を使用した際に関数が本来期待する値が得られない場合にはエラー値がセルへ表示されてしまいます。
場合によってはエラー値が見えた方が良い場合もありますが、なるべくならエラーが出ないようにしたり、エラーが見えないようにしたいところです。
そこで、エラー値が出ないようにする/見えないようにするポピュラーな方法をご紹介します。
  1. #VALUE!
  2. #DIV/0!
  3. #N/A
  4. 対処法

  1. #VALUE!
  2. エラー値 #VALUE!は主に計算の中で利用できないデータが含まれている時に返されます。

    ◆#VALUE!の発生例 四則演算(+-*/)

    次のような場合に発生します。
    AB
    1100
    2ABCD
    3=A1+A2=A1-A2
    4=A2*1.05
    5=A2/5
    上記のような場合に、A1やA2へ文字列が入力された場合に#VALUE!が返されます。 数値や文字列が混在するようなデータ体系の場合です。 (本来はそのようなデータ体系そのものの見直しをしたほうが後々の処理が煩雑にならなくてすむのですが・・・)

    ◆対処例

    一般的な対処例です。
    文字列部分を無視して数値部分だけを計算対象とする
    AB
    1100
    2ABCD
    3=SUM(A1,A2)=SUM(A1)-SUM(A2)
    4=SUM(A2)*1.05
    5=SUM(A2)/5
    「とにかく数値だけを拾いたい」という場合には 、SUM関数を経由することで文字列を無視して集計することが出来ます。 SUM関数は集計の配列の中に文字列を含む場合、その文字列を0とみなすので、 エラーなしで集計することが出来ます。
    その他の対処例
    関数ヘルプ
    SUM関数(HINT)

    ▲PAGETOP

  3. #DIV/0!
  4. エラー値 #DIV/0! は、数式で 0 (ゼロ) による除算が行われた場合 に返されます。具体的には分母に「0」を与えた場合です。

    ◆#DIV/0!の発生例

    AB
    1100
    20
    3=A1/A2=A1/B2
    A3の数式はA2に「0」が入力されているために#DIV/O!。
    B3の数式はB3へなにも入力されていないために#DIV/O!。
    以上のように除算で分母が0とみなされるときに#DIV/O!と表示されます。

    ◆対処例

    一般的な対処例です。
    分母0のときのみ対処
    IF関数を使ってエラーになる場合だけ処理を分岐させます。
    AB
    3=IF(A2=0,"",A1/A2)
    「A2が0(または空白)の時は空白、それ以外の時はA1/A2を計算する」
    その他の対処例
    関数ヘルプ
    IF関数(HINT)

    ▲PAGETOP

  5. #N/A
  6. エラー値 #N/A は検索関数を使用してリストに検索値が見つからなかった場合などに表示されます。 つまり、「No Answer(解答なし)」ですね。

    ◆#N/Aの発生例

    VLOOKUP関数の使用例をみてみます。
    VLOOKUP関数はリストからキーワードを検索して検索したキーワードと同じ行にあるデータを値として返す関数です。
    A B C
    1=VLOOKUP(A1,A2:B8,2,FALSE)
    2品目コード単価
    3101120
    4210155
    5211140
    6311128
    7321350
    8333480
    セルC1にVLOOKUP関数が入力されています。
    検索対象となるリスト範囲はA2:B8です。 セルA1に検索する値を入力した場合、リスト範囲の1列目(A列)を検索し、検索した値が見つかった場合には三つ目の引数の列(例の場合はリスト範囲の2列目(B列)の値が帰ります。四つ目の引数にFALSEが指定されていて「完全一致検索」のため、、値が見つからなかった場合にはエラー値 #N/Aが表示されます。

    ◆対処例

    IF関数で空白をセット
    エラー値の代わりに空白("")をセットする場合を例にします。 やはり他のエラー値と同様、IF関数を使用しますが、エラー判定の方法が何種類かあります。 以下はいずれも VLOOKUP(A1,A2:B8,2,FALSE) という数式がエラーかそうでないかで分岐します。

    1. 数式自体のエラーを判定
    2. 
      =IF(ISNA(VLOOKUP(A1,A2:B8,2,FALSE)),"",VLOOKUP(A1,A2:B8,2,FALSE))
      =IF(ISERROR(VLOOKUP(A1,A2:B8,2,FALSE)),"",VLOOKUP(A1,A2:B8,2,FALSE))
      
      VLOOKUP(A1,A2:B8,2,0)の関数がエラーだったら空白をセット。つまり、本来の処理そのものの結果を判断します。
      →範囲内の検索値の合致をチェック

    3. 範囲内の検索値の合致をチェック
    4. =IF(ISNA(MATCH(A2:A8,A1,0)),"",VLOOKUP(A1,A2:B8,2,FALSE))
      MATCH関数でA1と同じものがあるかどうかを判断します。合致するものがなかったら空白をセット

    5. 範囲内の検索値の数をカウントしてチェック
    6. =IF(COUNTIF(A2:A8,A1)=0,"",VLOOKUP(A1,A2:B8,2,FALSE))
      A2:A11の範囲でA1と同じ数値をカウントしてその結果が0だったら空白をセット
    いずれも結果は同じになると思います。 どれを採用するかははっきり言って好みの問題が大きいような気はするのですが、 数式自体が短いことから 3. を採る人が多いようです。
    その他の対処例
    関数ヘルプ
    COUNTIF関数(HINT)
    ISERROR関数(HINT)
    IF関数(HINT)
    ISNA関数(HINT)
    MATCH関数(HINT)
    VLOOKUP関数(HINT)

    ▲PAGETOP

  7. 対処法
  8. 数式自体のエラーを判定
    AB
    3=IF(ISERROR([計算式]),"",[計算式])
    IF関数でエラーのとき条件分岐させる例です。 「[計算式]を計算してエラーになったら、空白、エラーにならなかったら、[計算式]を計算」
    エラーの時0をセット、書式設定で非表示
    AB
    3=IF(ISERROR([計算式]),0,[計算式])
    結果を他のセルで参照している場合に空白よりも「0」のほうが良い場合があるかもしれません。 その場合もIF関数で条件分岐をさせます。 また、「0」も表示させたくない場合は書式設定で非表示にすることが出来ます。 セルの書式設定のユーザー定義で 種類(T)の書式記号を
    とか
    とします。
    エラー値のフォント色を背景色と同じにする
    セルの内容にエラー値を残したまま、エラー値を見えなくする方法として、 計算式を入力したセル(この場合A3)の条件付書式を設定して、 セルの内容を見えないようにする方法もあります。 計算式の入力されたセルのエラーを判断して文字色を背景色と同じに設定する方法です。
    1 数式の入ったセル(例の場合A3)を選択してメニューの 書式(O)条件付書式(D)
    2 条件の入力でセルの値が数式がに変更、続くテキストボックスへ次の数式を入力
    =ISERROR([計算式のセル])
    3 書式(F)をクリックして 書式設定ダイアログにてフォントの文字色を背景色と同じ色に設定
    ただし、この方法では、画面上は非表示のように見えますが、 フォント色が背景色と同じに設定してあるだけなので、次のような不都合が考えられます。
    • 印刷の際に「白黒印刷」に設定していると、エラー値が印刷されてしまう
    • 見えないだけで、セルにはエラー値として残る。(他で計算に利用した場合にエラーになる)
    これを回避するにはカラー印刷の設定にしておくか、もしくは前述の空白("")セット、 0値セットするしかありません。
    関数ヘルプ
    ISERROR関数(HINT)
    IF関数(HINT)
    ISNUMBER関数(HINT)
    ISTEXT関数(HINT)

    ▲PAGETOP


   困ったときのお部屋目次へ   次のページへ≫

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送