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)
のようにすれば、関数を使用できます。
ご参考までに
== ランキングに参加しています。ぜひクリックお願いします ==
無線LANルータ AtermWR8370Nを激安購入しました [iPhone,iPad] 日本でもiTunes in the Cloudが使えるように