「このセルに入っているのは数値? テキスト?」と手作業で確認していませんか。
数件ならセルをクリックすればわかりますが、データが数百行になると見落としが出てきます。
数値に見えて実はテキストだった、というミスは集計エラーの原因になりがちですよね。そんなときに便利なのがTYPE関数です。
この記事では、TYPE関数の基本から実務で役立つ活用パターンまでまとめて紹介します。
スプレッドシートのTYPE関数とは?
TYPE関数は、指定した値のデータ型を数値コードで返す関数です。
セルの中身が数値なのかテキストなのか、論理値なのかエラーなのかを番号で教えてくれます。
TYPE関数が返す数値コードは次の5種類です。
| 返り値 | データ型 | 具体例 |
|---|---|---|
| 1 | 数値 | 100、3.14、日付(シリアル値) |
| 2 | テキスト | “こんにちは”、”123″(文字列の数字) |
| 4 | 論理値 | TRUE、FALSE |
| 16 | エラー値 | #VALUE!、#REF!、#N/A |
| 64 | 配列 | {1,2,3}、ARRAYFORMULA の結果 |
TYPE関数にできることをまとめると、次のとおりです。
- セルのデータ型を数値コード(1/2/4/16/64)で返す
- IF関数と組み合わせてデータ型ごとに処理を分岐する
- 入力データの検証(数値であるべきセルにテキストが入っていないかチェック)
- エラー値の検出と分類
NOTE
TYPE関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があるので、ファイルのやり取りでも安心です。
TYPE関数の書き方(構文と引数)
基本構文
=TYPE(値)
カッコの中にデータ型を調べたい値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | データ型を調べたい値、セル参照、または数式 |
引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。
TIP
TYPE関数はエラー値を渡してもエラーにならず、16 を返します。ISERROR関数と違い、エラーの種類にかかわらず一律で検出できますよ。
TYPE関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
値の種類ごとの判定結果
さまざまなデータをTYPE関数で調べると、次のような結果になります。
| 数式 | 結果 | 理由 |
|---|---|---|
=TYPE(100) | 1 | 数値 |
=TYPE("こんにちは") | 2 | テキスト |
=TYPE(TRUE) | 4 | 論理値 |
=TYPE(#N/A) | 16 | エラー値 |
=TYPE({1,2,3}) | 64 | 配列 |
=TYPE(2026/3/22) | 1 | 日付はシリアル値(数値)として扱われる |
日付の扱いに注意しましょう。スプレッドシートでは日付は内部的に数値(シリアル値)で管理されています。そのためTYPE関数は 1(数値)を返します。
セル参照で確認する
セル参照を使えば、特定のセルのデータ型を調べられます。
=TYPE(A1)
A1 に「100」が入っていれば 1 を返します。「こんにちは」なら 2 です。
空白セルの場合
空白セルを指定すると、TYPE関数は 1(数値)を返します。空白は 0 として扱われるためです。
=TYPE(A1) → A1が空白なら 1 を返す
空白セルと数値を区別したい場合は、IF関数で先に空白チェックをしましょう。
=IF(A1="","空白",TYPE(A1))
TYPE関数の実践的な使い方・応用例
IF関数と組み合わせてデータ型を日本語で表示する
数値コードだけでは分かりにくいので、日本語ラベルに変換すると便利です。
=IF(TYPE(A2)=1,"数値",IF(TYPE(A2)=2,"テキスト",IF(TYPE(A2)=4,"論理値",IF(TYPE(A2)=16,"エラー","配列"))))
ちょっと長い数式に見えますが、やっていることはシンプルです。TYPE関数の返り値(1/2/4/16/64)に応じて対応するラベルを返しているだけですよ。
SWITCH関数を使うともっとすっきり書けます。
=SWITCH(TYPE(A2),1,"数値",2,"テキスト",4,"論理値",16,"エラー",64,"配列")
SWITCH関数は値ごとに結果を切り替えられるので、IFのネストを避けたいときに便利です。
数値であるべきセルにテキストが混入していないかチェックする
売上データや数量の列に、数値に見えるテキスト(”100″ など)が混ざっていると集計がズレます。TYPE関数で一括チェックできます。
=IF(TYPE(B2)<>1,"要確認","OK")
B2 のデータ型が数値(1)でなければ「要確認」と表示します。これを列全体にコピーすれば、テキスト混入をまとめて検出できますよ。
ARRAYFORMULA と組み合わせて列全体を一括チェックする
1行ずつ数式をコピーする代わりに、ARRAYFORMULAで列全体を一括処理できます。
=ARRAYFORMULA(IF(B2:B100="","",IF(TYPE(B2:B100)<>1,"要確認","OK")))
B2からB100まで一気にデータ型をチェックします。空白セルはスキップしています。
大量のデータを扱うときに便利な方法です。
エラー値の検出に使う
TYPE関数はエラー値を渡しても自身はエラーにならないという特徴があります。これを利用して、エラーの有無を判定できます。
=IF(TYPE(A2)=16,"エラーあり","正常")
ISERROR関数でも同じことができます。ただしTYPE関数なら、エラー判定と他のデータ型判定を1つの数式でまとめられるのが利点です。
よくあるエラーと対処法
TYPE関数で「思った結果にならない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 数値のはずなのに 2(テキスト)が返る | セルにテキスト形式の数字(”100″)が入っている | VALUE関数で数値に変換する。=VALUE(A1) |
| 日付セルで 1 が返る | 日付はシリアル値(数値)で管理されている | 仕様どおりの動作。日付かどうかを調べるならISDATE関数を使う |
| 空白セルで 1 が返る | 空白は 0(数値)として扱われる | 空白を区別するなら =IF(A1="","空白",TYPE(A1)) |
| 配列で 64 が返らない | セルに配列数式の結果が表示されている場合、個々のセルは要素の型を返す | 配列全体を確認するには =TYPE({1,2,3}) のように直接指定する |
TYPE関数とIS関数の使い分け
スプレッドシートにはデータ型を判定する関数が複数あります。TYPE関数との違いを整理しましょう。
| 関数 | 返り値 | 用途 |
|---|---|---|
| TYPE | 数値コード(1/2/4/16/64) | データ型を数値で分類したいとき |
| ISNUMBER | TRUE/FALSE | 数値かどうかだけを判定したいとき |
| ISTEXT | TRUE/FALSE | テキストかどうかだけを判定したいとき |
| ISERROR | TRUE/FALSE | エラーかどうかだけを判定したいとき |
| ISLOGICAL | TRUE/FALSE | 論理値かどうかだけを判定したいとき |
使い分けのポイント: 「数値かどうかだけ知りたい」ならISNUMBER関数のほうがシンプルです。複数のデータ型を一度に分岐したいときはTYPE関数が向いています。
たとえば「数値なら計算、テキストならそのまま表示、エラーなら警告」のように3つ以上に分岐する場合は、TYPE関数とSWITCH関数の組み合わせがすっきり書けます。
Excelとの違い
TYPE関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =TYPE(値) | =TYPE(値) |
| 数値 | 1 | 1 |
| テキスト | 2 | 2 |
| 論理値 | 4 | 4 |
| エラー値 | 16 | 16 |
| 配列 | 64 | 64 |
返り値のコードも完全に同じです。Excelでの使い方はExcelのTYPE関数の記事で詳しく解説しています。
まとめ
TYPE関数は、セルのデータ型を数値コードで返すシンプルな関数です。
ポイントを整理します。
- 構文は
=TYPE(値)で、引数は1つだけ - 返り値は 1(数値)、2(テキスト)、4(論理値)、16(エラー)、64(配列)の5種類
- 日付はシリアル値として扱われるため 1(数値)を返す
- 空白セルは 0(数値)として扱われるため 1 を返す
- IF関数やSWITCH関数と組み合わせてデータ型ごとに処理を分岐できる
- 「数値かどうかだけ」ならISNUMBER関数、複数型の分岐ならTYPE関数
- ExcelのTYPE関数と完全に同じ動作で、互換性も安心
まずは =TYPE(A1) で手元のデータの型を調べるところから試してみてください。
