=ISBLANK(B2)は、B2が空ならTRUE、そうでなければFALSEを返します。=ISNUMBER(B2)は、B2に数値が入っていればTRUEを返します。これらのIS関数はセルについて「はい」か「いいえ」で答える質問を1つ判定するもので、たいていはIFの中の条件として使います:=IF(ISBLANK(B2),"Missing","OK")。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | What | Value | ISBLANK | ISNUMBER | ISTEXT | ISERROR |
| 2 | Number | 120 | FALSE | TRUE | FALSE | FALSE |
| 3 | Text | Apple | FALSE | FALSE | TRUE | FALSE |
| 4 | Empty cell | TRUE | FALSE | FALSE | FALSE | |
| 5 | Number as text | 42 | FALSE | FALSE | TRUE | FALSE |
| 6 | Date | 2026-03-15 | FALSE | TRUE | FALSE | FALSE |
| 7 | Logical | TRUE | FALSE | FALSE | FALSE | FALSE |
| 8 | Error | #DIV/0! | FALSE | FALSE | FALSE | TRUE |
各行を横に読んでください。意外に感じる結果がいくつかあります:
- 日付は数値です。Excelは日付を日数として保存しているので、
2026-03-15に対するISNUMBERはTRUEです。 '42は数値に見えますが文字列なので、ISNUMBERはFALSE、ISTEXTはTRUEです。取り込んだデータはよくこの形で入ってきます。- TRUEは数値でも文字列でもないので、7行目は4列すべてFALSEです。これを判定するのはISLOGICALです。
B5に(アポストロフィなしで)42と入力すると、その行はISNUMBERがTRUEに変わります。
ISBLANKと=""の違い: ""を返す数式は空白ではない
ISBLANKがTRUEになるのは、何も入っていないセルだけです。""を返す数式のセル(=IF(C2="","",C2*D2)など)は空に見えますが、数式が入っているのでISBLANKはFALSEになります。""と比べれば、どちらも空として扱えます:
B2 is empty, B3 holds =""
=ISBLANK(B2) TRUE
=ISBLANK(B3) FALSE
=B2="" TRUE
=B3="" TRUE
下のシートでは、空のセル、""の数式、スペース、0を、""を空として扱う判定で比べています:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | What | Value | Equals "" | LEN |
| 2 | Empty cell | TRUE | 0 | |
| 3 | Formula returning "" | TRUE | 0 | |
| 4 | A space | FALSE | 1 | |
| 5 | Zero | 0 | FALSE | 1 |
| 6 | Count blank | 2 |
数式のセルではB3=""がTRUE、LENが0になり、B6のCOUNTBLANKは空のセルと""の2つを数えます。4行目のスペースは、どの判定でも空ではありません(LENは1)。スペースだけのセルを空白として数えたいなら、=TRIM(B4)=""で判定します。0も空白ではありません。そのため、""を返す数式で埋まった列を判定するときは、ISBLANKではなく=""か<>""を使ってください。
セルに文字列が含まれるか調べる: ISNUMBER(SEARCH())
ExcelにはCONTAINS関数がありません。SEARCHはある文字列が始まる位置を返し、見つからなければ#VALUE!を返します。ISNUMBERがそれをTRUEかFALSEに変えます:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Contains laptop | Case-sensitive | |
| 2 | Pro Laptop 14 | Yes | No | |
| 3 | Mouse | No | No | |
| 4 | Laptop stand | Yes | No | |
| 5 | USB cable | No | No | |
| 6 | laptop bag | Yes | Yes |
SEARCHは大文字と小文字を区別しないので、C列では「Laptop」も「laptop」も一致します。FINDは大文字と小文字を区別するので、D列で一致するのは「laptop bag」だけです。A3をGaming laptopに変えると、両方の列がYesになります。2つの関数の詳細はFINDとSEARCHのページで説明しています。印を付けるのではなく一致するセルを数えるなら、=COUNTIF(A2:A6,"*laptop*")を使います。
ISERROR、ISERR、ISNA
エラーを判定する関数は3つあり、#N/Aの扱いが違います:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | What | Value | ISERROR | ISNA | ISERR |
| 2 | Not found | #N/A | TRUE | TRUE | FALSE |
| 3 | Divide by 0 | #DIV/0! | TRUE | FALSE | TRUE |
| 4 | Bad argument | #NUM! | TRUE | FALSE | TRUE |
| 5 | Text in math | #VALUE! | TRUE | FALSE | TRUE |
| 6 | A number | 42 | FALSE | FALSE | FALSE |
ISERRORは4つのエラーすべてでTRUEです。ISNAは、検索で値が見つからないときに返る#N/AのときだけTRUEです。ISERRはその逆で、#N/A以外のすべてのエラーでTRUEです。エラーを判定するのではなく置き換えるなら、=IF(ISERROR(B2),0,B2)より=IFERROR(B2,0)のほうが短く書けます。IFERRORのページをご覧ください。
ISEVENとISODD
=ISEVEN(B2)は偶数のとき、=ISODD(B2)は奇数のときTRUEです。0は偶数で、マイナスの数も使えます。小数は先に整数に切り捨てられるので、2.5は2として扱われます:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Number | ISEVEN | ISODD |
| 2 | A | 4 | TRUE | FALSE |
| 3 | B | 7 | FALSE | TRUE |
| 4 | C | 0 | TRUE | FALSE |
| 5 | D | -3 | FALSE | TRUE |
| 6 | E | 2.5 | TRUE | FALSE |
文字列を渡すと#VALUE!になります。縞模様の行や「1行おき」の規則のために偶数行と奇数行を見分けるには、=ISEVEN(ROW())を使います。
練習: 名前に「pro」が含まれるか
| A | B | |
|---|---|---|
| 1 | Product | Pro model |
| 2 | Laptop Pro 14 | |
| 3 | Office Chair | |
| 4 | Monitor PRO 27 | |
| 5 | Desk Lamp |
やってみよう: B2で、A2の商品名に大文字小文字を問わず「pro」が含まれていれば「Yes」、そうでなければ「No」と表示してください。数式はB5まで下にコピーされます。
どのIS関数を使うか
| 関数 | TRUEになる値 |
|---|---|
ISBLANK | 空のセル(""、スペース、0は除く) |
ISNUMBER | 数値(日付、時刻、パーセントを含む) |
ISTEXT | 文字列(文字列として保存された数値と""を含む) |
ISNONTEXT | 文字列以外のすべて(空のセルを含む) |
ISLOGICAL | TRUEまたはFALSE |
ISERROR | すべてのエラー |
ISERR | #N/A以外のすべてのエラー |
ISNA | #N/Aだけ |
ISEVEN / ISODD | 偶数 / 奇数 |
ISFORMULA | 数式が入ったセル |
ISREF | セル参照 |
数値に見える値で=ISNUMBER(B2)がFALSEになるなら、それは文字列として保存されていて、SUMでも飛ばされます。まずデータを直してください(方法は文字列を数値に変換するページにあります)。そうすればIS関数の判定と合計が一致します。
よくある質問
空に見えるセルでISBLANKがFALSEを返すのはなぜですか?
セルに見えないものが入っているからです。空の文字列を返す数式(="")、スペース、アポストロフィなどです。ISBLANKがTRUEになるのは本当に空のセルだけです。""も空として扱うなら、代わりに=B2=""か=LEN(B2)=0で判定します。
Excelでセルが数値かどうか調べるには?
=ISNUMBER(B2)を使います。数値、日付、パーセントにはTRUEを返し、文字列にはFALSEを返します。'42のように文字列として保存された数値もFALSEです。IFの中なら=IF(ISNUMBER(B2),B2*2,"Not a number")です。
ISERROR、ISERR、ISNAの違いは何ですか?
ISERRORはどのエラーでもTRUEです。ISNAは#N/AのときだけTRUEです。ISERRは#N/A以外のすべてのエラーでTRUEです。エラーを判定するのではなく置き換えたいなら、IFERRORかIFNAを使います。
数値なのにISNUMBERがFALSEを返すのはなぜですか?
数値が文字列として保存されているからです。取り込んだデータによくあり、セルには42と表示されていても中身は文字列の「42」で、たいてい左揃えで緑色の三角形が付いています。=ISTEXT(B2)はこれにTRUEを返します。VALUEか--B2で変換してください。
Excelで「空白でなければ」のIFはどう書きますか?
空の文字列と等しくないかを判定します:=IF(B2<>"","Filled","Empty")、または=IF(NOT(ISBLANK(B2)),"Filled","Empty")。1つ目は""を返す数式も空として扱います。