スプレッドシートで「このセルに入っているのは文字列?それとも数値?」と確認したくなったことはありませんか?
データの集計やVLOOKUPの前に、文字列かどうかをチェックしておかないと予期しないエラーが出ることがありますよね。
そんなときに使えるのがISTEXT関数です。セルの値が文字列かどうかをTRUE/FALSEで判定してくれます。
この記事では基本の書き方からIF関数との組み合わせまで紹介します。ISNUMBER・ISBLANKなど他のIS系関数との使い分けも解説しています。
ISTEXT関数とは?
ISTEXT関数(読み方: イズテキスト関数)は、指定した値が文字列かどうかを判定する関数です。
名前はIS(〜かどうか)+ TEXT(文字列)が由来です。
A1が文字列なら =ISTEXT(A1) はTRUEを返します。
引数はチェックしたい値の1つだけです。結果はTRUEかFALSEの2択なので、とてもシンプルですね。
ISTEXT関数にできることをまとめると、次のとおりです。
- セルの値が文字列かどうかをTRUE/FALSEで判定する
- IF関数と組み合わせて文字列・数値で処理を分岐する
- データ入力チェックで数値が混入していないか検出する
- 条件付き書式と組み合わせて文字列セルをハイライトする
NOTE
ISTEXT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
ISTEXT関数の書き方(構文と引数)
基本構文
=ISTEXT(値)
カッコの中に文字列かどうかを判定したいセルや値を指定するだけです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 文字列かどうかを確認したいセル参照や値(例: A1) |
引数は1つだけです。値が文字列ならTRUE、文字列以外ならFALSEを返します。
ISTEXT関数がTRUE/FALSEを返すパターン
どんな値がTRUE(文字列)と判定されるかを一覧にしました。
| データの種類 | 判定結果 |
|---|---|
| 文字列(”abc”、”東京”など) | TRUE(文字列) |
| 数値を文字列として入力(’100) | TRUE(文字列) |
| 数式の結果が文字列 | TRUE(文字列) |
| 空文字列(””) | TRUE(文字列) |
| 整数・小数(100、3.14など) | FALSE |
| 日付・時刻 | FALSE |
| 論理値(TRUE/FALSE) | FALSE |
| エラー値(#N/Aなど) | FALSE |
| 空白セル | FALSE |
特に注意したいポイントが2つあります。
まず、空文字列(””)はTRUEになります。数式で ="" と返した結果は文字列扱いです。ただし、何も入力していない空白セルはFALSEになります。
もうひとつは「数値なのにTRUE」になるケースです。先頭にアポストロフィ(')を付けて入力した場合が該当します。書式が「書式なしテキスト」のときも文字列扱いです。
TIP
「100」と入力したのにISTEXT関数がTRUEを返す場合、セルの書式が「書式なしテキスト」になっている可能性があります。「表示形式」→「数値」→「自動」に変更してみてください。
ISTEXT関数の基本的な使い方
セルが文字列かどうかを判定する
もっともシンプルな使い方です。A1が文字列かどうかを確認します。
=ISTEXT(A1)
A1に文字列が入っていればTRUE、数値や空白ならFALSEが返ります。
IF関数と組み合わせて表示を切り替える
ISTEXT関数はIF関数と組み合わせることが多いです。文字列のときと数値のときで表示を変えます。
=IF(ISTEXT(B2), "文字列", "文字列以外")
B2が文字列なら「文字列」、それ以外なら「文字列以外」と表示します。
文字列のときだけ処理をスキップする
数値を計算したいのに文字列が混在しているデータで使えるパターンです。
=IF(ISTEXT(B2), "", B2*1.1)
B2が文字列なら空欄のままにします。数値のときだけ1.1倍した値を表示します。
複数セルの文字列チェック
複数のセルがすべて文字列かどうかを確認するパターンです。
=AND(ISTEXT(A2), ISTEXT(B2), ISTEXT(C2))
A2・B2・C2がすべて文字列ならTRUEです。1つでも文字列以外があればFALSEになります。
ISTEXT関数の実務活用パターン
VLOOKUPの前にデータ型を揃える
VLOOKUP関数は検索値と検索範囲のデータ型が一致していないとヒットしません。
たとえば社員コードが文字列の表に対して、数値で検索するとエラーになります。
=IF(ISTEXT(A2), VLOOKUP(A2, マスタ!A:B, 2, FALSE), "コードを文字列で入力してください")
A2が文字列のときだけVLOOKUPを実行します。数値が入っていたらメッセージを表示します。型の不一致によるエラーを事前に防げます。
データ入力チェックで数値混入を検出する
名前や住所など、文字列を入力すべき列に数値が混入していないかをチェックできます。
=IF(ISTEXT(C2), "OK", "文字列を入力してください")
C2が文字列なら「OK」と表示します。数値や空白なら入力を促すメッセージを出します。
FILTER関数で文字列データだけを抽出する
FILTER関数とISTEXT関数を組み合わせると、文字列が入っている行だけを抽出できます。
=FILTER(A2:B, ISTEXT(A2:A))
A列が文字列の行だけをまとめて取り出します。データの整理やクリーニングの前処理に便利です。
条件付き書式で文字列セルをハイライト
ISTEXT関数を条件付き書式のカスタム数式に使うと、文字列セルを色付けできます。
手順:
- チェックしたい範囲(例: B2:B20)を選択する
- 「表示形式」→「条件付き書式」を開く
- 「カスタム数式」を選び、次の数式を入力する
=ISTEXT(B2)
- 書式スタイルで背景色をオレンジなどに設定する
これで文字列セルがひと目でわかります。数値列に紛れた文字列データの発見に役立ちます。
ArrayFormulaで全行一括判定
ISTEXT関数をARRAYFORMULA関数と組み合わせると、1つの数式で全行分を処理できます。
=ARRAYFORMULA(IF(A2:A="", "", IF(ISTEXT(A2:A), "文字列", "数値")))
A列にデータがある行だけを対象に、文字列か数値かを一括判定します。
ARRAYFORMULA関数を使えば数式を下方向にコピーする必要がなくなるので、行が追加されても自動対応です。
NOT + ISTEXTで「文字列以外」を検出する
ISTEXT関数の結果を反転させると、文字列以外のセルを見つけるのに使えます。
=NOT(ISTEXT(A2))
A2が数値・空白・エラーなどの場合にTRUEです。文字列ならFALSEになります。
ただし、NOT(ISTEXT(…))は空白セルもTRUEになります。空白を除外したい場合は次のようにします。
=AND(NOT(ISTEXT(A2)), NOT(ISBLANK(A2)))
よくあるエラーと対処法
ISTEXT関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 数値なのにTRUEになる | セルの書式が「書式なしテキスト」 | 書式を「自動」に変更し、値を再入力する |
| 数値なのにTRUEになる | 先頭にアポストロフィ(')がある | アポストロフィを削除して再入力する |
| 空白セルがFALSEになる | ISTEXT関数は空白をFALSEと判定する | 空白も判定したいなら =OR(ISTEXT(A1), ISBLANK(A1)) |
| 数式結果の空文字列がTRUEになる | ="" は文字列として扱われる | 空文字列を除外するなら =AND(ISTEXT(A1), A1<>"") |
| 日付がFALSEになる | 日付はシリアル値(数値)として扱われる | 日付をTRUEにしたいなら TEXT関数で文字列に変換する |
「文字列に見えるのにFALSE」の見分け方
セルが文字列に見えるのにFALSEになる場合があります。実際には数値として保存されている可能性があります。
=TYPE(A2)
結果が1なら数値、2なら文字列です。
文字列のように見えても書式設定で表示を変えているだけの場合があります。TYPE関数で実際のデータ型を確認しましょう。
似た関数との違い・使い分け
ISTEXT関数と関連する関数をまとめました。
| 関数 | 判定対象 | 戻り値 | 用途 |
|---|---|---|---|
| ISTEXT | 文字列かどうか | TRUE/FALSE | セルごとの文字列チェック |
| ISNUMBER | 数値かどうか | TRUE/FALSE | セルごとの数値チェック |
| ISBLANK | 空白かどうか | TRUE/FALSE | 未入力セルのチェック |
| TYPE | データ型の種類を取得 | 数値(型コード) | 詳細なデータ型判定 |
ISTEXTとISNUMBERの違い
ISTEXTとISNUMBERは対になる関数です。ただし、単純な逆関係ではありません。
| データの種類 | ISTEXT | ISNUMBER |
|---|---|---|
| 文字列(”abc”) | TRUE | FALSE |
| 数値(100) | FALSE | TRUE |
| 論理値(TRUE) | FALSE | FALSE |
| エラー(#N/A) | FALSE | FALSE |
| 空白 | FALSE | FALSE |
論理値・エラー・空白はどちらもFALSEです。「文字列でなければ数値」とは限らないので注意しましょう。
数値か文字列かの2択で判定したいなら、ISNUMBERだけで十分です。ISTEXT関数は「文字列であること」を積極的に確認したいときに使います。
ISTEXTとISBLANKの使い分け
ISTEXT関数は空白セルをFALSEと判定します。空白を別途チェックしたいならISBLANK関数を組み合わせましょう。
=IF(ISBLANK(A2), "未入力", IF(ISTEXT(A2), "文字列", "数値"))
まずISBLANK関数で空白を判定します。空白でなければISTEXT関数で文字列かどうかを判定します。
ISTEXTとISNONTEXTの関係
ISNONTEXT関数はISTEXT関数の逆です。文字列以外のときにTRUEを返します。
| データの種類 | ISTEXT | ISNONTEXT |
|---|---|---|
| 文字列(”abc”) | TRUE | FALSE |
| 数値(100) | FALSE | TRUE |
| 論理値(TRUE) | FALSE | TRUE |
| エラー(#N/A) | FALSE | TRUE |
| 空白 | FALSE | TRUE |
ISNONTEXT関数は =NOT(ISTEXT(...)) と同じ結果です。空白セルもTRUEになる点に注意してください。
ISTEXTと他のIS系関数
ISTEXT関数はIS系情報関数のひとつです。
| 関数 | 判定内容 |
|---|---|
| ISBLANK | 空白かどうか |
| ISNUMBER | 数値かどうか |
| ISTEXT | 文字列かどうか |
| ISLOGICAL | 論理値かどうか |
| ISERROR | エラーかどうか |
| ISFORMULA | 数式が入っているかどうか |
データの種類に応じたチェックをしたいときは、IS系関数を使い分けてみてください。
まとめ
ISTEXT関数は、セルの値が文字列かどうかをTRUE/FALSEで判定するシンプルな関数です。
ポイントをおさらいしましょう。
- 引数は1つ。文字列ならTRUE、それ以外はFALSE
- 空文字列(””)はTRUEだが、空白セルはFALSE
- VLOOKUPの前にデータ型チェックをするとエラー防止になる
- 「数値に見えるのにTRUE」のときはセルの書式を確認する
- ISNUMBER・ISBLANK・ISNONTEXTなど他のIS系関数と用途に応じて使い分ける
文字列判定やデータチェックに、ぜひ活用してみてください。
関連記事
文字列以外を判定するなら、ISNONTEXT関数の使い方もあわせてどうぞ。ISTEXT関数の逆関数です。
数値かどうかを判定するなら、ISNUMBER関数の使い方もあわせてどうぞ。
空白セルの判定には、ISBLANK関数の使い方が便利です。
エラー判定をしたいときは、ISERROR関数の使い方もチェックしてみてください。
論理値(TRUE/FALSE)かどうかを判定するなら、ISLOGICAL関数の使い方をご覧ください。
条件によって表示を切り替えたい場合は、IF関数の使い方をご覧ください。
