困っている女性
解決する男性
困っている女性
解決する男性
困っている女性
この記事では、入力されている文字列から半角空白や全角空白を除去するTRIM関数について説明します。
すでに入力されている文字列に無駄な空白が含まれている場合、都合が悪い時があります。
そういうときに役に立つTRIM関数の使い方を覚えてしまいましょう。
また、EXCELの標準関数では難しい文字列に含まれている空白の個数を数える自作関数(VBA)についても説明します。
以下の記事ではFIND関数と似たような文字数を指定して文字列を操作するLEFT関数・MID関数・RIGHT関数について説明しています。
【EXCEL:LEFT・MID・RIGHT関数】文字列から指定した文字数分の文字を抜き出したい
また、以下の記事ではFINDB関数と似たようなバイト数を指定して文字を抜き出すLEFTB関数・MIDB関数・RIGHTB関数について説明しています。
【EXCEL:LEFTB・MIDB・RIGHTB関数】文字列から指定したバイト数分の文字を抜き出したい
以下の記事では、入力されている文字列の文字数やバイト数を返すLEN関数・LENB関数について説明しています。
【EXCEL:LEN・LENB関数】文字列の文字数・バイト数を求めたい
以下の記事では、検索文字列を検索し、置換文字列で置き換えるSUBSTITUTE関数について説明しています。
【EXCEL:SUBSTITUTE関数】指定した文字を検索し指定した文字で置き換えたい
以下の記事では、指定した文字が何文字目・何バイト目か調べるFIND関数・FINDB関数について説明しています。
【EXCEL:FIND・FINDB関数】指定した文字が何文字目・何バイト目か知りたい
それでは、TRIM関数について説明します。
もくじ
TRIM関数の使い方
TRIM関数は、以下のように指定します。
=TRIM(文字列)
指定された文字列をから半角空白や全角空白を除去してくれます。
TRIM関数は、1つの引数を指定します。
空白が含まれている文字列を指定します。
文字列の先頭や末尾に空白が含まれている場合、全ての空白は除去されます。
しかし、文字列の途中に空白が含まれている場合、連続する空白なら先頭の空白だけ残して他の空白は除去してくれます。
例えば、文字列の途中に3つ連続で空白が存在する場合、2つ目と3つ目の空白は除去し、1つ目の空白は残ったままになります。
また、文字列はセル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。
TRIM関数の使用例
以下の図では、セルA2に入力されている文字列に対して、セルD2にTRIM関数を利用して空白を除去しています。
セルB2には、文字列の説明を入力しています。
セルA2には、先頭に半角スペースが1つ存在する文字列となっています。
セルD2には、セルA2に入力されている文字列「 ABCD」の空白が除去され、「ABCD」がTRIM関数から返されています。
18行目の文字列には、「AB CD」が入力されています。
文字列の途中に全角空白が3連続で入力しています。
この文字列をTRIM関数を利用して空白を除去すると、文字列の途中の空白は1つだけになります。
セルC2には、文字列に含まれている空白の個数をカウントする自作関数(VBA)を利用して、空白の個数が表示されています。
セルC2には、セルA2の文字列に含まれている空白の個数をカウントした結果として、「1」が表示されています。
セルE2にも、文字列に含まれている空白の個数をカウントする自作関数(VBA)を利用して、空白の個数が表示されています。
セルE2には、セルD2の文字列に含まれている空白の個数をカウントした結果として、「0」が表示されています。
セルD2の文字列は、TRIM関数で空白が除去されたことを表しています。
文字列に含まれている空白の個数をカウントする自作関数(VBA):COUNTSPACEの説明
以下の図は、自作関数(COUNTSPACE)のVBAソースです。
COUNTSPACEの引数は、文字列です。
文字列は、セル番地か直接文字列(ダブルクォーテーションで囲んだ文字列)を指定することができます。
処理内容は、引数で渡された文字列を1文字ずつ半角空白か全角空白か確認しています。
結果として、カウントした半角空白や全角空白の個数を返します。
以下に実際のVBAソースを掲載しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Public Function COUNTSPACE(ByVal moji As String) Dim length As Integer Dim i As Integer Dim cnt As Integer Dim tmp As String '文字の長さを求める length = Len(moji) cnt = 0 For i = 1 To length '1文字ずつ抜き出す tmp = Mid(moji, i, 1) If tmp = " " Or tmp = " " Then '半角空白か全角空白の場合、+1する cnt = cnt + 1 End If Next COUNTSPACE = cnt End Function |
TRIM関数に渡す文字列をいろいろ変えて試してみましょう。
また、今回作成した自作関数:COUNTSPACEのVBAソースを変更して試してみましょう。
以上です。