• 作成日 : 2025年8月25日

TYPE関数の使い方:データ型を瞬時に判別する方法

TYPE関数は、セルに入力されているデータの種類を数値で返すエクセルの情報関数です。数値、文字列、論理値、エラー値、配列など、様々なデータ型を自動的に識別できるため、データの整合性チェックや条件分岐処理に欠かせません。

複雑な数式のデバッグや、異なるデータ型が混在するシートの管理にTYPE関数は活用できます。本記事では、TYPE関数の基本的な使い方から実践的な活用法、エラー対処法まで、わかりやすく解説します。

TYPE関数の基本的な使い方

TYPE関数とは

TYPE関数は、指定したセルや値のデータ型を判定し、それぞれのデータ型に対応する数値コードを返す関数です。この関数を使用することで、セルの内容を目視で確認することなく、プログラム的にデータ型を識別できます。

データ入力ミスの検出、異なるデータ型に応じた処理の分岐、複雑な数式のトラブルシューティングなど、様々な場面で活用できる便利な関数です。特に、大量のデータを扱う際や、他のシステムからインポートしたデータの検証において威力を発揮します。

参考:TYPE 関数 – Microsoft サポート

基本構文と返される値

TYPE関数の構文は非常にシンプルです。

=TYPE(値)

値:データ型を調べたい値、セル参照、または数式を指定します。

TYPE関数が返す数値コードとその意味
  • 1:数値
  • 2:文字列(テキスト)
  • 4:論理値(TRUE/FALSE)
  • 16:エラー値
  • 64:配列

これらの数値コードは固定されており、エクセルのバージョンに関わらず同じ値が返されます。

基本的な使用例

各データ型の判定例を見てみましょう。

数値の判定:

=TYPE(123)        結果:1

=TYPE(3.14)       結果:1

=TYPE(A1)         A1が数値の場合:1

文字列の判定:

=TYPE(“Hello”)    結果:2

=TYPE(“123”)      結果:2(数字でも文字列として扱われる)

=TYPE(A1)         A1が文字列の場合:2

論理値の判定:

=TYPE(TRUE)       結果:4

=TYPE(FALSE)      結果:4

=TYPE(A1>B1)      結果:4(比較式の結果は論理値)

エラー値の判定:

