Excelでデータを扱う際、数値なのか文字列なのか、セルのデータ型を正確に把握したい場面があります。
例えば、数値として計算に含めたいデータが、意図せず文字列として入力されていると、計算結果がおかしくなってしまいます。
このようなデータ型の違いを自動で判定し、エラーを防ぐために役立つのがISNUMBER関数とISTEXT関数です。
この記事では、これらの関数を使ってセルのデータ型を判定する方法を詳しく解説します。
【要点】ISNUMBER・ISTEXT関数でデータ型を判定する
- ISNUMBER関数: 指定したセルが数値の場合にTRUEを返します。
- ISTEXT関数: 指定したセルが文字列の場合にTRUEを返します。
- IF関数との組み合わせ: ISNUMBER関数やISTEXT関数とIF関数を組み合わせることで、データ型に応じた処理を実行できます。
ADVERTISEMENT
目次
ISNUMBER・ISTEXT関数の基本と仕組み
ISNUMBER関数とISTEXT関数は、Excelの論理関数に分類されます。
これらの関数は、指定したセルや値が特定のデータ型であるかどうかを判定し、その結果を論理値(TRUEまたはFALSE)で返します。
ISNUMBER関数は、セルが数値(整数、小数、日付、時刻など)であればTRUEを返します。それ以外の場合はFALSEを返します。
一方、ISTEXT関数は、セルが文字列であればTRUEを返します。数値や日付、エラー値など、文字列以外の場合はFALSEを返します。
これらの関数は、データ入力時のチェックや、データの前処理、条件付き書式の設定など、様々な場面で活用できます。
ISNUMBER関数で数値かどうかを判定する手順
- 判定したいセルを選択する
データ型を判定したいセルを選択します。ここでは例としてセルA1を選択します。 - 数式バーにISNUMBER関数を入力する
選択したセルに、以下の数式を入力します。=ISNUMBER(A1) - Enterキーを押して結果を確認する
数式を入力後、Enterキーを押すと、セルA1の内容が数値であればTRUE、そうでなければFALSEが表示されます。
ISTEXT関数で文字列かどうかを判定する手順
- 判定したいセルを選択する
データ型を判定したいセルを選択します。ここでは例としてセルA1を選択します。 - 数式バーにISTEXT関数を入力する
選択したセルに、以下の数式を入力します。=ISTEXT(A1) - Enterキーを押して結果を確認する
数式を入力後、Enterキーを押すと、セルA1の内容が文字列であればTRUE、そうでなければFALSEが表示されます。
ADVERTISEMENT
IF関数と組み合わせて条件分岐を行う
ISNUMBER関数やISTEXT関数は、単独で使うよりもIF関数と組み合わせることで、より実用的な処理が可能になります。
例えば、数値であれば「数値です」と表示し、文字列であれば「文字列です」と表示するような場合に使えます。
ISNUMBER関数とIF関数を組み合わせる例
- 判定したいセルを選択する
ここでは例としてセルA1を選択します。 - 数式バーにIF関数とISNUMBER関数を組み合わせた数式を入力する
セルB1に以下の数式を入力します。=IF(ISNUMBER(A1), "数値です", "数値ではありません")
この数式は、A1セルが数値であれば「数値です」と表示し、そうでなければ「数値ではありません」と表示します。 - Enterキーを押して結果を確認する
数式を入力後、Enterキーを押すと、指定した条件に応じた結果が表示されます。
ISTEXT関数とIF関数を組み合わせる例
- 判定したいセルを選択する
ここでは例としてセルA1を選択します。 - 数式バーにIF関数とISTEXT関数を組み合わせた数式を入力する
セルB1に以下の数式を入力します。=IF(ISTEXT(A1), "文字列です", "文字列ではありません")
この数式は、A1セルが文字列であれば「文字列です」と表示し、そうでなければ「文字列ではありません」と表示します。 - Enterキーを押して結果を確認する
数式を入力後、Enterキーを押すと、指定した条件に応じた結果が表示されます。
ISNUMBER・ISTEXT関数がTRUEを返すケースとFALSEを返すケース
これらの関数がどのような場合にTRUEまたはFALSEを返すかを理解することは、正確なデータ分析のために重要です。
ISNUMBER関数がTRUEになるケース
ISNUMBER関数は、セルに以下のいずれかのデータが含まれている場合にTRUEを返します。
- 通常の数値(例: 123, 45.67)
- 日付(例: 2023/10/27)
- 時刻(例: 10:30:00)
- 日付と時刻の組み合わせ(例: 2023/10/27 10:30:00)
- 数値として認識される文字列(例: “123” ← これは実際には文字列ですが、数式内で自動で数値に変換される場合があります。しかし、ISTEXT関数はTRUEを返します。ISNUMBER関数はFALSEを返します。)
- エラー値(例: #N/A, #DIV/0! ← これらは厳密には数値ではありませんが、ISNUMBER関数はFALSEを返します。)
ISNUMBER関数がFALSEになるケース
以下の場合はFALSEを返します。
- 文字列(例: “abc”, “Excel”)
- 空白セル
- 論理値(TRUE, FALSE)
- エラー値(#N/A, #DIV/0! など)
ISTEXT関数がTRUEになるケース
ISTEXT関数は、セルに以下のいずれかのデータが含まれている場合にTRUEを返します。
- 通常の文字列(例: “abc”, “Excel”)
- 数字を含む文字列(例: “123”, “2023年”)
- 日付や時刻を文字列として入力した場合(例: “2023/10/27”, “10:30” ← ユーザーが直接文字列として入力した場合)
ISTEXT関数がFALSEになるケース
以下の場合はFALSEを返します。
- 数値(例: 123, 45.67)
- 日付、時刻
- 論理値(TRUE, FALSE)
- 空白セル
- エラー値(#N/A, #DIV/0! など)
データ型判定でよくある誤解と注意点
ISNUMBER関数とISTEXT関数を使う上で、いくつか注意しておきたい点があります。
「数字」と「数値」の違い
Excelでは、「数字」と「数値」は区別されます。
例えば、セルに「123」と入力した場合、Excelがそれを数値として認識すればISNUMBER関数はTRUEを返します。
しかし、セルの書式設定が「文字列」になっていたり、数字の前後にシングルクォーテーション(‘)が付いていたりすると(例: ‘123)、Excelはそれを文字列として扱います。
この場合、見た目は数字でも、ISTEXT関数はTRUEを返し、ISNUMBER関数はFALSEを返します。
空白セルの扱い
空白セルは、ISNUMBER関数、ISTEXT関数のどちらもFALSEを返します。
そのため、空白セルを区別したい場合は、ISBLANK関数などと組み合わせて判定する必要があります。
日付・時刻の判定
Excelでは、日付や時刻も内部的には数値として扱われています。
そのため、セルに日付や時刻が正しく入力されていれば、ISNUMBER関数はTRUEを返します。
もし、日付や時刻を文字列として入力している(例: “2023年10月27日”)場合は、ISTEXT関数がTRUEを返します。
日付や時刻を数値として扱いたいのか、文字列として扱いたいのかによって、判定結果が変わる点に注意が必要です。
エラー値の扱い
エラー値(#N/A, #DIV/0! など)は、ISNUMBER関数、ISTEXT関数のどちらもFALSEを返します。
エラー値を判定したい場合は、ISERROR関数やISNA関数など、専用のエラー判定関数を使用する必要があります。
ISNUMBER・ISTEXT関数と他のデータ型判定関数の比較
Excelには、他にもセルのデータ型を判定する関数がいくつかあります。ISNUMBER関数とISTEXT関数との違いを理解しておくと、より目的に合った関数を選択できます。
| 関数名 | 判定対象 | TRUEを返す場合 | FALSEを返す場合 | 備考 |
|---|---|---|---|---|
| ISNUMBER | 数値 | 数値、日付、時刻 | 文字列、空白、論理値、エラー値 | 日付・時刻も数値として判定 |
| ISTEXT | 文字列 | 文字列(数字、日付、時刻の文字列も含む) | 数値、日付、時刻、空白、論理値、エラー値 | 文字列として入力されたものが対象 |
| ISLOGICAL | 論理値 | TRUE, FALSE | 数値、文字列、日付、時刻、空白、エラー値 | |
| ISBLANK | 空白 | 空白セル | 数値、文字列、日付、時刻、論理値、エラー値 | |
| ISERROR | エラー値 | #N/A, #DIV/0!, #REF!, #VALUE!, #NUM!, #NAME?, #NULL! | 数値、文字列、日付、時刻、空白、論理値 | 全てのエラー値を判定 |
| ISNA | #N/Aエラー | #N/A | 上記以外の全て | #N/Aエラーのみ判定 |
ISNUMBER・ISTEXT関数を活用した実例
ここでは、ISNUMBER関数とISTEXT関数を実務でどのように活用できるか、具体的な例をいくつか紹介します。
例1: 数値データと文字列データの分離
顧客リストなどで、電話番号が「090-1234-5678」のようにハイフン付きで入力されている場合、Excelはこれを文字列として認識します。
一方、郵便番号「100-0001」なども同様です。
これらのデータを数値として扱いたい場合(例: ハイフンを削除して整形したい)、まずデータ型を判定する必要があります。
例えば、A列にデータがあるとして、B列に以下の数式を入力します。
=IF(ISNUMBER(A1), A1, SUBSTITUTE(A1,"-",""))
この数式は、A1が数値であればそのままA1の値を表示し、文字列であればハイフンを削除した値を表示します。
これにより、数値データと、数値として扱いたい文字列データを統一して処理できるようになります。
例2: データ入力規則の強化
特定のセルには数値のみを入力させたい場合、データ入力規則とISNUMBER関数を組み合わせることができます。
1. 数値入力を許可したいセルを選択します。
2. 「データ」タブの「データの入力規則」をクリックします。
3. 「設定」タブで「入力値の種類」を「ユーザー設定」にします。
4. 「数式」欄に以下の数式を入力します。
=ISNUMBER(A1) (A1は選択したセル範囲の先頭セル)
5. 「エラーメッセージ」タブで、数値以外が入力された場合のメッセージを設定します。
これにより、数値以外が入力された場合に警告が表示され、意図しないデータ入力を防ぐことができます。
例3: レポート作成時のデータチェック
月次レポートなどで、数値項目に誤って文字列が混入していないかを確認したい場合に役立ちます。
売上金額などの列(例: C列)に対し、隣の列(例: D列)に以下の数式を入力します。
=IF(ISTEXT(C1), "文字列データあり", "")
この数式をコピーすると、C列に文字列データがあれば「文字列データあり」と表示され、すぐに発見できます。
その後、該当するセルを修正したり、データ型を変換したりする作業が効率的に行えます。
まとめ
ISNUMBER関数とISTEXT関数を使いこなすことで、Excelにおけるセルのデータ型を正確に判定できるようになりました。
これにより、数値計算の誤りを防いだり、データの整形やチェックを効率化したりすることが可能になります。
今後は、これらの関数とIF関数、そして他のデータ型判定関数を組み合わせて、より高度なデータ管理や分析に挑戦してみてください。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
