スプレッドシートのTYPE関数の使い方|データ型取得

スポンサーリンク

「このセルに入っているのは数値? テキスト?」と手作業で確認していませんか。

数件ならセルをクリックすればわかりますが、データが数百行になると見落としが出てきます。

数値に見えて実はテキストだった、というミスは集計エラーの原因になりがちですよね。そんなときに便利なのが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)データ型を数値で分類したいとき
ISNUMBERTRUE/FALSE数値かどうかだけを判定したいとき
ISTEXTTRUE/FALSEテキストかどうかだけを判定したいとき
ISERRORTRUE/FALSEエラーかどうかだけを判定したいとき
ISLOGICALTRUE/FALSE論理値かどうかだけを判定したいとき

使い分けのポイント: 「数値かどうかだけ知りたい」ならISNUMBER関数のほうがシンプルです。複数のデータ型を一度に分岐したいときはTYPE関数が向いています。

たとえば「数値なら計算、テキストならそのまま表示、エラーなら警告」のように3つ以上に分岐する場合は、TYPE関数とSWITCH関数の組み合わせがすっきり書けます。

Excelとの違い

TYPE関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。

項目ExcelGoogleスプレッドシート
構文=TYPE(値)=TYPE(値)
数値11
テキスト22
論理値44
エラー値1616
配列6464

返り値のコードも完全に同じです。Excelでの使い方はExcelのTYPE関数の記事で詳しく解説しています。

まとめ

TYPE関数は、セルのデータ型を数値コードで返すシンプルな関数です。

ポイントを整理します。

  • 構文は =TYPE(値) で、引数は1つだけ
  • 返り値は 1(数値)、2(テキスト)、4(論理値)、16(エラー)、64(配列)の5種類
  • 日付はシリアル値として扱われるため 1(数値)を返す
  • 空白セルは 0(数値)として扱われるため 1 を返す
  • IF関数やSWITCH関数と組み合わせてデータ型ごとに処理を分岐できる
  • 「数値かどうかだけ」ならISNUMBER関数、複数型の分岐ならTYPE関数
  • ExcelのTYPE関数と完全に同じ動作で、互換性も安心

まずは =TYPE(A1) で手元のデータの型を調べるところから試してみてください。


関連記事

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