エクセルで数式を組み立てる際、セルが空白であるかどうかを判定する必要がある場面は非常に多いでしょう。
データベースではNULL値という概念がありますが、エクセルでは「空白セル」や「空文字列」がこれに相当します。
NULL値を適切に処理できないと、計算結果にエラーが表示されたり、意図しない値が出力されたりするため注意が必要です。
本記事では、エクセルでNULL値を判定・処理する方法として、ISBLANK関数、IF関数、IFERROR関数などの使い方を詳しく解説いたしますので、ぜひ参考にしてくださいませ。
ISBLANK関数で空白セルを判定する基本
それではまずISBLANK関数について解説していきます。
ISBLANK関数は、指定したセルが空白かどうかを判定し、TRUEまたはFALSEを返す関数です。
ISBLANK関数の基本構文と使い方
ISBLANK関数の構文は非常にシンプルで、以下のような形式になっています。
=ISBLANK(セル)
例:=ISBLANK(A1)
A1が空白ならTRUE、何か入力されていればFALSEを返す
この関数は、セルに何も入力されていない状態を検出するため、データが存在するかどうかを確認したい場合に非常に便利です。
ただし、スペースや空文字列(“”)が入力されているセルは空白とは判定されないため、注意してください。
ISBLANK関数とIF関数を組み合わせる
ISBLANK関数は単独でも使えますが、IF関数と組み合わせることでより実用的な処理が可能になります。
例えば、セルが空白の場合には特定のメッセージを表示し、空白でない場合には計算を実行するといった使い方ができるでしょう。
=IF(ISBLANK(A1),”未入力”,A1*1.1)
A1が空白なら「未入力」と表示、空白でなければA1の値に1.1を掛けた値を返す
このように、ISBLANK関数で条件を判定し、IF関数で処理を分岐させることで、エラーを防ぎながら柔軟なデータ処理が実現できます。
複数セルの空白判定をまとめて行う
複数のセルが全て空白かどうかを確認したい場合には、AND関数やOR関数と組み合わせることが有効です。
例えば、A1からA5まで全てが空白かどうかを判定する場合は以下のようになります。
=AND(ISBLANK(A1),ISBLANK(A2),ISBLANK(A3),ISBLANK(A4),ISBLANK(A5))
全てのセルが空白の場合にTRUEを返す
OR関数を使えば、いずれか1つでも空白があればTRUEを返すといった判定も可能です。
データの入力漏れをチェックする際などに活用できるでしょう。
IF関数とLEN関数で空文字列も含めた判定を行う
続いてはIF関数とLEN関数を使った空白判定について確認していきましょう。
ISBLANK関数では、数式の結果として空文字列(“”)が入力されているセルを空白とは判定できません。
空文字列とは何か
空文字列とは、見た目は空白でも実際には””という文字列が入力されている状態を指します。
例えば、=IF(条件,””,”値”)のような数式を使った場合、条件を満たさないセルには空文字列が入力されるため、ISBLANKではTRUEにならないのです。
このような場合には、LEN関数を使ってセルの文字数を確認する方法が有効です。
LEN関数は文字列の長さを返すため、空白セルや空文字列の場合には0を返します。
LEN関数を使った空白判定の方法
LEN関数を使った空白判定は以下のように記述します。
=IF(LEN(A1)=0,”空白です”,”入力されています”)
A1が空白または空文字列なら「空白です」、それ以外なら「入力されています」と表示
この方法であれば、ISBLANKでは判定できない空文字列も含めて空白として扱うことができるため、より確実な判定が可能になります。
空白・空文字列・スペースを区別する
実務では、完全な空白、空文字列、スペースのみが入力されたセルを区別したい場合もあるでしょう。
以下の表で、それぞれの判定方法をまとめておきます。
| セルの状態 | ISBLANK | LEN=0 | TRIM後のLEN=0 |
|---|---|---|---|
| 完全に空白 | TRUE | TRUE | TRUE |
| 空文字列(“”) | FALSE | TRUE | TRUE |
| スペースのみ | FALSE | FALSE | TRUE |
| 文字あり | FALSE | FALSE | FALSE |
TRIM関数は前後のスペースを削除する関数のため、=LEN(TRIM(A1))=0とすればスペースのみのセルも空白として判定できます。
IFERROR関数とISERROR関数でエラー処理を行う
続いてはエラー処理について確認していきましょう。
NULL値が原因で計算エラーが発生する場合には、IFERROR関数やISERROR関数を使うことで適切に処理できます。
IFERROR関数の基本と使い方
IFERROR関数は、数式がエラーを返した場合に指定した値を表示し、エラーでなければ数式の結果を返す関数です。
空白セルに対する計算や、VLOOKUP関数での検索失敗などでエラーが発生する場合に非常に便利でしょう。
=IFERROR(A1/B1,”計算不可”)
B1が空白やゼロの場合、割り算でエラーが出るが「計算不可」と表示される
この関数を使えば、エラー表示を避けつつ、ユーザーに分かりやすいメッセージを提示することができます。
ISERRORとIF関数を組み合わせる
ISERROR関数は、数式がエラーかどうかを判定してTRUEまたはFALSEを返す関数です。
IF関数と組み合わせることで、IFERROR関数と同様の処理が可能になります。
=IF(ISERROR(A1/B1),”計算不可”,A1/B1)
IFERROR関数と同じ結果が得られる
ただし、IFERROR関数のほうが記述が簡潔なため、特別な理由がない限りはIFERROR関数を使うことをお勧めいたします。
エラーの種類別に処理を分ける
エクセルには複数の種類のエラーがあり、それぞれ原因が異なります。
エラーの種類を判定したい場合には、ERROR.TYPE関数を使うことで数値として取得できるため、IF関数と組み合わせて処理を分岐させることも可能です。
NULL値やエラー処理を適切に行うことで、数式の安全性が大幅に向上します。特に他の人が使うファイルを作成する場合には、エラー処理を丁寧に実装しておくことが重要です。
COUNTBLANK関数で空白セルの数を数える
続いてはCOUNTBLANK関数について確認していきましょう。
この関数は、指定した範囲内の空白セルの個数を数える関数です。
COUNTBLANK関数の基本構文
COUNTBLANK関数の構文は以下のとおりです。
=COUNTBLANK(範囲)
例:=COUNTBLANK(A1:A10)
A1からA10の範囲で空白のセルが何個あるかを返す
この関数を使えば、データの入力状況を確認したり、未入力の項目がいくつあるかを集計したりすることができます。
データ入力の進捗管理に活用する
例えば、アンケートの回答表で未回答の項目数を表示したい場合、COUNTBLANK関数を使えば簡単に集計できるでしょう。
全体の項目数から未回答数を引けば、回答済みの項目数も算出できます。
未回答数:=COUNTBLANK(B2:B100)
回答済み数:=COUNTA(B2:B100)
進捗率:=COUNTA(B2:B100)/99*100&”%”
このように、COUNTBLANK関数とCOUNTA関数を組み合わせることで、データの入力進捗を可視化することが可能です。
空文字列はカウントされない点に注意
COUNTBLANK関数も、ISBLANKと同様に空文字列(“”)が入力されているセルは空白としてカウントしません。
数式の結果として空文字列が入っているセルも含めて数えたい場合には、別の方法が必要になります。
例えば、=SUMPRODUCT((LEN(A1:A10)=0)*1)のように、LEN関数とSUMPRODUCT関数を組み合わせることで、空文字列も含めた空白セルをカウントできます。
まとめ
エクセルでNULL値を判定・処理するには、ISBLANK関数、LEN関数、IF関数、IFERROR関数など複数の方法があります。
ISBLANK関数は完全な空白セルを判定するのに適しており、LEN関数を使えば空文字列も含めた判定が可能です。
エラー処理にはIFERROR関数が便利で、計算エラーを適切にハンドリングできるでしょう。
また、COUNTBLANK関数を使えば空白セルの数を簡単に集計できるため、データ入力の進捗管理にも活用できます。
実務では、データの状態に応じてこれらの関数を使い分けることが重要です。
空白と空文字列の違いを理解し、適切な判定方法を選択することで、より安全で使いやすいエクセルファイルを作成できるでしょう。