Menu

Excelでスペースを削除する方法: TRIM、CLEAN、SUBSTITUTE

=TRIM(A2)はA2の文字列の前後のスペースを取り除き、単語の間に続くスペースを1つにします。SUBSTITUTEを使えば、すべてのスペースや、TRIMでは消えないノーブレークスペースも取り除けます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=TRIM(A2)は、A2の文字列の前後にあるスペースをすべて取り除き、単語の間に続くスペースをそれぞれ1つにします。" Ana Silva "はAna Silvaになります。

余分なスペースを取り除く
B2
ABCD
1NameTRIMLength beforeLength after
2 Ana Silva Ana Silva149
3Ben Okafor Ben Okafor1310
4 Chen WuChen Wu107
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

A列ではスペースが見えないので、長さの列を用意しています。LENはスペースも数えます。余分なスペースはたいてい取り込んだデータや貼り付けたデータと一緒に入り込み、見た目には何の印もないまま検索や比較を壊します。

余分なスペースが数式を壊す理由

Excelにとって、末尾にスペースのあるAna とAnaは違う文字列です。比較はFALSEを返し、COUNTIFはそのセルを数えず、検索は#N/Aを返します:

末尾のスペースで一致しなくなる
D3
ABCD
1NameScoreIs it Ana?Ana's score
2Ana 90FALSEnot found
3Ben85TRUE90
4Chen78
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

A2にはスペース付きのAna が入っているので、C2はFALSEになり、D2は何も見つけません(4つ目の引数がなければXLOOKUPは#N/Aを表示します)。D3は数式の中で検索列全体にTRIMをかけ、90を見つけます。これはMicrosoft 365とExcel 2021で動きます。それより古いバージョンでは、先に列をきれいにしてください。スペースは検索の#N/Aの最もよくある原因の1つです。

すべてのスペースを取り除く

TRIMは単語の間にスペースを必ず1つ残します。電話番号や商品コードなどからすべてのスペースを取り除くには、スペースを空の文字列に置き換えます:

TRIMとすべてのスペースの削除
B2
ABC
1CodeTRIMNo spaces
2 AB 12 34 AB 12 34AB1234
3555 201 3344555 201 33445552013344
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
顧客名をきれいにする
B2
AB
1CustomerClean name
2 Eli Novak
3Fay Ruiz
4Gus Lee
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: A列の名前には余分なスペースがあります。B2で、A2の名前を、前後にスペースがなく単語の間のスペースが1つの形で返してください。数式はB4まで下にコピーされます。

TRIMが効かない: ノーブレークスペース

WebページやPDFからコピーした文字列には、通常のスペース(文字コード32)の代わりにノーブレークスペース(文字コード160)がよく含まれています。見た目は同じですが、TRIMが取り除くのは文字コード32だけなので、Excelでは何も変わりません:

A2:             Ana Silva   (a non-breaking space between the names and one at the end)
=LEN(A2)        10
=LEN(TRIM(A2))  10, TRIM removed nothing

直すには、まずSUBSTITUTEで文字コード160を通常のスペースに変え、残りはTRIMに任せます。下のA2の文字列はCHAR(160)で作っているので、Webページから貼り付けられる文字を確かめられます:

ノーブレークスペースを直す
D2
ABCDE
1Pasted textLengthCode of 4th characterFixedFixed length
2Ana Silva 10160Ana Silva9
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C2は、正体のわからない文字を調べる方法です。CODE(MID(A2,4,1))は4文字目の文字コードを返し、ここでは160です。D2は9文字で、A2の10文字から末尾のスペースを除いた長さです。

CLEAN: 改行やほかの見えない文字を取り除く

CLEANは文字コード0から31の印刷されない文字を取り除きます。改行(10)、復帰(13)、タブ(9)などです。スペースには手を付けないので、=TRIM(CLEAN(A2))の組み合わせがよく使われます:

CLEANしてからTRIM
B2
ABC
1ImportedCLEANTRIM(CLEAN)
2 Ana Silva AnaSilva AnaSilva
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

CLEANは改行をそのまま削除するので、2つの名前がくっついてAnaSilva になります。改行が単語を区切っているときは、代わりにスペースに置き換えます:=TRIM(SUBSTITUTE(A2,CHAR(10)," "))。このケースはセル内の改行のページで紹介しています。

元の列をスペースを取り除いた文字列に置き換える

TRIMは結果を別のセルに書きます。データそのものを直すには:

  1. データの隣の空いている列に=TRIM(A2)を入れて下にコピーします。
  2. その列をコピーします(Ctrl+C、MacではCmd+C)。
  3. 元の列を選択して ホーム > 貼り付け > 値の貼り付け を使い、セルに数式ではなく文字列を入れます。
  4. 作業列を削除します。

「検索と置換」でも数式なしでスペースを取り除けますが、先頭のスペースと単語の間のスペースを区別できません。スペースを空に置き換えると、Ana SilvaがAnaSilvaになってしまいます。スペース2つを1つに置き換え、Excelが置き換えるものを見つけなくなるまで繰り返すのが、単語の間についてのTRIMの規則を手作業で行う方法です。先頭や末尾の1つのスペースは残ります。

よくある質問

Excelでスペースを削除するには?

=TRIM(A2)は先頭と末尾のスペースを取り除き、単語の間にはスペースを1つ残します。単語の間も含めてすべてのスペースを取り除くには=SUBSTITUTE(A2," ","")を使います。

TRIMでスペースが消えないのはなぜですか?

そのスペースはおそらくノーブレークスペース(文字コード160)で、Webページからコピーした文字列によく含まれています。TRIMが取り除くのは通常のスペース、文字コード32だけです。先に変換します:=TRIM(SUBSTITUTE(A2,CHAR(160)," "))。

TRIMとCLEANの違いは何ですか?

TRIMは余分なスペースを取り除きます。CLEANは改行やタブなど、文字コード0から31の印刷されない文字を取り除きます。=TRIM(CLEAN(A2))で両方を行えます。

元の列をスペースを取り除いた文字列に置き換えるには?

空いている列に=TRIM(A2)を書いて下にコピーし、その列をコピーして、元の列を選択してから ホーム > 貼り付け > 値の貼り付け を使います。その後、作業列を削除します。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める