【Excel】エクセルでスペースの削除(関数で一括・文字間や先頭や末尾・できない場合・trimも・数式) | ウルトラフリーダム

【Excel】エクセルでスペースの削除(関数で一括・文字間や先頭や末尾・できない場合・trimも・数式)

Excel
本サイトでは記事内に広告が含まれています。

エクセルでセル内の余分なスペースを削除したいとき、手作業では追いつかない量のデータに困った経験はありませんか?

この記事では【Excel】エクセルでスペースを削除する方法(関数・文字間・一括削除・できない場合)について解説していきます。

ポイントは

・TRIM関数で先頭・末尾・文字間の余分なスペースを削除する
・SUBSTITUTE関数ですべてのスペースを一括削除する
・削除できない場合の原因と対処法

です。

それでは詳しく見ていきましょう。

スポンサーリンク

エクセルで前後の余分なスペースを削除する方法1【TRIM関数の基本】

エクセルで余分なスペースを削除するときに最初に試したいのが、TRIM関数です。

まずは以下のようなサンプルデータを用意してみましょう。

B2セルに次の数式を入力します。

=TRIM(A2)

TRIM関数は文字列の先頭と末尾のスペースをすべて削除し、文字と文字の間に複数のスペースがある場合は1つだけ残してそれ以外を削除します。

たとえば「 柏餅 太郎 」のように先頭・末尾・文字間に余分なスペースがある場合、TRIM関数を適用すると「柏餅 太郎」のようにすっきり整形されます。

TRIM関数は半角スペースに対して有効ですが、全角スペースは削除されない点に注意が必要です。

全角スペースが含まれている場合の対処法は後述します。

B2に数式を入力後、フィルハンドルをB6までドラッグすれば全行に一括適用できます。

【操作のポイント】
TRIM関数は「=TRIM(セル)」の形で使い、先頭・末尾の余分なスペースと文字間の連続スペースをまとめて整理できます。ただし全角スペースは対象外のため、別途対処が必要です。

エクセルでスペースを削除する方法2【SUBSTITUTE関数ですべてのスペースを削除する】

姓名の間のスペースも含めて、セル内のスペースをすべて削除したい場合はSUBSTITUTE関数を使います。

B2セルに次の数式を入力します。

=SUBSTITUTE(A2,” “,””) ※半角スペースの場合

=SUBSTITUTE(A2,” ,””) ※全角スペースの場合

SUBSTITUTE関数の書式は次のとおりです。

=SUBSTITUTE(文字列, 検索文字列, 置換文字列)

第1引数に対象のセル(A2)、第2引数に削除したい文字(半角スペース” “)、第3引数に置換後の文字(空文字””)を指定します。

これにより、A2セル内のすべての半角スペースが空文字に置き換えられ、実質的にスペースが削除されます。

「柏餅 太郎」であれば「柏餅太郎」のようにスペースがなくなった状態になります。

全角スペースも同時に削除したい場合は、SUBSTITUTE関数を入れ子にして次のように記述します。

=SUBSTITUTE(SUBSTITUTE(A2,” “,””),” ”,””)

外側のSUBSTITUTE関数で半角スペースを削除し、内側のSUBSTITUTE関数で全角スペースを削除する二重構造にすることで、半角・全角両方のスペースをまとめて削除できます。

【操作のポイント】
すべてのスペースを削除するには「=SUBSTITUTE(A2,” “,””)」を使います。全角スペースも削除したい場合はSUBSTITUTE関数を入れ子にして半角・全角の両方を対象にします。

エクセルでスペースを削除する方法3【検索と置換で一括削除する方法】

関数を使わずにスペースを一括削除する方法として、「検索と置換」機能が便利です。

Ctrl+Hで「検索と置換」ダイアログを開きます。

「検索する文字列」欄に削除したいスペース(半角または全角)を入力し、「置換後の文字列」欄は何も入力しない(空欄のまま)にします。

「すべて置換」をクリックすると、シート内のすべての対象スペースが一括で削除されます。

この方法は元のセルのデータが直接変更されるため、関数のように別セルに結果を出す必要がない点が便利です。

ただし、姓名の間のスペースなど意図的に残したいスペースまで削除されてしまう可能性があるため、操作前に対象範囲を選択してから「すべて置換」を実行することをおすすめします。

特定の範囲だけを対象にしたい場合は、あらかじめその範囲を選択してからCtrl+Hを押してダイアログを開くと、選択範囲内だけで置換が実行されます。

