いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)TRIM関数が全角スペースを削除しないことと対策例

 GoogleスプレッドシートのTRIM関数はExcelと違って全角スペースを削除しません。
 その実例と、全角スペースも含めて削除する対応例を示します。

  • GoogleスプレッドシートのTRIM関数は、文字列の先頭と末尾に並ぶ「半角スペース」を削除し、文字列の途中にある「半角スペース」を1つだけ残して削除します。

手順

 B3:B5に3つの文字列が記録されています。また、C3:C5に3つの式が記入されています。

f:id:accs2014:20190518164612p:plain:w650

 B3セルの文字列は、「 あ い う 」です(あいうの文字の前後と間に半角スペースが1文字)。
 B4セルの文字列は、「 あ い う 」です(あいうの文字の前後と間に全角スペースが1文字)。
 B5セルの文字列は、「  あ  い  う  」です(あいうの文字の前後と間に全角スペース1文字と半角スペース1文字)。

 これに対してC3セルには「=TRIM(B3)」、C4セルには「=TRIM(B4)」と記しています。
 また、C5セルには次のような式を記しています。

=REGEXREPLACE(B5,"^[  ]*|[  ]*$","")

 2回現れる[  ]内には全角スペースと半角スペースを1つずつ置いています。
 文字列の先頭に現れる一連の全角及び半角スペースと、末尾に現れる一連の全角及び半角スペースを削除するという内容になっています。
 全角・半角スペースの順序及び数を問わず一律削除します。
 

 実行結果は次のようになります。

f:id:accs2014:20190518164609p:plain:w650

 わかりにくいですが、C3セルにおいて先頭及び末尾の半角スペースが削除されています。
 しかし、C4セルでは先頭及び末尾の全角スペースが削除されずそのまま残っています。このように、TRIM関数は全角スペースを削除しません。
 C5セルでは先頭及び末尾の全角スペースと半角スペースが削除されています。


 C5セルの式とほぼ同様の式で、先頭のスペースだけ/末尾のスペースだけを削除することもでき、さらに「検索と置換」にも応用できます。
 これらについて詳しくは次の記事で紹介しています(式中の「*」が「+」になっている違いがありますが、結果は同じです)。

www.officeisyours.com