スプレッドシートのISNUMBER関数の使い方|数値判定

スポンサーリンク

スプレッドシートで「このセルに入っているのは数値?それとも文字列?」と確認したくなったことはありませんか?

データの集計や計算の前に、数値かどうかをチェックしたい場面は実務でよくありますよね。

そんなときに使えるのがISNUMBER関数です。セルの値が数値かどうかをTRUE/FALSEで判定してくれます。

この記事では基本の書き方からSEARCH関数・FIND関数との組み合わせによる部分一致検索パターンまで紹介します。

ISNUMBER関数とは?

ISNUMBER関数(読み方: イズナンバー関数)は、指定した値が数値かどうかを判定する関数です。

名前はIS(〜かどうか)+ NUMBER(数値)が由来です。

A1が数値なら =ISNUMBER(A1) はTRUEを返します。

引数はチェックしたい値の1つだけです。結果はTRUEかFALSEの2択なので、とてもシンプルですね。

ISNUMBER関数にできることをまとめると、次のとおりです。

  • セルの値が数値かどうかをTRUE/FALSEで判定する
  • IF関数と組み合わせて数値・文字列で処理を分岐する
  • SEARCH関数やFIND関数と組み合わせて部分一致検索の判定を行う
  • データ入力チェックや集計前のバリデーションに使う

NOTE

ISNUMBER関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。

ISNUMBER関数の書き方(構文と引数)

基本構文

=ISNUMBER(値)

カッコの中に数値かどうかを判定したいセルや値を指定するだけです。

引数の説明

引数必須/任意説明
必須数値かどうかを確認したいセル参照や値(例: A1)

引数は1つだけです。値が数値ならTRUE、数値以外ならFALSEを返します。

ISNUMBER関数がTRUE/FALSEを返すパターン

どんな値がTRUE(数値)と判定されるかを一覧にしました。

