プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

Excelのtrim関数に注意

Excel関数にtrimというものがあります。

このtrimは名前の通り、文字列をトリムする機能を持っています。

ですが、このtrimは一般的なプログラム言語でいうtrimとはちょっと違う動きをするので注意が必要です。

例えば、Javaのtrim()であれば、先頭と末尾の半角空白がトリム(除去)されます。

" AAA BBB ".trim() ⇒ "AAA BBB"

Excelの関数の場合だと、先頭と末尾のトリムに加えて、中の空白もトリムします。
ただし、完全になくなるわけではなく、複数の空白を1つにまとめます

=trim("   AAA        BBB   ") ⇒ "AAA BBB"

 

便利な場合もあるのですが、特にプログラマーがイメージしている動きのつもりで書いていると、思わぬ問題が起こります。
文字列の間の空白が1文字の場合には、その違いに気づきません。
データが変わって、複数の空白が連なった場合に、イメージと違う動きをします。

ご注意ください。

なお、Excel関数にはこのtrimしかないので、前後のトリムだけを行いたい場合は、Excel関数を複雑に組み合わせて実現するか、
VBAで関数定義をする必要があります。

たとえば、

Function RTrimEX(source As String) As String
    RTrimEX = RTrim(source)
End Function

というような関数を標準モジュールに定義して、Excelのセルで、
=RTrimEx(A1)
のようにすれば、関数を使用できます。

ご参考までに

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

, ,

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください