目次
このチュートリアルでは、Excelのスペースをトリミングするいくつかの迅速かつ簡単な方法を示しています。 先頭、末尾、および単語間の余分なスペースを削除する方法、Excel TRIM関数が動作しない理由とそれを修正する方法について説明します。
2つの列を比較して重複があることが分かっているのに、数式で1つも重複項目を見つけられないのですか? あるいは、2つの列の数値を足し合わせてもゼロしか出てこないのですか? 明らかに正しいVlookup数式が、N/Aエラーばかりを返すのはなぜですか? これらは、あなたが答えを求めている問題のほんの一例です。 そしてすべて、以下の原因によるものなのです。 余白 セル内の数値やテキストの前、後、間を隠します。
Microsoft Excelには、スペースを削除してデータをきれいにする方法がいくつかあります。 このチュートリアルでは、Excelでスペースを削除する最も速く簡単な方法として、TRIM関数の機能を調査します。
TRIM関数 - Excelの余分なスペースを削除する
ExcelのTRIM関数は、テキストから余分なスペースを削除します。 これは、すべての先頭、末尾、および間のスペースを削除します。 スペース以外 単語と単語の間の文字
TRIM関数の構文は、想像以上に簡単です。
TRIM(テキスト)どこ テキスト は、余分なスペースを取り除きたいセルです。
たとえば、セルA1のスペースを削除するには、次の数式を使用します。
=TRIM(A1)
そして、その結果が以下のスクリーンショットです。
そう、とても簡単なことなのです。
TRIM機能は、7ビットASCIIコード体系で値32を持つスペース文字のみを削除するように設計されていることに注意してください。 余分なスペースに加えて、データに改行や非印刷文字が含まれている場合は、TRIM機能とCLEANを併用してASCII体系で最初の非印刷文字32文字を削除してください。
例えば、セルA1からスペースや改行などの不要な文字を削除するには、次の数式を使用します。
=trim(clean(a1))
詳しくは、「Excelで印字されない文字を削除する方法」をご覧ください。
改行されていないスペース(html文字)を取り除くには ) の値が160の場合は、TRIMとSUBSTITUTE、CHARの各機能を併用します。
=trim(substitute(a1, char(160), " "))
詳しくは、「Excelで改行されていないスペースを削除する方法」をご覧ください。
エクセルでTRIM関数を使う方法 - 数式例
それでは、ExcelでのTRIMの具体的な使い方と、陥りやすい落とし穴、解決策を説明します。
データ列全体のスペースをトリミングする方法
例えば、文字列の前後に空白があり、単語と単語の間に1つ以上のスペースがある名前の列があるとします。 では、すべてのセルの先頭、末尾、余分な間のスペースを一度に削除するにはどうすればよいでしょうか。 列全体に Excel TRIM式をコピーし、数式をその値に置き換えることによって行います。 詳しい手順は以下のとおりです。
- 一番上のセル(この例ではA2)に対してTRIM式を書きます。
=TRIM(A2)
- カーソルを数式セルの右下隅(この例ではB2)に置き、カーソルがプラス記号に変わったらすぐにダブルクリックして、数式を列の下に、データのある最後のセルまでコピーします。 その結果、スペース付きの元の名前と数式で切り詰められた名前の2列が作成されます。
- トリム式のあるセル(この例ではB2:B8)をすべて選択し、Ctrl+Cキーを押してコピーします。
- 元のデータ(A2:A8)があるすべてのセルを選択し、Ctrl+Alt+V を押し、V を押します。 これは、値の貼り付けのショートカットです。 ペースト・スペシャル > 価値観
- Enterキーを押して、完了です。
数値列の先頭の空白を削除する方法
ExcelのTRIM関数は、テキストデータの列から余分なスペースをすべて取り除くことができます。 しかし、データがテキストではなく数字であった場合はどうでしょうか。
一見、TRIM機能が働いているように見えますが、よく見るとトリミングされた値が数字らしくないことに気づきます。 ここでは、その異常の兆候をいくつか紹介します。
- 元の列の先頭のスペースとトリミングされた数字は、セルにNumberフォーマットを適用しても左揃えになり、通常の数字はデフォルトで右揃えになります。
- 数値を切り詰めたセルを2つ以上選択した場合、ExcelはステータスバーにCOUNTのみを表示します。 数値の場合は、SUMとAVERAGEも表示されるはずです。
- トリミングされたセルにSUM式を適用すると、0が返される。
どう見ても、トリミングされた値は テキスト文字列 これを解決するには、切り捨てた値を1倍します(すべての値を一度に掛け合わせるには、「貼り付け特殊機能>掛け合わせ」オプションを使用します)。
よりエレガントな解決策は、次のようにTRIM関数をVALUEで囲むことである。
=value(trim(a2))
上記の計算式は、以下のスクリーンショットに示すように、先頭と末尾のスペースをすべて削除し、結果の値を数値に変換します。
Excelで先頭のスペースだけを削除する方法(左トリム)
場合によっては、読みやすくするために、単語と単語の間に重複して、あるいは3つ以上のスペースを入力することがあります。 しかし、このように先頭のスペースは取り除きたいものです。
TRIM関数は、文字列の途中にある余分なスペースを削除するものですが、これは私たちの望むところではありません。 すべてのスペースをそのまま維持するには、もう少し複雑な数式を使用することになります。
=mid(a2,find(mid(trim(a2),1,1),a2),len(a2))。
上の式では、FIND、MID、TRIMの組み合わせで、文字列中の最初の文字の位置を計算します。 そして、その数値を別のMID関数に与えて、最初の文字の位置から始まる文字列全体(文字列長はLENで計算)を返すようにします。
以下のスクリーンショットでは、先頭のスペースはすべてなくなり、単語と単語の間に複数のスペースが残っていることがわかります。
仕上げに、トリム式の例のステップ3にあるように、元のテキストをトリムした値で置き換えれば、完了です。
セルの末尾のスペースも削除したい場合は、「スペースのトリム」ツールを使用します。 単語間の複数のスペースをそのままに、先頭と末尾のスペースを削除する明確なExcel公式は存在しません。
セル内の余分なスペースをカウントする方法
Excelのシートでスペースを削除する前に、実際にどれくらいの余分なスペースがあるのかを知りたい場合があります。
セル内の余分なスペースの数を知るには、LEN関数で文字列の総長を求め、余分なスペースを除いた文字列の長さを計算し、前者から後者を差し引きます。
=len(a2)-len(trim(a2))
次のスクリーンショットは、上記の数式を実際に表示したものです。
のカウントを返す式です。 余白 セル内のスペース(先頭、末尾、単語間の連続した1つ以上のスペース)はカウントされますが、テキストの途中にある1つのスペースはカウントされません。 セル内のスペースの総数を取得したい場合は、次の代用式を使用します。
余分なスペースがあるセルを強調表示する方法
機密情報や重要な情報を扱う場合、何を削除するのかを確認しないと削除を躊躇してしまいます。 このような場合、まず余分なスペースを含むセルをハイライトし、そのスペースを安全に削除することができます。
そのために、次のような数式で条件付き書式ルールを作成します。
=LEN($A2)>LEN(TRIM($A2))です。
ここで、A2 は強調したいデータのある最上位のセルです。
この数式は、文字列の合計の長さがトリミングしたテキストの長さよりも大きいセルを強調表示するようにExcelに指示します。
条件付き書式ルールを作成するには、列見出しを付けずに強調したいセル(行)をすべて選択し、[OK]をクリックします。 ホーム tab> スタイル をクリックします。 条件付き書式設定 > 新ルール > 数式を使用して、どのセルをフォーマットするかを決定する .
Excelの条件付き書式設定にまだ慣れていない方は、こちらで詳しい手順をご覧いただけます:数式に基づいた条件付き書式ルールを作成する方法。
下のスクリーンショットに示すように、この結果は前の例で得た余分なスペースの数と完全に一致しています。
このチュートリアルで説明した数式をもっと詳しく見たい方は、Trim Excel Spaces Workbookをダウンロードしてください。
ExcelのTRIMが機能しない
TRIM関数は くうはくもじ 7ビットのASCII文字セットではコード値32で表されますが、Unicode文字セットではさらに ノン・ブレイキング・スペース という文字があり、Webページでhtml文字として一般的に使われています。 このスペースは10進数で160となり,TRIM機能だけでは除去できません。
そこで、データセットにTRIM関数では取り除けない空白が1つ以上ある場合は、SUBSTITUTE関数を使って、改行されていないスペースを通常のスペースに変換してからトリミングします。 テキストがA1にあると仮定すると、数式は次のようになります。
=trim(substitute(a1, char(160), " "))
さらに念のため、CLEAN機能を埋め込んで、印字できない文字をセルから消去しておくことも可能です。
=trim(clean(substitute(a1, char(160), " ")))
次の画面は、その違いを表しています。
上記の計算式でもうまくいかない場合は、データにコード値32と160以外の特定の非印刷文字が含まれている可能性があります。 この場合、以下の計算式のいずれかを使用して文字コードを調べます。なお、A1は問題のあるセルです。
空間をリードする。 =code(left(a1,1))
末尾のスペース。 =code(right(a1,1))
中間の空間(ここで n は、テキスト文字列中の問題のある文字の位置)。
=CODE(MID(A1, n , 1)))
そして、返された文字コードを前述のTRIM(SUBSTITUTE())式に供給します。
例えば、CODE関数がHorizontal Tab文字である9を返した場合、次の式で削除します。
=trim(substitute(a1, char(9), " "))
トリムスペース for Excel - 余分なスペースをワンクリックで削除します。
このような些細なタスクのために、いくつもの数式を学ぶのは馬鹿げていると思われますか? それなら、ワンクリックでExcelのスペースを消すテクニックを紹介しましょう。 Ultimate Suiteに含まれるText Toolkitを紹介しましょう。 大文字小文字の変更、テキストの分割、フォーマットのクリアなどの他に、次のような機能があります。 トリムスペース オプションを使用します。
Ultimate SuiteをExcelにインストールすれば、Excelのスペースを削除するのもこれくらい簡単です。
- スペースを削除したいセルを選択します。
- をクリックします。 トリムスペース ボタンをクリックします。
- 以下のオプションの中から1つまたはすべてを選択してください。
- トリム リーディング と 後追い 空間
- トリム べつ 単語と単語の間にスペースを入れる。 スペース以外
- トリム ノンブレーキング スペース ( )
- クリック トリム .
たったこれだけ!余分なスペースは瞬時に削除されます。
この例では、先頭と末尾のスペースだけを取り除き、読みやすくするために単語と単語の間に複数のスペースを残しています。
ご興味のある方は、ぜひお試しください。 トリムスペース をお持ちの方は、この記事の最後にある評価版をぜひダウンロードしてください。
次回のチュートリアルでは、Excelでスペースをトリミングする他の方法について説明します。
ダウンロード可能なもの
Excelスペースのトリム - 計算式例(.xlsxファイル)
Ultimate Suite - 体験版 (.exeファイル)