エクセルでよく使う関数のまとめ。入力値が数値かどうかや文字列かどうかなど、値のタイプを判定するIS…関数のまとめ。こちらはセル上で使用できる関数。VBAで使用できる関数についてはこちら。
空欄の判定:ISBLANK関数
入力値(セル)が空欄かどうかを判定し、空欄の場合はTRUEを返します。空欄かどうかの判定なので文字が何かしら含まれているとFALSEを返します。半角や全角スペースのみが含まれるセルもFALSEになります。改行文字列などの目に見えない文字列が含まれる場合もFALSEとなります。
構文
= ISBLANK([入力値])
#N/A以外のエラーの判定:ISERR関数
ISERR関数は入力値が#N/A以外のエラーかどうかを判定し、エラーの場合にはTRUEを返します。つまり「#NULL!」や「#DIV/0!」などを与えるとTRUEとなります。IF関数でエラーが発生しているセルに対する処理を分岐させるときなどに多用します。
構文
= ISERR([入力値])
エラーの判定:ISERROR関数
ISERROR関数はISERR関数と違ってすべてのエラーに対してTRUEを返します。入力値が「#N/A」であっても戻り値はTRUEになります。こちらも、IF関数でエラーが発生しているセルに対する処理を分岐させるときなどに多用します。エラー全般に対して何も考えずに適用できるので、体感的にはISERR関数よりもISERROR関数の方がよく使われるイメージです。
構文
= ISERROR([入力値])
偶数かどうかの判定:ISEVEN関数
ISEVEN関数は入力値が偶数の場合にTRUEを返します。奇数の場合はもちろんFALSEを返すので、偶数か奇数かによって処理を分けたいときに重宝します。後述するISODD関数(奇数かどうかの判定)の反対の動きをします。
構文
= ISEVEN([入力値])
数式を含むかどうかの判定:ISFORMULA関数
ISFORMULA関数は入力値(セル)が数式を含むせるの場合はTRUEを返します。大量にデータがあってどこかに数式が紛れていないかチェックするときなどに使用します。
構文
= ISFORMULA([入力値])
TRUEかFALSEの判定:ISLOGICAL関数
ISLOGICAL関数は入力値がTRUEかFALSEの場合にTRUEを返します。あまり使ったことはありませんが、こんな判定もできるということは頭の片隅に置いておいてもよいかもしれません。
構文
= ISLOGICAL([入力値])
#N/Aの判定:ISNA関数
ISNA関数はその名前の通り、#N/Aが入力値として与えられるとTRUEを返します。
構文
= ISNA([入力値])
文字列以外かどうかの判定:ISNONTEXT関数
ISNONTEXT関数は入力値が文字列だとFALSEを、それ以外だとTRUEを返します。後述するISTEXT関数とちょうど反対の動きをします。文字列かどうかについては「数字以外かどうか」と考えておけばOKです。例えば、半角・全角スペースは文字列として扱われます。また、改行文字も見た目には表示されませんが、その名前の通り文字列として扱われます。
構文
= ISNONTEXT([入力値])
数字かどうかの判定:ISNUMBER関数
ISNUMBER関数は入力値が数字の場合にTRUEを返します。数字以外に対して足し算などの計算を行ってしまうとエラーとなるため、計算を行う前の条件分岐としてよく使用します。ちなみにセル上ではなくVBAで使う場合はIsNumeric関数になります。ややこしい。詳しくはこちら。
構文
= ISNUMBER([入力値])
奇数かどうかの判定:ISODD関数
ISODD関数はISEVEN関数の反対で、入力値が奇数の場合にTRUEを返します。
構文
= ISODD([入力値])
参照かどうかの判定:ISREF関数
ISREF関数は入力値自体がセル参照として機能する場合にはTRUEを返します。言葉だけだとわかりにくいですが、例えば、
- 入力値がどこかのセル(例:A1):TRUE
- 引数が数字(例:2):FALSE
- 引数が文字列(例:”A1″):FALSE
のような動作をします。つまり、ISREF関数がTRUEを返すような入力値は、その値自体を直接どこかのセルに「=[入力値]」としてやっても値が返ってくるということです。INDIRECT関数を使う際に有効な参照になっているか確認するために使ったりします。
構文
= ISREF([入力値])
文字列かどうかの判定:ISTEXT関数
ISTEXT関数は入力値が文字列の場合にTRUEを返します。前述したISNONTEXT関数と判定の動きをする関数です。
構文
= ISTEXT([入力値])