概要
計算式を書いていて、
- 「見た目は数字っぽいのに、なぜか計算エラーになる」
- 「CSV 取り込みで、数値列に文字が混ざっている」
- 「合計や平均を取りたいけど、“数値じゃないもの” は計算から外したい」
こういうときに使えるのが ISNUMBER 関数です。
「これは“数値”として認識されているか?」 を TRUE / FALSE で判定できるので、
IF と組み合わせることで、「数値でない場合を回避」するのにとても役立ちます。
ISNUMBER の基本
ISNUMBER の書式と動き
=ISNUMBER(値)
この式の結果は、必ず TRUE か FALSE です。
- その値が「数値」として扱えるなら → TRUE
- それ以外(文字列・空白・エラーなど) → FALSE
ポイントは、「見た目」ではなく「Excel が内部で数値として持っているか」を判定することです。
例えば、セルの中身が
- 123 → TRUE
- 3.14 → TRUE
- 日付(例:2025/12/31)→ TRUE(Excel 内部では数値なので)
- “123”(文字列としての 123)→ FALSE
- 空白 → FALSE
- “ABC” → FALSE
となります。
IF と組み合わせて「数値なら計算、そうでなければ回避」
数値のときだけ掛け算する
B2 に数量、C2 に単価が入っているとします。
C2 に「文字」や「空白」が入る可能性があるなら、
数値のときだけ計算するようにしておくと安全です。
=IF(ISNUMBER(C2), B2*C2, "")
- C2 が数値 → B2*C2 を計算
- C2 が数値でない(文字列や空白など)→ 空白を返す
数値でないときに無理に掛け算してエラーになるのを防げます。
数値でない場合は 0 として扱う
合計などで「数値以外は 0 として扱いたい」場合もあります。
=IF(ISNUMBER(A2), A2, 0)
- A2 が数値 → そのまま A2
- 数値でない → 0
この列を SUM すれば、「数値だけを合計」した結果になります。
文字が混ざった列から「数値だけ」扱いたいとき
数値かどうかをフラグ化する
例えば、A列にいろいろな値が入っていて、
数値だけを集計したいとします。
B列に次の式を書いてフラグを立てられます。
=ISNUMBER(A2)
- A2 が数値 → TRUE
- それ以外 → FALSE
さらに、TRUE を 1、FALSE を 0 に変換したいなら、こう書けます。
=IF(ISNUMBER(A2), 1, 0)
この列を合計すれば、「数値が何件あるか」のカウントにも使えます。
数値かどうかで処理を切り替える
数値ならそのまま、数値でなければメッセージ表示
A2 に入力された値が数値なら OK、
数値でないなら「数値を入力してください」と促したい場合。
=IF(ISNUMBER(A2), A2, "数値を入力してください")
こうしておけば、入力チェックとしても使えます。
日付も「数値として扱われているか」を確認できる
日付が文字列になっているケースの判定
Excel の日付は、内部的には「シリアル値」という数値です。
なので、本物の日付なら ISNUMBER は TRUE になります。
=ISNUMBER(A2)
- A2 に 2025/12/31 などの日付が正しく入っている → TRUE
- 取り込みミスなどで “2025/12/31” と文字列扱い → FALSE
見た目は日付でも、実際には文字列のことがあるので、
日付列のクリーニングにも ISNUMBER が使えます。
例題
問題1
A2 の値が数値なら TRUE、数値でなければ FALSE を返す式を書いてください。
=ISNUMBER(A2)
問題2
C2 に単価、B2 に数量が入っています。
C2 が数値のときだけ B2*C2 を計算し、
数値でない場合は空白(””)を返す式を書いてください。
=IF(ISNUMBER(C2), B2*C2, "")
問題3
A2 にさまざまな値が入っています。
数値ならその値を、数値でない場合は 0 を返す式を書いてください。
=IF(ISNUMBER(A2), A2, 0)
問題4
A2 に入力された値が数値ならそのまま表示し、
数値でない場合は「数値を入力」と表示する式を書いてください。
=IF(ISNUMBER(A2), A2, "数値を入力")
問題5
A2 に日付が入力されている列があります。
「A2 が Excel にとって“数値としての正しい日付”なら TRUE、
文字列などで日付っぽく見えるだけなら FALSE」を判定する式を書いてください。
=ISNUMBER(A2)
まとめ
「数値でない場合の回避 → ISNUMBER」は、
一言で言えば 「これは本当に“計算に使っていい値”か?」を確認するための関門 です。
基本形はこれだけです。
=IF(ISNUMBER(セル), 数値だったときの処理, 数値でないときの処理)
計算式が想定外のエラーを出しているとき、
まずは ISNUMBER を使って「前提となる入力が本当に数値か?」をチェックしてみてください。
土台がきちんと数値でそろっているかどうかが確認できるだけで、
トラブルシュートの難易度がぐっと下がります。