誤って必要なスペースまで削除してしまった場合はCtrl+Zで元に戻せます。

 

【操作のポイント】
「検索と置換」(Ctrl+H)で検索文字列にスペースを入力し置換後を空欄にすると一括削除できます。誤削除を防ぐために対象範囲をあらかじめ選択してから実行しましょう。

エクセルでスペースを削除する方法4【全角スペースをTRIMで削除する方法】

TRIM関数は半角スペースにしか対応していないため、全角スペースを削除するにはひと工夫が必要です。

TRIM関数とSUBSTITUTE関数を組み合わせることで、全角スペースも含めて整形できます。

まず全角スペースを半角スペースに変換してからTRIM関数を適用する方法が使いやすく、次のように記述します。

=TRIM(SUBSTITUTE(A2,” ”,” “))

この数式では、まずSUBSTITUTE関数でA2セル内の全角スペース(「 」)を半角スペース(” “)に変換します。

次にTRIM関数でその結果の先頭・末尾・連続スペースを整理します。

全角スペースを半角に変換してからTRIMをかけることで、半角・全角混在のスペースを一度にきれいに整形できます

ただし、この方法では文字間に1つだけ残る半角スペースはそのまま残ります。

文字間のスペースもすべて削除したい場合は、TRIM後にさらにSUBSTITUTEで残った半角スペースも削除する次の数式を使います。

=SUBSTITUTE(TRIM(SUBSTITUTE(A2,” ”,” “)),” “,””)

 

【操作のポイント】
全角スペースをTRIMで整理するには「=TRIM(SUBSTITUTE(A2,” ”,” “))」を使います。文字間のスペースもすべて削除したい場合はさらに外側にSUBSTITUTEを重ねます。

エクセルでスペースを削除する方法5【削除できない場合の原因と対処法】

TRIM関数やSUBSTITUTE関数を使ってもスペースが削除できない場合、いくつかの原因が考えられます。

最も多い原因が、見た目はスペースに見えるが実際には別の文字コードが使われているケースです。

特に外部システムやWebサイトからコピーしたデータには、通常のスペース(文字コード32)ではなくノーブレークスペース(文字コード160)が含まれていることがあります。

この場合、TRIM関数では削除できないため、CLEAN関数とSUBSTITUTE関数を組み合わせて対処します。

=SUBSTITUTE(CLEAN(A2),CHAR(160),””)

CHAR(160)はノーブレークスペースを表し、これをSUBSTITUTE関数で空文字に置換することで削除できます。

CLEAN関数は印刷できない制御文字を削除する関数で、SUBSTITUTE関数と組み合わせることでさまざまな不可視文字に対応できます。

また、セルが「文字列」形式になっている場合、数式の結果が正しく反映されないことがあります。

数式を入力するセルの書式が「文字列」になっていると数式として認識されず、そのまま文字として表示されてしまうため、書式を「標準」に変更してから数式を入力し直しましょう。

 

【操作のポイント】
スペースが削除できない場合はノーブレークスペース(CHAR(160))が混入している可能性があります。「=SUBSTITUTE(CLEAN(A2),CHAR(160),””)」で対処し、数式セルの書式が「文字列」になっていないかも確認しましょう。

まとめ エクセルで文字間のスペースの削除(先頭や末尾・できない場合・trimも・数式)

エクセルでスペースを削除する方法をまとめると、次のとおりです。

TRIM関数は「=TRIM(A2)」の形で使い、先頭・末尾の余分なスペースと文字間の連続スペースをまとめて整理できますが、全角スペースは対象外です。

SUBSTITUTE関数は「=SUBSTITUTE(A2,” “,””)」ですべての半角スペースを削除でき、入れ子にすることで全角スペースも同時に対処できます。

「検索と置換」(Ctrl+H)を使うと関数なしで元のセルのスペースを一括削除でき、対象範囲をあらかじめ選択してから実行すると誤削除を防げます。

全角スペースをTRIMで整理するには「=TRIM(SUBSTITUTE(A2,” ”,” “))」のようにSUBSTITUTEで全角を半角に変換してからTRIMをかけます。

削除できない場合はノーブレークスペース(CHAR(160))の混入を疑い、「=SUBSTITUTE(CLEAN(A2),CHAR(160),””)」で対処します。

スペースの削除を正しく使いこなすことで、データの表記ゆれを解消して集計や検索の精度を大幅に向上させることができます。

ぜひ今回ご紹介した方法を実際のデータ整理に役立ててみてください。

コメント

タイトルとURLをコピーしました