エクセルISNUMBER関数とは?基本的な使い方をマスターしよう
エクセルでデータ分析や集計を行う際、「このセルに入っているデータは数値なのか?それとも文字列なのか?」を判定したい時に役立つのが、ISNUMBER関数です。
ISNUMBER関数の役割
指定したセルや値が「数値」であるかどうかを判定し、その結果を論理値(TRUEまたはFALSE)で返す関数
このTRUE/FALSEの結果を利用して、後述のIF関数などで処理を分岐させることができます。
ISNUMBER関数の書式
ISNUMBER関数の書式:
=ISNUMBER(値)
値:数値かどうかを判定したいセル、または直接入力した値や式を指定します。
例題:基本的な数値判定
以下の表を使って、基本的な使い方を見てみましょう。

数式:
=ISNUMBER(A2)
B列の数式から分かること:
- A2の「123」は純粋な数値なので、TRUEを返しています。
- A3の「Excel」は文字列なので、FALSEを返しています。
- A4の「12/25」は、エクセル内部ではシリアル値という数値として扱われるため、TRUEを返しています。
- A5の「’456」は、見た目は数字ですが、セルの先頭に
'(アポストロフィ)が付いているため文字列として扱われ、FALSEを返しています。
知っておきたい応用技:関数*1と複数条件の判定
関数*1:計算結果が数値かどうかの判定
ISNUMBER関数は、セルだけでなく、他の関数の結果が数値であるかどうかも判定できます。
たとえば、セルに計算式の結果が入っている場合、その結果が数値として成立しているかをチェックできます。
=ISNUMBER(A2+B2)
例題:計算結果の判定


C2セル数式:
=ISNUMBER(A2+B2)
C3セル数式:
=ISNUMBER(A3+B3)
C4セル数式:
=ISNUMBER(A4/B4)
エラー値は数値ではないため、計算結果がエラーになった場合、ISNUMBER関数はFALSEを返します。この特性は、エラーチェックにも応用できます。
複数条件(AND/OR)の判定は可能?
ISNUMBER関数自体は単一の値を判定するものなので、複数のセルを直接判定することはできません。
しかし、AND関数やOR関数と組み合わせることで、「A1もB1も両方とも数値であるか」や「A1かB1のどちらか一方が数値であるか」といった複数条件の判定が可能です。
- AND条件(両方数値):
=AND(ISNUMBER(A2), ISNUMBER(B2))
- OR条件(どちらか数値):
=OR(ISNUMBER(A2), ISNUMBER(B2))
例題:AND関数と組み合わせた複数判定

【実務で必須】ISNUMBER関数とIF関数の組み合わせ方
ISNUMBER関数が返すTRUE/FALSEという論理値は、IF関数の論理式として活用するのに最適です。
これにより、数値であるかどうかに応じて処理を条件分岐させることができます。
組み合わせの書式
=IF(ISNUMBER(値), 真の場合に返す値, 偽の場合に返す値)
例題:数値データのみを合計する
以下の売上データの中から、数値として入力されている売上データのみを合計したいとします。
| A列 | B列 | C列 | D列 |
| 商品 | 売上 | 数式 | 結果 |
| りんご | 1500 | =IF(ISNUMBER(B2), B2, 0) | 1500 |
| みかん | 2000 | =IF(ISNUMBER(B3), B3, 0) | 2000 |
| バナナ | データなし | =IF(ISNUMBER(B4), B4, 0) | 0 |
| メロン | 3000 | =IF(ISNUMBER(B5), B5, 0) | 3000 |
| いちご | ‘1000 | =IF(ISNUMBER(B6), B6, 0) | 0 |
| 合計 | 6500 |
C列の数式の意味:
- ISNUMBER(B2):B2セルが数値かどうかを判定します。
- 判定がTRUE(数値)の場合:B2の値、つまり売上金額そのままを返します。
- 判定がFALSE(数値以外、または文字列)の場合:0を返します。
C列の値をすべて合計(=SUM(C2:C6))すると、数値データのみの合計値6500円を正確に求めることができます。

ISNUMBER関数とMATCH関数の組み合わせ方
ISNUMBER関数は、MATCH関数と組み合わせることで、特定の範囲から数値データがどこにあるかを検索し、その位置(行番号)を取得するテクニックにも使われます。
特に、配列数式として利用することで強力な検索機能を発揮します。
組み合わせの考え方
- MATCH関数の検査値に、検索対象のデータと同じサイズの配列を指定します。
- その配列に、ISNUMBER(範囲)の結果であるTRUE/FALSEの配列を入れます。
- MATCH関数の検査範囲には、TRUEという論理値を指定します。
これにより、範囲内で最初にTRUE(数値)が出現した場所を特定できます。
例題:範囲内で最初の数値データの位置を特定する
以下のリストから、最初に入力されている数値データが何行目にあるかを見つけたいとします。
| A列 |
| データ |
| 項目名 |
| 文字列A |
| 100 |
| 200 |
| 文字列B |
| 300 |
| 文字列C |
B2セルに入力する数式(配列数式):
=MATCH(TRUE, ISNUMBER(A2:A8), 0)
この数式を実行すると、結果は2となります。
これは、検索範囲のA2:A8の中で、2番目のセルであるA2(値:文字列A)の次、A3節にある「100」が最初の数値であることを示しています。
配列数式として入力すると、ISNUMBER(A2:A8)が{FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE}という配列を返し、その中でTRUEを検索するため、結果は2となります。

この数式は、配列数式として入力する必要があります。通常通りEnterを押すのではなく、数式入力後に Ctrl + Shift + Enter (Macの場合は Command + Shift + Enter) を押してください。数式が中括弧 { } で囲まれれば成功です。
ISNUMBER関数を使う上での注意点
「見た目は数字なのにFALSEになる」という現象について解説します。
1. 文字列として扱われている数字
前述の通り、見た目は数字でも、文字列として入力されているとISNUMBER関数はFALSEを返します。
- 例:「’123」(セルの先頭にアポストロフィがある)
- 例:Webや他のシステムからコピー&ペーストした際、文字形式で貼り付けられてしまった数字
文字列として扱われている数字を数値に戻すには、以下の方法があります。
2. 空白セル
空白セルは、ISNUMBER関数では数値ではないと判定され、FALSEが返されます。
空欄のセル:
=ISNUMBER(A1)
→ FALSE
もし、「空白セルは無視して、何かデータが入っているなら数値か判定したい」という場合は、ISBLANK関数などで事前に空白チェックを行う必要があります。
まとめ
今回は、エクセルのISNUMBER関数について、基本的な使い方から応用、そして注意点までを詳しく解説しました。
| 機能 | 使い方 | 組み合わせ |
|---|---|---|
| 基本的な役割 | セルや値が数値かを判定し、TRUE/FALSEを返す | |
| 条件分岐 | 判定結果(TRUE/FALSE)を論理式として活用する | IF関数 |
| 検索 | 範囲内の最初の数値データの位置を特定する | MATCH関数(配列数式) |
| 注意点 | 見た目が数字でも文字列として入力されている場合はFALSEになる | VALUE関数で数値に変換可能 |
ISNUMBER関数は、データクレンジングや集計の際に、数値データだけを正確に扱うための土台となる非常に重要な関数です。
ぜひ、今回ご紹介したIF関数やMATCH関数との組み合わせ技をマスターして、日々のエクセル業務の効率アップに役立ててください!
コメント