目次
このチュートリアルでは、Excelで数式とテキストツールキットツールを使って空白を削除する方法を説明します。 セル内の先頭と末尾のスペースを削除し、単語間の余分なスペースを排除し、非改行ホワイトスペースと非印刷文字を取り除く方法を学びます。
空白文字の最大の問題点は、人間の目には見えないことです。 注意深く見れば、本文の前に隠れている先頭の空白文字や、単語と単語の間にある余分な空白文字を見つけることはできますが、セルの末尾にある見えない空白文字を見つける方法はありません。
余分なスペースが転がっているだけならたいした問題ではないのですが、数式がめちゃくちゃになります。 要は、同じテキストを含む2つのセルにスペースがある場合とない場合、たとえそれがスペース1文字であっても、異なる値とみなされます。 そのため、明らかに正しい数式が一見同じ入力に見える2つにマッチしない理由を突き止めようと頭を悩ませることがあるのです。
文字列からスペースを除去する方法はいくつかありますが、このチュートリアルでは、特定のタスクと扱うデータ型に最適な手法を選択するのに役立ちます。
Excelで空白を削除する方法 - 先頭、末尾、単語間
データセットに余分なスペースが含まれている場合、ExcelのTRIM機能を使って、単語間のスペース1文字を除き、先頭、末尾、複数の中間スペースを一度に削除することができます。
通常のTRIMの計算式はこのように単純である。
=TRIM(A2)
ここで、A2はスペースを削除したいセルです。
次のスクリーンショットに示すように、ExcelのTRIM式は、文字列の前後にあるすべてのスペースと、文字列の途中にある連続したスペースを排除することに成功しました。
そして今度は、元のカラムの値をトリミングされた値に置き換えるだけです。 これを行う最も簡単な方法は ペースト・スペシャル > 価値観 詳細な手順は、こちらでご覧いただけます:Excelで値をコピーする方法。
さらに、Excel の TRIM 関数を使用して、次のように削除できます。 先行スペースのみ 数式例はこちら:Excelで先頭のスペースをトリミングする方法(左トリム)。
改行や非印字を削除する方法
外部からデータを取り込むと、余分なスペースだけでなく、キャリッジリターン、ラインフィード、垂直または水平タブなど、さまざまな非印刷文字も一緒に取り込まれることになります。
TRIM関数は、ホワイトスペースを取り除くことはできますが、印字されない文字を取り除くことはできません。 技術的には、ExcelのTRIMは、7ビットASCIIシステムの値32、すなわちスペース文字のみを削除するように設計されています。
文字列中のスペースや印字されない文字を削除するには、TRIMとCLEAN機能を組み合わせて使用します。 CLEANはその名の通り、データのクリーニングを目的としており、7ビットASCIIセットの最初の32文字(値0~31)を含む印字されない文字をすべて削除することが可能です。 かいせんせつだん (値10)です。
クリーニングするデータがセルA2にあると仮定すると、数式は次のようになります。
=trim(clean(a2))
Trim/Clean 式で複数行の内容をスペースなしで結合した場合、次のいずれかの方法で修正できます。
- Excelの「全置換」機能を利用し、「検索内容」ボックスにキャリッジリターンをショートカットキーCtrl+Jで入力し、「置換先」ボックスにスペースを入力する。 をクリックし、「全置換」ボタンをクリックする。 すべて交換 ボタンを押すと、選択された範囲の改行がすべてスペースに置き換えられます。
- キャリッジリターン(値13)とラインフィード(値10)の文字をスペースに置き換えるには、次の式を使用します。
=substitute(substitute(a2, char(13)," "), char(10), " ")
詳しくは、「Excelでキャリッジリターン(改行)を削除する方法」をご覧ください。
Excelで改行されていないスペースを削除する方法
TRIM & CLEANを使用しても頑固なスペースが残っている場合は、データをどこからかコピー&ペーストして、改行されていないスペースが少し入り込んでいる可能性があります。
改行されていないスペース(html文字)を取り除くには )を通常のスペースに置き換え、TRIM関数で削除させる。
=trim(substitute(a2, char(160), " "))
このロジックをよりよく理解するために、数式を分解してみましょう。
- 非破壊文字は、7ビットASCIIシステムでは値160なので、CHAR(160)式で定義することができます。
- SUBSTITUTE関数は、改行されないスペースを通常のスペースに変換するために使用されます。
- そして最後に、SUBSTITUTE文をTRIM関数に埋め込んで、変換されたスペースを削除するのです。
ワークシートに印字されない文字も含まれている場合は、TRIMやSUBSTITUTEと一緒にCLEAN機能を使って、スペースや不要な記号を一度に取り除いてください。
=trim(clean((substitute(a2,char(160)," "))))
以下のスクリーンショットは、その違いを示しています。
特定の非印刷文字を削除する方法
上記の例で説明した3つの関数(TRIM、CLEAN、SUBSTITUTE)の連携で、シート内のスペースや非印字を除去できなかった場合、それらの文字はASCII値が0〜32(非印字)または160(非改行スペース)以外であることがわかります。
この場合、CODE機能で文字値を特定し、SUBSTITUTEで通常のスペースに置き換え、TRIMでスペースを削除する方法を採用します。
除去したいスペースやその他の望ましくない文字がセルA2にあると仮定して、2つの数式を書きます。
- セルB2に、以下のCODE関数のいずれかを使用して問題のある文字値を検出します。
- 文字列の先頭のスペースまたは非印刷文字。
=code(left(a2,1))
- 文字列の末尾にあるスペースまたは非印刷文字。
=code(right(a2,1))
- 文字列の途中にあるスペースまたは非印刷文字。 n は問題のある文字の位置です。
=CODE(MID(A2, n , 1)))
この例では、テキストの真ん中、4番目の位置に何か未知の非印刷文字があり、その値をこの式で求めます。
=code(mid(a2,4,1))
CODE関数は値127を返します(以下のスクリーンショットをご参照ください)。
- 文字列の先頭のスペースまたは非印刷文字。
- セルC2では、CHAR(127)を通常のスペース(" ")に置き換え、そのスペースをトリミングしています。
=trim(substitute(a2, char(127), " "))
結果はこのような感じになるはずです。
データに数種類の非表示文字と非改行スペースが含まれている場合、2つ以上のSUBSTITUTE関数を入れ子にして、一度にすべての不要な文字コードを削除することができます。
=trim(substitute(a2, char(127), " "), char(160), " "))
Excelですべてのスペースを削除する方法
例えば、数値列をインポートしたときに、スペースが桁区切りとして使われていて、大きな数値は読みやすくなるが、計算式が計算できなくなるような場合、セル内の空白を完全に削除することができます。
すべてのスペースを一度に削除するには、前の例で説明したようにSUBSTITUTEを使用します。ただし、CHAR(32)が返すスペース文字を何もない状態("")に置き換えることが唯一の相違点です。
=substitute(a2, char(32), "")
あるいは、次のように、数式にスペース(" ")を入力するだけでもよい。
=substitute(a2," ",")
その後、数式を値に置き換えることで、数値が正しく計算されるようになります。
Excelでスペースをカウントする方法
あるセルからスペースを削除する前に、実際にいくつのスペースがあるのか知りたくなることがあります。
セル内のスペースの総数を取得するには、次のようにします。
- LEN関数で文字列全体の長さを計算:LEN(A2)
- すべてのスペースを無に置換する:SUBSTITUTE(A2," ",")
- スペースを除いた文字列の長さを計算する:LEN(SUBSTITUTE(A2," ","))
- 全長から「スペースフリー」の文字列長を差し引く。
元の文字列がセルA2にあると仮定すると、完全な数式は次のようになります。
=len(a2)-len(substitute(a2," ","))
の数を調べるには 余白 がセル内にある場合、余分なスペースを除いたテキストの長さを求め、それを文字列の合計の長さから差し引く。
=len(a2)-len(trim(a2))
以下のスクリーンショットは、この2つの数式が実際に使われている様子を示しています。
各セルに含まれるスペースの数がわかったので、TRIM式を使って余分なスペースを安全に削除することができます。
数式を使わずにスペースを削除し、データをきれいにする方法
特に外部からデータを取り込んだ場合、余分なスペースや不要な文字がシートに潜んでいることがあります。 Excelでスペースを数式で削除する方法もご存知でしょう。 もちろん、数式をひと通り覚えることはスキルを磨くのに良い練習になりますが、時間がかかるかもしれませんね。
究極のExcel Suiteに含まれるテキストツールを使えば、ボタンクリックでスペースや非印刷の文字を削除することができます。
Ultimate Suite をインストールすると、Excel リボンに以下のような便利なボタンが追加されます。 トリムスペース , 文字の削除 , テキストを変換する , クリアフォーマット などなど。
Excelのシートにある空白を消したいときは、次の4つのステップを実行してください。
- 余分なスペースを削除したいセル(範囲、列全体、行)を選択します。
- をクリックします。 トリムスペース ボタンをクリックします。 エイブルビットのデータ タブで表示します。
- 1つまたは複数のオプションを選択します。
- 削除 リーディング と 後追い 空間
- トリム べつ 語間 こころにきざむ
- 削除 ノンブレーキング スペース ( )
- をクリックします。 トリム ボタンをクリックします。
完了!余分なスペースは1クリックで削除されます。
このように、Excelのセル内のスペースを素早く削除することができます。 他の機能を試してみたい方は、ぜひUltimate Suiteの評価版をダウンロードしてください。 それでは、また来週のブログでお会いできるのを楽しみにしています。