エクセルで空白を削除するなら、全部消すときは置換(Ctrl+H)、先頭と末尾だけ消すならTRIM関数を使います。Webから貼り付けた文字にあるコード160の空白はTRIMでは消えないので、SUBSTITUTEとUNICHAR(160)で置き換えます。
この記事でわかること
- 消したい空白の種類ごとの使い分け早見表
- 全角・半角のスペースを置換でまとめて消す手順
- TRIMとSUBSTITUTEの書き方と、結果を値に変える方法
- TRIMで消えない空白の正体の見分け方と消し方
- 空白セル・空白行をまとめて削除するときの事故の防ぎ方
名簿の氏名の後ろに余計なスペースが付いていて、VLOOKUP関数で引いても一致しない。システムから出したCSVの数字の前に空白が入っていて、合計が出ない。空白の削除は、表を集計する前の下ごしらえでいちばんよく出てくる作業です。
「空白」と一口に言っても、文字の間のスペース、見えない特殊な空白、何も入っていないセルや行では消し方が違います。まずは自分が消したいものがどれかを決めるところから始めましょう。
消したい空白の種類で方法を選ぶ
空白の削除は、「文字の中の空白」を消すのか「空っぽのセルや行」を消すのかで、使う機能がまったく変わります。下の表で自分の状況に近い行を探してください。
| 消したいもの | 使う方法 | 元のデータ |
|---|---|---|
| 文字の間も含めてスペースを全部 | 置換(Ctrl+H)かSUBSTITUTE | 置換は上書き・関数は残る |
| 先頭と末尾のスペースだけ | TRIM関数 | 残る(別の列に出す) |
| Webから貼った見えない空白 | SUBSTITUTE+UNICHAR(160) | 残る |
| セル内の改行 | 置換でCtrl+J、またはCLEAN | どちらも可 |
| 何も入っていないセル・行 | ジャンプ→セル選択→空白セル | 上書き(削除) |
元のデータを書き換えてよいなら置換、残したまま整えたいなら関数、と覚えておくと迷いません。関数で整えた列は、最後に値へ変えて元の列と差し替えます。
置換でスペースをまとめて消す(全角・半角)
文字の間のスペースも含めて全部消してよいなら、置換が一番早い方法です。数式を書かずに、選んだ範囲を一度に書き換えられます。
- 空白を消したい列や範囲を選ぶ
- Ctrl+Hで「検索と置換」の「置換」を開く
- 「検索する文字列」にスペースを1つ入力する
- 「置換後の文字列」は何も入れずに空欄のままにする
- 「すべて置換」を押す
Ctrl+Hは、Microsoft サポート「Excel のキーボード ショートカット」で「置換」ダイアログを表示する操作として載っているキーです。
「オプション」を開くと、「半角と全角を区別する」というチェックがあります。これがオフなら、半角スペースで検索しても全角スペースまで一緒に見つかります。
逆にオンにすると、入力した種類のスペースしか消えません。全角だけ残したいときはオンにして半角スペースを入力し、両方消したいときはオフのまま実行します。
- 範囲を選んでから実行する:セルを1つだけ選んだ状態だと、シート全体が対象になります
- 英語の氏名や住所の番地:「John Smith」の間のスペースまで消えます
- 元に戻したいとき:すぐならCtrl+Zで戻せますが、保存して閉じたあとは戻せません
大事な表なら、シートをコピーしてから置換するのが安全です。
関数で消す(SUBSTITUTE・TRIM)
元のデータを残したまま整えたいなら、隣の列に関数を書きます。全部消すならSUBSTITUTE、先頭と末尾だけならTRIMです。
=SUBSTITUTE(A2," ","") は、A2の半角スペースを「何もない文字」に置き換えます。全角も消したいなら、SUBSTITUTEを2回重ねます。
=SUBSTITUTE(SUBSTITUTE(A2," ","")," ","")
内側で半角スペース、外側で全角スペースを消す形です。SUBSTITUTEの細かい使い方はSUBSTITUTE関数の使い方にまとめています。
TRIMは、Microsoft サポート「TRIM 関数」の説明どおり、単語の間のスペースは1つ残し、それ以外の余分なスペースを消す関数です。
| A2の中身 | =TRIM(A2)の結果 |
|---|---|
| 「 山田 太郎 」 | 「山田 太郎」 |
| 「山田 太郎」 | 「山田 太郎」 |
| 「Sales report 」 | 「Sales report」 |
姓と名の間のスペースは残したいけれど、前後の余計なスペースは消したい。そんな名簿にちょうど合う関数です。
日本語版のExcelでは、TRIMは全角スペースも消す対象です。間に全角と半角が混ざって続いているときは、先頭の1つが残ります。間のスペースを全角にそろえたいなら、TRIMのあとで半角を全角に置き換えてください。
=SUBSTITUTE(TRIM(A2)," "," ")
関数で整えた列は、元の列を参照している数式のままです。Microsoft サポート「データをクリーンアップする方法トップ 10」でも、新しい列をコピーして値として貼り付け、元の列を削除する流れが紹介されています。
先に元の列を消してしまうと、数式が参照先を失って#REF!エラーになるので、順番を間違えないようにしてください。
TRIMで消えない空白の正体と消し方
TRIMやSUBSTITUTEで消したはずなのに、まだ空白が残る。この場合、残っているのはふつうのスペースとは別の文字です。一番多いのは、Webページから貼り付けたときに入る「ノーブレークスペース」(コード160)です。
前出の「TRIM 関数」のページにも、TRIMは値32のスペースを取り除くためのもので、値160の改行しないスペースはTRIMだけでは削除されない、と注意書きがあります。
残っている空白が何なのかは、UNICODE関数で番号を見ると分かります。先頭の1文字を調べるなら =UNICODE(LEFT(A2,1)) です。
| UNICODEの結果 | 空白の正体 | 消し方 |
|---|---|---|
| 32 | 半角スペース | TRIMかSUBSTITUTE |
| 12288 | 全角スペース | SUBSTITUTE(A2,” ”,””) |
| 160 | ノーブレークスペース | SUBSTITUTE(A2,UNICHAR(160),””) |
| 10 | セル内の改行 | CLEANかSUBSTITUTE(A2,CHAR(10),””) |
末尾の文字を調べたいときは、LEFTをRIGHTに替えます。空白が真ん中にあるなら、MID関数で位置を指定して取り出してください。
英語圏の解説では CHAR(160) で消す例がよく出てくるはずです。ただ、Microsoft サポート「CHAR 関数」によると、CHARはWindowsではANSI文字セットで番号を読みます。日本語のWindowsでは160番に別の文字が割り当たっているため、CHAR(160)ではノーブレークスペースにならない場合があるのが落とし穴です。
番号をUnicodeで読むUNICHAR関数なら、こうしたずれは起きません。前後のスペースもまとめて片づけるなら、次の形が使えます。
=TRIM(SUBSTITUTE(A2,UNICHAR(160)," "))
コード160の空白をいったん半角スペースに置き換え、TRIMで前後と重複を消す流れです。UNICHARとUNICODEは、Microsoft 365とExcel 2016以降のサポート対象版が対象です。
システムから出したデータには、改行やタブなど、画面では見えない制御文字が混ざることがあります。前出の「データをクリーンアップする方法トップ 10」では、TRIM・CLEAN・SUBSTITUTEを組み合わせて取り除く方法の紹介があります。
改行もまとめて消すなら =TRIM(CLEAN(A2)) です。改行を手作業で消す方法はエクセルの改行の記事で扱いました。
空白セル・空白行をまとめて削除する
何も入っていないセルや行をまとめて消すなら、「ジャンプ」の「セル選択」で空白セルだけを選び、まとめて削除します。手早い反面、表を壊しやすい操作でもあります。
- 空白を探したい範囲を選ぶ
- Ctrl+Gで「ジャンプ」を開き、「セル選択」を押す
- 「空白セル」を選んでOKを押す(空白セルだけが選ばれる)
- 選ばれたセルの上で右クリック→「削除」→「行全体」を選ぶ
この流れはMicrosoft サポート「Excel で特定の条件を満たすセルを検索して選択する」の「選択オプション」を使った方法です。「ホーム」タブの「検索と選択」→「条件を選択してジャンプ」からも同じ画面が開けます。
- 一部の列だけ空欄の行も消える:表全体を選んで実行すると、電話番号だけ未入力の行まで行ごと消えます
- “”を返す数式は空白セルにならない:見た目は空でも数式が入っているので選ばれません
- スペースだけ入ったセルも選ばれない:空に見えても中身があるので、先にスペースを消しておきます
一部の列が空欄の行を残したいなら、補助の列で「行が全部空か」を判定してから消すと安全です。表がA〜F列なら、G2に =COUNTA(A2:F2)=0 と入れて下までコピーします。
TRUEになった行が、全部の列が空っぽの行です。G列でTRUEだけをフィルターで絞り込み、見えている行を削除すれば、必要な行を巻き込みません。終わったらフィルターを解除し、補助の列を消しておきましょう。
Microsoft 365とExcel 2021以降なら、元の表を消さずに空の行を除いた表を別の場所に出すこともできます。FILTER関数の使い方で書き方を紹介中です。
よくある質問
Q1:空白を消したのに、数字が計算に使えません
置換や関数で空白を消しても、元が文字列だった数字は文字列のままのことがあります。
=VALUE(SUBSTITUTE(A2," ","")) のようにVALUE関数で数値に変えるか、「データ」タブの「区切り位置」でそのまま完了を押すと、数値に変わることが多いです。
Q2:置換で「一致するデータが見つかりません」と出ます
残っている空白が、ふつうのスペースではない可能性があります。上で紹介した =UNICODE(LEFT(A2,1)) で番号が160になっていないか確かめてください。
「半角と全角を区別する」がオンのまま、入力したのと違う種類のスペースを探しているケースもあります。オプションのチェックも見直してみましょう。
Q3:空白を消したら、VLOOKUPで一致するようになったのはなぜ?
検索する値と表の値の片方にだけ、見えない空白が付いていたからです。「山田太郎」と「山田太郎 」は、エクセルの中では別の文字列として扱われるためです。
照合がうまくいかないときの見方は、VLOOKUP関数の使い方でも取り上げました。
Q4:氏名の姓と名の間だけ、スペースを1つ残したい
TRIM関数が向いています。前後のスペースを消し、間に続いたスペースを1つにまとめてくれるので、名簿の整形にちょうど合う関数です。
間のスペースを全角にそろえたいなら、=SUBSTITUTE(TRIM(A2)," "," ") で半角を全角に置き換えてください。
Q5:数式の中に「””」で空白に見せているセルも消したい
“”を返す数式のセルは、ジャンプの「空白セル」では選ばれません。フィルターで「(空白セル)」を選ぶと、””を返すセルも空白として絞り込めます。
絞り込んだ行を削除するか、表全体をFILTER関数で作り直す形が扱いやすいでしょう。
まとめ
空白の削除の要点
- 全部消すなら置換(Ctrl+H)、先頭と末尾だけならTRIM
- 全角と半角を両方消すなら「半角と全角を区別する」をオフにする
- TRIMで消えない空白はUNICODEで番号を確かめ、160ならUNICHAR(160)で消す
- 関数で整えた列は、値に変えてから元の列を消す
- 空白行の削除は、補助の列で全部空か判定してから行う
- SUBSTITUTE関数の使い方|文字の置換・削除とn番目だけ置き換える方法
- エクセルの改行|セル内で改行するショートカットと一括削除・数式での改行
- VLOOKUP関数の使い方|4つの引数の意味とエラーが出るときの直し方
参考にした公式情報: TRIM 関数/データをクリーンアップする方法トップ 10/CHAR 関数/UNICHAR 関数/Excel で特定の条件を満たすセルを検索して選択する/Excel のキーボード ショートカット(いずれもMicrosoft サポート・2026年9月確認)
※関数の対応状況や操作手順はExcelのバージョンにより異なる場合があります。本記事はMicrosoft 365のデスクトップ版Excel(Windows・日本語版)を前提にした内容です。