=TYPE(#N/A)       結果:16

=TYPE(1/0)        結果:16(#DIV/0!エラー)

=TYPE(VLOOKUP(“該当なし”,A:B,2,0))  該当なしの場合:16

実際のデータ検証での活用

売上データの入力チェックを行う例:

=IF(TYPE(B2)=1, “正常”, “数値を入力してください”)

複数のデータ型を許可する場合:

=IF(OR(TYPE(C2)=1, TYPE(C2)=2), “入力OK”, “入力エラー”)

空白セルの扱い:

=IF(ISBLANK(A1), “空白”, TYPE(A1))

TYPE関数は、空文字列が入力されている場合は1(数値)を返しますが、完全な空白セルではISBLANKと組み合わせることで正確に判定できます。

TYPE関数の実践的な利用シーン

データインポート時の品質チェック

外部システムからインポートしたデータの整合性を確認する際、TYPE関数が重要な役割を果たします。

一括でデータ型をチェックする仕組み:

=IF(TYPE(A2)=2, “文字列”, IF(TYPE(A2)=1, “数値”, “その他”))

期待されるデータ型と異なる場合のフラグ立て:

=IF(TYPE(金額列)=1, “”, “要確認”)

インポートエラーの検出:

C列にTYPE関数でデータ型の判定をした後に、以下の式を使用します。

=COUNTIF(C:C, 16)

これにより、エラー値が含まれるセルの数をカウントできます。

動的な数式の構築

データ型に応じて異なる処理を行う動的な数式を作成できます。

汎用的な集計関数:

=IF(TYPE(A1)=1, A1*1.1, IF(TYPE(A1)=2, LEN(A1), “N/A”))

データ型別の書式設定:

=IF(TYPE(B2)=1, TEXT(B2,”#,##0″), IF(TYPE(B2)=2, B2, “”))

異なるデータ型の統一処理:

=IF(TYPE(C2)=2, VALUE(C2), C2)

文字列として入力された数値を数値に変換します。

フォーム入力の検証

ユーザー入力フォームでの入力検証にTYPE関数を活用できます。

必須項目のチェック:

=IF(AND(TYPE(氏名)=2, TYPE(年齢)=1, TYPE(メール)=2), “入力完了”, “入力不備”)

電話番号フィールドの検証:

=IF(OR(TYPE(電話番号)=1, AND(TYPE(電話番号)=2, ISNUMBER(VALUE(電話番号)))), “OK”, “NG”)

日付入力の確認:

=IF(AND(TYPE(日付欄)=1, 日付欄>40000), “日付OK”, “日付形式エラー”)

レポート作成の自動化

異なるデータ型が混在するレポートを自動生成する際の活用例です。

データ型に応じた表示形式の切り替え:

=CHOOSE(TYPE(データ), TEXT(データ,”#,##0″), データ, “”, TEXT(データ,”TRUE/FALSE”), “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “エラー”)

NULL値や空白の統一処理:

=IF(OR(ISBLANK(元データ), TYPE(元データ)=16), “-“, 元データ)

集計対象の自動判定:

=IF(TYPE(値)=1, 値, 0)

数値のみを集計対象とし、それ以外は0として扱います。

TYPE関数の応用・他関数との組み合わせ

CHOOSE関数との連携

TYPE関数の結果を使って、複雑な条件分岐を簡潔に記述できます。

データ型別の処理を一行で記述:

=CHOOSE(TYPE(A1), ROUND(A1,2), UPPER(A1), “”, IF(A1,”Yes”,”No”))

エラーメッセージのカスタマイズ:

=CHOOSE(TYPE(B2), “”, “数値を入力してください”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “計算エラー”)

配列数式での活用

範囲内のデータ型を指定してチェックする高度な使い方です。

B列にTYPE関数でデータ型の判定を行い、以下の式で個数をカウントします。

特定のデータ型の個数をカウント:

=SUMPRODUCT((B1:B100=1)*1)

異なるデータ型の分布を分析:

数値の割合: =SUMPRODUCT((B1:B100=1)*1)/COUNTA(B1:B100)

文字列の割合: =SUMPRODUCT((B1:B100=2)*1)/COUNTA(B1:B100)

INDIRECT関数との組み合わせ

動的なセル参照と組み合わせた応用例です。

シート名が変わってもデータ型をチェック:

=TYPE(INDIRECT(“‘シート名’!A1”))

行番号を動的に変更しながらチェック:

=TYPE(INDIRECT(“A”&行番号))

カスタム関数の作成

TYPE関数を使った、より高度な検証関数を作成できます。

数値または空白のみを許可する検証:

=OR(AND(TYPE(対象)=1, NOT(ISBLANK(対象))), ISBLANK(対象))

日本語文字列の判定:

=AND(TYPE(対象)=2, LENB(対象)>LEN(対象))

先頭に4桁の数値を含む10桁の文字列パターン検証:

=AND(TYPE(対象)=2, LEN(対象)=10, ISNUMBER(VALUE(LEFT(対象,4))))

TYPE関数のよくあるエラーと対処法

空白セルの扱い

TYPE関数は空白セルを数値(1)として判定するため、注意が必要です。

正確な空白判定:

=IF(ISBLANK(A1), “空白”, CHOOSE(TYPE(A1), “数値”, “文字列”, “”, “論理値”))

空文字列との区別:

=IF(A1=””, IF(ISBLANK(A1), “真の空白”, “空文字列”), TYPE(A1))

数式の結果の判定

数式の結果に対してTYPE関数を使用する際の注意点です。

数式エラーの検出:

=IF(TYPE(複雑な数式)=16, “計算エラー”, 複雑な数式)

日付データの扱い

エクセルでは日付も内部的には数値として扱われます。

日付と通常の数値の区別:

=IF(AND(TYPE(A1)=1, A1>40000, A1<50000), “日付の可能性”, “通常の数値”)

配列数式での注意点

TYPE関数を配列数式で使用する場合の制限事項です。

単一セルへの適用:

=TYPE(A1:A10)  動作しない

=SUMPRODUCT((TYPE(A1:A10)=1)*1)  各セルを個別に評価

動的配列での使用:

=MAP(A1:A10, LAMBDA(x, TYPE(x)))

TYPE関数でデータ型を判別し処理を最適化

TYPE関数は、セルのデータ型を数値コードで返すExcelの情報関数です。数値・文字列・論理値・エラー・配列などを判別し、整合性チェックや条件分岐、エラー検出に活用されます。

空白セルや配列の扱いには注意が必要で、ISBLANK関数やCHOOSE関数と組み合わせることで柔軟な処理が可能です。データの正確性を保つための補助的なツールとして実務で役立ちます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事