全角・半角スペースをエクセルで統一する方法(TRIMで取れない理由)
「TRIM関数で空白を除去したはずなのに、まだ重複が一致しない」——この症状のかなりの割合は、除去しようとしている空白が全角スペースであることが原因です。この記事では、TRIM関数の見落としがちな仕様と、全角・半角スペースを正しく統一する方法を解説します。
TRIM関数が全角スペースに効かない理由
TRIM関数が対象にしているのは半角スペース(コード0x20)だけです。「山田 太郎」のように姓名の間が全角スペース(コード0x3000)の場合、TRIMをかけても除去されず、見た目には空白が1つあるだけなのに、実際には「半角スペースのデータ」と「全角スペースのデータ」という別の文字列のまま残ってしまいます。
これがVLOOKUPやCOUNTIFで「見た目は同じなのに一致しない」典型的な原因の1つです。VLOOKUPが一致しない原因でも触れていますが、全角スペースは特に見落とされやすいので単独で解説します。
手順1:全角スペースを半角に変換してからTRIMする
SUBSTITUTE関数で全角スペースを半角スペースに置き換えてから、TRIMで整えます。
=TRIM(SUBSTITUTE(A2," "," "))
この数式は、全角スペースを半角に変換した上で、前後の余分な空白・連続する空白を1つにまとめます。
手順2:スペースを完全に削除したい場合
姓名の間のスペースの有無自体を無視して比較したい場合(重複判定用のキー列など)は、全角・半角どちらのスペースも完全に取り除きます。
=SUBSTITUTE(SUBSTITUTE(A2," ","")," ","")
手順3:見えないスペースの有無を確認する方法
スペースが全角か半角か目視で判断しづらい場合は、LEN関数で文字数を比較すると気づけることがあります。同じに見える2つのセルで文字数が違えば、どちらかに余分な(あるいは種類の違う)スペースが入っています。
=LEN(A2)
手作業の限界
- 全角スペース以外にも、コピー元によっては通常の空白に見えて実際は違う特殊な空白文字(改行・タブ・ノーブレークスペースなど)が混入することがあります——SUBSTITUTEで都度対応する必要があり、原因の特定に時間がかかります
- 1つのリストの中でスペースの種類が統一されていない場合、どのパターンが何件あるか事前に把握するのが難しいです
- 入力ルールが統一されている少人数運用のリストであれば、この問題自体があまり発生しません
スペース・全角半角の統一もまとめて処理
リストクリーナーは、全角・半角の統一を含めた表記ゆれの正規化を行った上で、重複(名寄せ)を検出します。ファイルをアップロードするだけで完結し、データはブラウザ内で処理され外部に送信されません。無料で100行まで試せます。
無料でリストを整形してみる