以下のような方におすすめの記事です。
- データ型のせいでエラーが起きている
- 現在のデータ型の確認方法を知りたい
- データ型を関数で強制的に変換したい
関数やVBAを利用していると、データ型が一致しないせいでエラーが発生することがあります。
よくある例は、「100(数値)」と「100(文字列)」はデータ型が一致せず、IF関数やVLOOKUP関数で意図した形でデータ抽出をしません。
このような場合に、まず「100」が文字列なのか数値かを確認し、データ型の不一致が原因かを特定します。
そして、不一致が原因であれば、データ型を変換すれば解決するはずです。
今回のクエストはこちら

データ型の不一致が原因のエラー対処
正常に機能している場合
3桁のコードをセルJ2に入力すれば、VLOOKUP関数で都道府県名を抽出するものです。
VLOOKUP関数について確認したい方はこちらをチェックしてください。

データ型の不一致によってエラーを起こした場合の対処について見ていきましょう。
データ型の確認
TYPE関数を利用すると、データ型を確認できます。
=TYPE( 値 )
機能:引数のデータ型を数値で表示
- 1:数値
- 2:文字列
- 4:論理値
- 16:エラー値
- 64:配列
値ごとのデータ型を暗記する必要はありません。
TYPE関数で値が一致するかどうかさえ確認できればよく、一致しない場合に調べましょう。
データ型の変換
文字列↔︎数値の相互の変換は以下の関数を利用します。
- =VALUE( 文字列 ) :文字列を数値へ変換
- =ACS( 数値 ) :数値を文字列へ変換
それぞれの関数はデータ型を変換するのみで、表示されるものは変化しません。
また、VALUE関数の引数に数値を利用しても、そのまま数値が表示されエラーにはなりません。
データ型の確認と変換をする例
セルG3にてVLOOKUP関数を利用しているが、「100(文字列)」で「100(数値)」を検索しているためエラーが発生しています。
VLOOKUP関数の解説はこちらです。
そこで、エラー対処をしていきます。
まず、TYPE関数でデータ型を確認します。すると、検索値の「100」が文字列で不一致だからエラーが発生していると分かります。
よって、検索値をVALUE関数で数値へと変換すれば解決すると判断できます。
以上より、数式を「 = VLOOKUP( VALUE( J2 ) , B:C , 2 ,0 )」へと修正することで、検索値のデータ型を変更できます。

今回のクエストを終えて
データ型の確認と変換を習得!
VLOOKUP関数やIF関数、VBAを利用する際に、データ型の不一致によるエラーの対処は何度も行う可能性があります。
そのような場面に出会ったら、データ型の確認と変換をしましょう。
慣れれば、そもそもエラーが起こらず、起きてもすぐ見当がついて対処できるようになります。





コメント