「#DIV/0!」「#VALUE!」などエラー値を特定して空白にする方法
「#NULL!」「#DIV/0!」「#VALUE!」「#REF!」「#NAME?」「#NUM!」「#N/A」など
特定のエラー値を指定して別のセルの値や空白や0にする方法
エラー値を分類して取得するにはERROR.TYPE関数を使用します
・関数 | ERROR.TYPE(読み方:エラータイプ) |
・書式 | =ERROR.TYPE(参照値) |
・内容 | セルを指定してエラー値に対応する数値を返します 参照値がエラーではない場合は「#N/A」エラーになります |
ERROR.TYPEは
参照値にセルや数式を指定すると対応する1~8の数値を返します
1 | #NULL! | 複数のセルを選択したとき「,」や「:」が無い場合 |
2 | #DIV/0! | 割り算で母数が「0」の場合 |
3 | #VALUE! | 数式の関数を使用した時対象が文字列の場合 |
4 | #REF! | 関数の対象セルが削除された場合 |
5 | #NAME? | 存在しない関数、使用できない関数を指定した場合 |
6 | #NUM! | 数式の結果が表示できないほど小さな(大きな)数値の場合 |
7 | #N/A | 関数で指定された範囲内のセルにエラーがある場合 |
8 | | その他のエラーの場合 |
セルE3)=VLOOKUP("GGG",B3:C9,2,0)
セルF3)=IFERROR(ERROR.TYPE(E3),"")
VLOOKUPの参照値「"GGG"」が見つからないので「#N/A」エラーでERROR.TYPEは(7)になります
セルE5)=VLOKUP("GGG",B3:C9,2,0)
セルF5)=IFERROR(ERROR.TYPE(E5),"")
「VLOOKUP」のスペルが「VLOKUP」と間違っているので「#NAME?」エラーでERROR.TYPEは(5)になります
セルE7)=VLOOKUP("DDD",B3:C9,2,0)/0
セルF7)=IFERROR(ERROR.TYPE(E7),"")
「VLOOKUP」の結果は40ですが0で割っているので「#DIV/0!」エラーでERROR.TYPEは(2)になります
エラーを非表示にするならば数式をIFERRORに入れて空白を指定します
=IFERROR(VLOOKUP("GGG",B3:C9,2,0),"")
エラーを0にするならば数式をIFERRORに入れて0を指定します
=IFERROR(VLOOKUP("GGG",B3:C9,2,0),"0")
「#N/A」エラーの場合だけ空白にする場合
「#N/A」のERROR.TYPEは7なのでIF関数を使用してERROR.TYPE(E3)が7の場合を空白、7でなければ元のセルを実行します
=IF(IFERROR(ERROR.TYPE(E3),"")=7,"",E3)
数式で直接入力する場合
=IF(IFERROR(ERROR.TYPE(VLOOKUP("GGG",B3:C9,2,0)),"")=7,"",VLOOKUP("GGG",B3:C9,2,0))
「#DIV/0!」エラーの場合だけ空白にする場合
=1/0 割り算の母数が0なので「#DIV/0!」エラーになります
=ERROR.TYPE(1/0) 「#DIV/0!」エラーなので2になります
ERROR.TYPE関数は対象がエラーではない場合「#N/A」エラーになります
エラーではない場合エラーなるというおかしな現象を回避するために
ERROR.TYPEをIFERRORの中に入れてエラー時は空白にします
=IFERROR(ERROR.TYPE(1/0),"")
例が「1/0」なので必ずエラーになりますがこれは例なので実際は別の数式やセルを指定します
IF関数でエラー値が「#DIV/0!」の時だけ空白にします
=IF(
論理式,
真の場合,
偽の場合)
論理式 IFERROR(ERROR.TYPE(1/0),"")=2
真の場合 ""(空白)
偽の場合 1/0
=IF(
IFERROR(ERROR.TYPE(1/0),"")=2,
"",
1/0)
これでセルや数式が「#DIV/0!」の時だけ空白になります
関連するスプレッドシート関数
IF | 値または数式が条件を満たしているかどうかをテスト |
COUNTIF | 検索条件に一致するセルの個数を返します |
SUM | 指定したセルに含まれる数値をすべて合計します |
VLOOKUP | 値を検索して範囲内の対応するセルの値を返します |
VALUE | 文字列として表示された数字を数値に変換します |
「#DIV/0!」「#VALUE!」などエラー値を特定して空白にする方法>
HOME