« 2022年9月 | トップページ

2023年1月 7日 (土)

EXCELのVLOOKUP関数で、データの型が異なるためにマッチしないときの対策


Banner_713x90




例えばA列とB列の2つを & 記号で結合し、それを「標準」書式のC列に入れた場合、具体的な例として、

20230107-174210

C列全体をこのような関数で処理すると、この 456 というデータも、& 記号で左の2つのセルを結合したことにより、数値ではなく文字列のデータになってしまいます。

ちょっとややこしいですが、「文字列」の書式に設定したセルではなく「標準」の書式に設定したセルに456 という、数字に見える文字列のデータが入っています。

そしてこのC列のデータを元に、VLOOKUP関数を使って検索を行う場合、VLOOKUPの参照先のデータが「標準」書式だと、そこのデータはセル内が数字だけだと数値として扱われ、少しでも文字が含まれていると文字列として扱われます。

つまり、参照元の456は文字列データなのに対して、参照先のデータは数値データとなるため、検索時にマッチしません。
(参照先の456も文字列に変換したデータなら、そのセルが「標準」書式のセルでもマッチします。)

これをどう解決するのが一番いいのか不明ですが、今のところ解決した方法は以下のようにして参照元のデータを作ることです。
例えばC1のセルの関数に、

=IFERROR( VALUE( A1 & B1 ), A1 & B1 )

こんな式を入れて、下の方にオートフィルすれば、C列の456のような数字だけのデータは数値になり、文字入りのデータは文字列になるので、VLOOKUP関数で正しく参照できるようになります。
この式は、数値と文字列の区別なく、VALUE関数で数値に変換するときに、エラーだった場合はVALUE関数を使わない、という内容です。

 

20230107-183404_20230107183701


 

 

 

 

« 2022年9月 | トップページ

無料ブログはココログ