- 作成日 : 2025年8月25日
TYPE関数の使い方:データ型を瞬時に判別する方法
TYPE関数は、セルに入力されているデータの種類を数値で返すエクセルの情報関数です。数値、文字列、論理値、エラー値、配列など、様々なデータ型を自動的に識別できるため、データの整合性チェックや条件分岐処理に欠かせません。
複雑な数式のデバッグや、異なるデータ型が混在するシートの管理にTYPE関数は活用できます。本記事では、TYPE関数の基本的な使い方から実践的な活用法、エラー対処法まで、わかりやすく解説します。
目次
TYPE関数の基本的な使い方
TYPE関数とは
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関数と組み合わせることで柔軟な処理が可能です。データの正確性を保つための補助的なツールとして実務で役立ちます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルのシート名を一括変更するには?
エクセルで複数のシートを扱う際、シート名の整理は効率的な作業に不可欠です。しかし、シートの数が多くなると、一つ一つ名前を変更したり、新しいシートを追加して名前を付けたりする作業は、時間と手間がかかります。この記事では、エクセル初心者の方でも…
詳しくみるFILTER関数の使い方とは?複数条件や複数範囲を指定する方法
FILTER関数は、ExcelやGoogleスプレッドシートでデータを柔軟に抽出するための強力なツールです。特に、複数の条件を設定して特定のデータを迅速にフィルタリングできる点が魅力です。この記事では、FILTER関数の基本的な使い方から、…
詳しくみるNPV関数の使い方:エクセルで正味現在価値を計算して投資判断を行う方法
NPV関数は、将来のキャッシュフローを現在価値に割り引いて、投資の正味現在価値を計算するエクセルの財務関数です。正味現在価値(Net Present Value)は、投資プロジェクトの収益性を評価する最も重要な指標の一つで、設備投資、M&a…
詳しくみるExcelのDAYS関数とは?日数計算の使い方やエラー対策を解説
「プロジェクトの締切まであと何日?」「商品の保管期間は何日だった?」 そんな日付に関する計算は、ExcelのDAYS関数(デイズ関数)を使えばあっという間に求められます。手作業では煩雑になりがちな経過日数計算を効率よく行えるため、業務の正確…
詳しくみるエクセルで日付を簡単に入力する方法
エクセルを使って日付を入力する際、多くの方が手間を感じることがあるかと思います。実際、毎回手動で入力するのは煩わしい作業ですし、日付の形式や入力ミスに悩まされることも少なくありません。しかし、エクセルには日付をスムーズに、かつ正確に入力する…
詳しくみるRRI関数の使い方:投資の年平均成長率を計算する方法
RRI関数は、一定期間における投資の年平均成長率(CAGR:年平均成長率)を計算する財務関数です。売上高の成長率分析、投資収益率の評価、人口増加率の計算、資産価値の推移分析など、時系列データの平均的な成長率を求める場面で活用されます。例えば…
詳しくみる