データの種類判定結果
整数(1、100、-5など)TRUE(数値)
小数(3.14、0.5など)TRUE(数値)
日付・時刻TRUE(数値)
数式の結果が数値TRUE(数値)
文字列(”abc”、”123″など)FALSE
論理値(TRUE/FALSE)FALSE
エラー値(#N/Aなど)FALSE
空白セルFALSE
数値を文字列として入力(’100)FALSE

特に注意したいポイントが2つあります。

まず、日付と時刻はTRUEになります。スプレッドシートでは日付・時刻を内部的に数値(シリアル値)として扱うためです。

もうひとつは「見た目は数値なのにFALSE」になるケースです。

セルの先頭にアポストロフィ(')を付けて入力すると、文字列扱いになります。

TIP

「123」と入力したのにISNUMBER関数がFALSEを返す場合、セルの書式が「書式なしテキスト」になっている可能性があります。「表示形式」→「数値」→「自動」に変更してみてください。

ISNUMBER関数の基本的な使い方

セルが数値かどうかを判定する

もっともシンプルな使い方です。A1が数値かどうかを確認します。

=ISNUMBER(A1)

A1に数値が入っていればTRUE、文字列や空白ならFALSEが返ります。

IF関数と組み合わせて表示を切り替える

ISNUMBER関数はIF関数と組み合わせることが多いです。数値のときと文字列のときで表示を変えます。

=IF(ISNUMBER(B2), "数値", "数値以外")

B2が数値なら「数値」、それ以外なら「数値以外」と表示します。

数値のときだけ計算を実行する

文字列が混在するデータで、数値のセルだけ計算したいときに使えます。

=IF(ISNUMBER(B2), B2*1.1, "")

B2が数値なら1.1倍した値を表示します。数値以外なら空欄のままです。

複数セルの数値チェック

複数のセルがすべて数値かどうかを確認するパターンです。

=AND(ISNUMBER(A2), ISNUMBER(B2), ISNUMBER(C2))

A2・B2・C2がすべて数値ならTRUEです。1つでも数値以外があればFALSEになります。

ISNUMBER関数の実務活用パターン

ISNUMBER + SEARCHで部分一致検索(最重要パターン)

ISNUMBER関数の実務でもっとも活躍する使い方が、SEARCH関数との組み合わせです。

セルに特定の文字列が含まれるかどうかをTRUE/FALSEで判定できます。

=ISNUMBER(SEARCH("東京", A2))

A2に「東京」が含まれていればTRUEです。含まれていなければFALSEになります。

仕組みを説明します。SEARCH関数は文字列が見つかると位置(数値)を返します。見つからないと#VALUE!エラーです。

ISNUMBER関数は数値ならTRUE、エラーならFALSEを返します。そのため「含むかどうか」の判定ができるわけです。

NOTE

SEARCH関数は大文字・小文字を区別しません。「tokyo」で検索しても「TOKYO」や「Tokyo」がヒットします。大文字・小文字を区別したい場合はFIND関数を使ってください。

ISNUMBER + FINDで大文字・小文字を区別する部分一致検索

大文字・小文字を厳密に区別したい場合は、SEARCH関数の代わりにFIND関数を使います。

=ISNUMBER(FIND("ABC", A2))

A2に大文字の「ABC」が含まれていればTRUEです。「abc」や「Abc」ではFALSEになります。

SEARCH関数とFIND関数の使い分けは次のとおりです。

組み合わせ大文字・小文字ワイルドカード使いどころ
ISNUMBER + SEARCH区別しない使える一般的な部分一致検索
ISNUMBER + FIND区別する使えない型番・コード検索

迷ったらSEARCH関数のほうが使いやすいです。型番やIDなど厳密な検索が必要なときだけFIND関数を選びましょう。

IF + ISNUMBER + SEARCHで条件分岐

部分一致の結果に応じて表示を切り替えるパターンです。実務でもっともよく使う形になります。

=IF(ISNUMBER(SEARCH("合格", C2)), "○", "×")

C2に「合格」が含まれていれば「○」、含まれていなければ「×」を表示します。

応用として、複数キーワードのいずれかが含まれるかを判定することもできます。

=IF(OR(ISNUMBER(SEARCH("東京", A2)), ISNUMBER(SEARCH("大阪", A2))), "対象", "対象外")

A2に「東京」または「大阪」が含まれていれば「対象」と表示します。

データ入力チェックで文字列混入を検出する

数値を入力すべき列に文字列が混入していないかをチェックできます。

=IF(ISNUMBER(B2), "OK", "数値を入力してください")

B2が数値なら「OK」と表示します。文字列や空白なら入力を促すメッセージを出します。

条件付き書式で数値以外のセルをハイライト

ISNUMBER関数を条件付き書式のカスタム数式に使うと、数値以外のセルを色付けできます。

手順:

  1. チェックしたい範囲(例: B2:B20)を選択する
  2. 「表示形式」→「条件付き書式」を開く
  3. 「カスタム数式」を選び、次の数式を入力する
=NOT(ISNUMBER(B2))
  1. 書式スタイルで背景色を赤やオレンジに設定する

これで数値以外のセルがひと目でわかります。データ入力後のチェックに便利です。

ArrayFormulaで全行一括判定

ISNUMBER関数をARRAYFORMULA関数と組み合わせると、1つの数式で全行分を処理できます。

=ARRAYFORMULA(IF(A2:A="", "", IF(ISNUMBER(SEARCH("東京", A2:A)), "対象", "対象外")))

A列にデータがある行だけを対象に、「東京」が含まれるかどうかを一括判定します。

ARRAYFORMULA関数を使えば数式を下方向にコピーする必要がなくなるので、行が追加されても自動対応です。

よくあるエラーと対処法

ISNUMBER関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。

症状原因対処法
数値なのにFALSEになるセルの書式が「書式なしテキスト」書式を「自動」に変更し、値を再入力する
数値なのにFALSEになる先頭にアポストロフィ(')があるアポストロフィを削除して再入力する
日付がTRUEになる日付はシリアル値(数値)として扱われる日付を除外するなら =AND(ISNUMBER(A1), NOT(ISDATE(A1)))
空白セルをTRUEにしたいISNUMBER関数は空白をFALSEと判定する=OR(ISNUMBER(A1), ISBLANK(A1)) で判定する
SEARCH組み合わせでFALSEになる検索文字列が見つからない全角・半角の違い、スペースの有無を確認する

「数値に見えるのにFALSE」の見分け方

セルが数値に見えるのにFALSEになる場合、文字列として保存されている可能性があります。確認方法は次のとおりです。

=TYPE(A2)

結果が1なら数値、2なら文字列です。

文字列になっている数値を数値に変換するには、VALUE関数を使います。

=VALUE(A2)

TIP

「データ」メニュー → 「データクリーンアップ」で、文字列として保存されている数値を一括変換することもできます。

似た関数との違い・使い分け

ISNUMBER関数と関連する関数をまとめました。

関数判定対象戻り値用途
ISNUMBER数値かどうかTRUE/FALSEセルごとの数値チェック
ISTEXT文字列かどうかTRUE/FALSEセルごとの文字列チェック
VALUE文字列を数値に変換数値 or エラーデータ変換
TYPEデータ型の種類を取得数値(型コード)詳細なデータ型判定

ISNUMBERとISTEXTの違い

ISNUMBERとISTEXTは対になる関数です。ただし、単純な逆関係ではありません。

データの種類ISNUMBERISTEXT
数値(100)TRUEFALSE
文字列(”abc”)FALSETRUE
論理値(TRUE)FALSEFALSE
エラー(#N/A)FALSEFALSE
空白FALSEFALSE

論理値・エラー・空白はどちらもFALSEです。「数値でなければ文字列」とは限らないので注意しましょう。

ISNUMBERとTYPE関数の使い分け

TYPE関数はデータ型をより細かく分類できます。

TYPE関数の戻り値
数値1
文字列2
論理値4
エラー16
配列64

「数値かどうか」だけ知りたい → ISNUMBER関数がシンプルです。

「文字列・論理値・エラーも区別したい」→ TYPE関数が向いています。

ISNUMBERと他のIS系関数

ISNUMBER関数はIS系情報関数のひとつです。

関数判定内容
ISBLANK空白かどうか
ISNUMBER数値かどうか
ISTEXT文字列かどうか
ISLOGICAL論理値かどうか
ISERRORエラーかどうか
ISFORMULA数式が入っているかどうか

データの種類に応じたチェックをしたいときは、IS系関数を使い分けてみてください。

まとめ

ISNUMBER関数は、セルの値が数値かどうかをTRUE/FALSEで判定するシンプルな関数です。

ポイントをおさらいしましょう。

  • 引数は1つ。数値ならTRUE、それ以外はFALSE
  • 日付・時刻もTRUEになる(内部的にシリアル値だから)
  • SEARCH関数やFIND関数と組み合わせると「特定の文字列を含むか」の判定ができる
  • 「数値に見えるのにFALSE」のときはセルの書式を確認する
  • ISBLANKやISTEXTなど他のIS系関数と用途に応じて使い分ける

数値チェックや部分一致検索に、ぜひ活用してみてください。

関連記事

特定の文字列が含まれるかを検索するなら、SEARCH関数の使い方もあわせてどうぞ。

大文字・小文字を区別して検索したい場合は、FIND関数の使い方を参考にしてください。

空白セルの判定には、ISBLANK関数の使い方が便利です。

条件によって表示を切り替えたい場合は、IF関数の使い方をご覧ください。

エラー判定をしたいときは、ISERROR関数の使い方もチェックしてみてください。

論理値(TRUE/FALSE)かどうかを判定するなら、ISLOGICAL関数の使い方をご覧ください。

タイトルとURLをコピーしました