「Excelで数字が入っているはずなのに、SUM関数で合計すると0になる…」そんな経験はありませんか。原因の多くは、見た目は数字なのにセルの中身が「文字列」として扱われていることです。
こうした「見えない型のズレ」を一発で見抜けるのが、ISNUMBER関数です。
この記事では、ISNUMBER関数の基本から実務活用まで解説します。文字列型数字の見分け方、SEARCH関数との組み合わせ、TYPE関数やIS系12関数との使い分けもカバーします。
この記事は次のような人におすすめ
– セルの値が数値として認識されているか確認したい
– 文字列型の数字と数値型の違いを見分けたい
– SEARCH関数やIF関数と組み合わせた実務テクニックを知りたい
– IS系関数やTYPE関数との違いを整理したい
ISNUMBER関数とは?
ISNUMBER(いず・なんばー)関数は、指定した値が数値かどうかをTRUE/FALSEで判定する関数です。「IS(〜かどうか)+ NUMBER(数値)」が名前の由来です。
対象が数値であればTRUEを返します。文字列・論理値・エラー値・空白セルなど、数値以外はすべてFALSEです。
ExcelのIS系関数(情報関数)の1つで、セルに入っているデータの種類を確認するファミリーに属しています。データの品質チェックや条件分岐の前処理など、実務のさまざまな場面で活躍します。
NOTE
ISNUMBER関数はExcel 2003以降のすべてのバージョンで使用できます。Excel 2021 / Microsoft 365はもちろん、Googleスプレッドシートでも同じ構文で利用可能です。
ISNUMBER関数の書き方(構文と引数)
基本構文
=ISNUMBER(テストの対象)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| テストの対象 | 必須 | 数値かどうか判定したい値またはセル参照 |
引数は1つだけで、省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。
ISNUMBER関数の基本的な使い方
まずはシンプルな例で、どんな値がTRUE/FALSEになるか確認してみましょう。
値の種類ごとの判定結果
さまざまなデータをISNUMBER関数に渡したときの結果を一覧にまとめます。
| 数式 | 結果 | 理由 |
|---|---|---|
=ISNUMBER(100) | TRUE | 整数は数値 |
=ISNUMBER(3.14) | TRUE | 小数も数値 |
=ISNUMBER(-50) | TRUE | 負の数も数値 |
=ISNUMBER("100") | FALSE | ダブルクォーテーションで囲むと文字列 |
=ISNUMBER("東京") | FALSE | テキストは数値ではない |
=ISNUMBER(TRUE) | FALSE | 論理値は数値ではない |
=ISNUMBER("") | FALSE | 空文字列は数値ではない |
ポイントは、"100" のように引用符で囲んだ数字はテキスト扱いになる点です。見た目が同じでも型が違えばFALSEになります。
セル参照で判定する
実務ではセル参照を使うケースがほとんどです。
=ISNUMBER(A1)
A1に 100 が入っていればTRUEを返します。"東京" や論理値 TRUE が入っていればFALSEです。
TIP
日付や時刻もExcel内部ではシリアル値(数値)として管理されています。そのため、日付セルに対してISNUMBERを使うとTRUEが返ります。「日付かどうか」を判定したいときはISNUMBERでは区別できない点に注意してください。
数式の結果を判定する
ISNUMBER関数の引数には数式を直接入れることもできます。
=ISNUMBER(A1+B1)
A1とB1が両方とも数値なら、計算結果も数値のためTRUEです。どちらかが文字列だと #VALUE! エラーが発生し、ISNUMBERはFALSEを返します。
文字列型数字と数値型の見分け方
ISNUMBER関数が実務でもっとも重宝するのが、「文字列型の数字」を見つける場面です。
文字列型数字の落とし穴
CSVファイルの取り込みや外部システムからのコピー&ペーストで、数字が文字列として格納されることがあります。見た目はまったく同じ 1234 でも、型が違うとこんなトラブルが起きます。
- SUM関数やAVERAGE関数の計算対象から除外される
- VLOOKUP関数で一致しない(数値と文字列は別物)
- 並べ替えが期待どおりにならない
セルの左上に緑色の小さな三角マークが表示されていたら、文字列型数字のサインです。
ISNUMBERで確認する
問題のあるセルを特定するには、ISNUMBERで一列まとめてチェックするのが手軽です。
=ISNUMBER(C2)
数値型の 1234 ならTRUE、文字列型の "1234" ならFALSEです。この数式を下方向にコピーすれば、どのセルが文字列型なのか一目でわかります。
VALUE関数で数値に変換する
文字列型の数字が見つかったら、VALUE関数で数値に変換しましょう。
=VALUE(C2)
変換できない文字列(例: 「abc」)を渡すと #VALUE! エラーになります。エラーを回避したい場合は、IFERROR関数と組み合わせてください。
=IFERROR(VALUE(C2),"変換不可")
もう1つの方法として、セルを選択して「データ」タブの「区切り位置」機能を使えば、一括で数値型に変換することもできます。
ISNUMBER関数の実務活用パターン
パターン1: IF関数と組み合わせてデータ種別を振り分ける
セルの内容が数値かどうかに応じて処理を分けたい場面で使えます。
=IF(ISNUMBER(B2),"数値です","数値ではありません")
B2が数値なら「数値です」、それ以外なら「数値ではありません」と表示します。外部システムから取り込んだデータに、数値が入るべき列で文字列が混ざっていないかチェックするのに便利です。
IF関数との組み合わせは、データクレンジングの第一歩としてよく使われるパターンです。
パターン2: SEARCH関数と組み合わせて部分一致を判定する
ISNUMBER関数のもっとも有名な活用法が、SEARCH関数との組み合わせです。
SEARCH関数は指定した文字が見つかると位置(数値)を返します。見つからないと #VALUE! エラーです。これをISNUMBERで包むと、エラーがFALSEに変わります。
=ISNUMBER(SEARCH("東京",A2))
A2に「東京都千代田区」が入っていればTRUEを返します。「大阪府」ならFALSEです。SEARCH関数は大文字・小文字を区別しません。大文字・小文字を区別したい場合はFIND関数に置き換えてください。
IF関数と組み合わせれば、含む/含まないで分岐もできます。
=IF(ISNUMBER(SEARCH("東京",A2)),"関東","その他")
条件付き書式のルールにこの数式を設定すれば、特定の文字を含むセルだけをハイライトすることも可能です。
パターン3: 条件付き書式で数値以外のセルをハイライトする
数値が入るべき列に文字列が紛れ込んでいるセルだけを目立たせたい場合の設定手順です。
- 対象範囲を選択します
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
- 「数式を使用して、書式設定するセルを決定」を選びます
- 数式欄に
=NOT(ISNUMBER(A1))と入力します - 好きな書式(赤い塗りつぶしなど)を設定します
これで数値以外のセルが色分けされます。大量データの品質チェックで、目視では見落としがちな文字列型数字を一発で見つけられます。
パターン4: データの入力規則で数値のみに制限する
数値以外の入力をあらかじめブロックしたい場合は、データの入力規則にISNUMBERを使います。
- 対象セル(例: A1:A100)を選択します
- 「データ」タブ →「データの入力規則」を選択します
- 「設定」タブで「入力値の種類」を「ユーザー設定」にします
- 数式欄に
=ISNUMBER(A1)と入力します
これで文字列型の数字も含めて、数値以外が入力されたときにエラーメッセージが表示されます。「整数」や「小数点数」の組み込みルールとの違いは、文字列として入力された数字も拒否できる点です。
ISNUMBER関数とTYPE関数の使い分け
「セルの型を調べる」という目的では、TYPE関数も選択肢に入ります。両者の違いを整理しておきましょう。
| 比較項目 | ISNUMBER関数 | TYPE関数 |
|---|---|---|
| 戻り値 | TRUE / FALSE | 数値コード(1, 2, 4, 16, 64) |
| 判定対象 | 数値かどうか(1つの型のみ) | すべての型を区別できる |
| IF関数との相性 | そのまま条件に使える | コードと比較する必要がある |
| 可読性 | 高い(結果がわかりやすい) | 低い(コードの意味を覚える必要あり) |
TYPE関数が返す数値コードは次のとおりです。
| コード | データ型 |
|---|---|
| 1 | 数値 |
| 2 | テキスト |
| 4 | 論理値 |
| 16 | エラー値 |
| 64 | 配列 |
用途別の選び方
「数値かどうか」だけを知りたいならISNUMBER関数がおすすめです。結果がTRUE/FALSEなので、IF関数や条件付き書式にそのまま組み込めます。
一方、「数値・テキスト・論理値・エラーをすべて区別したい」ときはTYPE関数の出番です。たとえば =IF(TYPE(A1)=2,"テキスト","テキスト以外") のように使います。
実務では「数値かどうか」を確認するケースが圧倒的に多いです。まずISNUMBER関数を覚えておけば、大半の場面で困りません。
IS系12関数まとめ比較
IS系関数は全部で12種類あります。セルに入っているデータの種類ごとに、対応する関数が用意されています。
| 関数名 | 判定内容 | TRUEになる例 |
|---|---|---|
| ISBLANK | 空白セルか | 未入力のセル |
| ISERROR | 任意のエラー値か | #N/A, #VALUE!, #REF! など |
| ISERR | #N/A以外のエラー値か | #VALUE!, #REF!, #DIV/0! など |
| ISNA | #N/Aエラーか | #N/Aのみ |
| ISLOGICAL | 論理値か | TRUE, FALSE |
| ISNUMBER(この記事) | 数値か | 100, 3.14, 日付のシリアル値 |
| ISTEXT | 文字列か | “東京”, “123”(文字列型) |
| ISNONTEXT | 文字列以外か | 100, TRUE, 空白 |
| ISFORMULA | 数式が入っているか | =SUM(A1:A10)が入ったセル |
| ISREF | 有効なセル参照か | A1, Sheet2!B3 |
| ISEVEN | 偶数か | 2, 4, 100 |
| ISODD | 奇数か | 1, 3, 99 |
NOTE
ISFORMULAはExcel 2013以降で使用できます。それ以外のIS系関数はExcel 2003以降で利用可能です。
選び方のポイント
迷ったときは、次の流れで考えてみてください。
- 数値かどうか知りたい → ISNUMBER
- 文字列かどうか知りたい → ISTEXT関数
- 空白セルかどうか知りたい → ISBLANK関数
- エラー値を処理したい → ISERROR関数またはIFERROR関数
- 数式が入っているか確認したい → ISFORMULA関数
よくある疑問と対処法
日付セルでTRUEが返るのはなぜ?
Excelの日付は内部的にシリアル値(数値)で管理されています。たとえば 2026/3/21 はシリアル値 46097 です。ISNUMBERはシリアル値を見るのでTRUEになります。
日付かどうかを判定したい場合は、CELL("format",A1) 関数で表示形式を確認する方法があります。日付形式のセルは "D1" や "D4" などのコードが返ります。
空白セルはFALSEになる?
はい、空白セルはFALSEです。空白は「何も入っていない」状態であり、数値ではありません。空白かどうかを判定したい場合はISBLANK関数を使ってください。
ただし、数式の結果が空文字列("")のセルと、本当に空のセルは異なります。見た目は同じ空白でも、数式が入っているセルはISBLANKでFALSEになる点に注意です。
ISNUMBER自体がエラーを返すことはある?
ISNUMBER関数自体がエラーを返すことはほぼありません。引数にエラー値を渡しても、エラーをそのまま返すのではなくFALSEを返します。
=ISNUMBER(1/0)
1/0 は #DIV/0! エラーですが、ISNUMBERはFALSEを返します。この「エラーを吸収する」性質があるため、SEARCH関数との組み合わせが成立するわけです。
まとめ
ISNUMBER関数は、セルの値が数値かどうかをTRUE/FALSEで判定するシンプルな関数です。
- 引数は1つだけ。数値ならTRUE、それ以外ならFALSE
- 日付・時刻はシリアル値(数値)のためTRUEになる
- 文字列型の数字と数値型を見分けるデータ検証に便利
- SEARCH関数との組み合わせで「特定の文字を含むか」を判定できる
- TYPE関数との違いは、戻り値の形式と判定範囲
IS系12関数の中でも、ISNUMBERは特に出番の多い関数です。データの品質チェックやSEARCH関数との部分一致検索は、Excelの定番テクニックとしてぜひ覚えておいてください。
IS系関数をさらに詳しく知りたい方は、ISTEXT関数やISBLANK関数の記事もあわせてチェックしてみてください。すべてのExcel関数を目的別に探したい場合はExcel関数一覧(機能別)が便利です。
関連記事
- ISTEXT関数の使い方|文字列かどうかを確認する方法
- ISBLANK関数の使い方|空白セルを判定する方法
- ISLOGICAL関数の使い方|論理値(TRUE/FALSE)を判定する方法
- ISERROR関数の使い方|エラー値を判定する方法
- ISFORMULA関数の使い方|数式が入っているか確認する方法
- ISREF関数の使い方|セル参照が有効か判定する方法
- VALUE関数の使い方|文字列を数値に変換する方法
- IF関数の使い方|条件分岐の基本
- IFERROR関数の使い方|エラーを非表示にする方法
- COUNT関数の使い方|数値セルの個数を数える方法
- COUNTBLANK関数の使い方|空白セルを数える方法
- Excel関数一覧(機能別)
