実務では、他のシステムから出力したデータをExcelで利用する、といったことがあります。
こういった場合に、出力元のシステムによってはデータの後にスペース(空白)が入っていることもあったりするため、
「エクセルで余分なスペース・空白を削除するにはどうすればいいのか?」
といったご質問をいただくことがあります。
余分なスペース・空白を削除するTRIM関数
プログラミングの経験がある方にとっては、おそらく馴染み深い名前のワークシート関数が用意されています。
TRIM関数
使い方はスペースを削除したい文字列を引数に指定するだけです。
例えば、A1セルに文字列が入力されていて余分なスペースを削除するのならば
=TRIM(A1)
という数式を入力してください。
TRIM関数はあるがLTRIMやRTRIMはない
プログラミングの経験がある方にこのTRIM関数についてご紹介すると、
「じゃあLTRIM関数・RTRIM関数もあるのですか?」
といったご質問をいただく場合があります。
答えはNoです。
プログラミング言語でありがちな、左側(先頭)のスペースを削除するLTRIM関数や、右側(末尾)のスペースを削除するRTRIM関数は、Excelのワークシート関数としては用意されていません。
但し、VBA(Visual Basic for Applications)には、LTrim関数・RTrim関数が用意されているので、これらのVBA関数を呼ぶユーザー定義関数を作成することで、簡単に左側スペースの削除・右側スペースの削除といった機能を実装することは可能です。
TRIM関数の仕様に注意
むしろ特にプログラミング経験のある方が注意すべきなのは、TRIM関数の仕様です。
一般的にプログラム言語でのTrim関数と言えば、前後のスペースだけを削除するという仕様だと思うのですが、ExcelのTRIM関数はそうではないのです。
前後のスペースを取り除く上に、文字列の間にある余分なスペースも削除するのがワークシート関数・TRIMの仕様なのです。
TRIM関数の挙動
例えば、A1セルに
「 渋 谷 」
といった、文字列の前後や、間に複数の全角スペースの含まれるときに
=TRIM(A1)
という数式では、
「渋 谷」
という文字列が返されます。
多くのプログラミング言語のTrim関数の仕様からすると、前後のスペースだけが削除され
「渋 谷」
といった文字列になりそうなものですが、そうではないのです。
また全てのスペースを削除して
「渋谷」
となるわけでもありません。
文字列の間にあるスペースは1つだけ残して削除するのです。
このとき間にあるスペースが、
全角スペース・半角スペース・・・
といった順であれば全角スペースが残され、
半角スペース・全角スペース・・・
の順ならば半角スペースが残されます。
先頭にあるスペースが残されるわけです。
前後のスペースだけを削除する関数が必要ならば、VBAのTrim関数を呼ぶユーザー定義関数を作成するのが手っ取り早いでしょう。
最終更新日時:2019-01-14 06:59
- Newer:クリックすると文字が表示されるように-もんたメソッド
- Older:原稿用紙をダウンロードする
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » Excelで余分なスペースを削除する−TRIM関数