いきなり答える備忘録

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

(Gスプレッドシート)文字列の先頭/末尾の空白だけ削除する

 Googleスプレッドシートで、文字列の先頭に並ぶスペース(全角と半角は混在可)や、末尾に並ぶスペース(同様)を削除する方法についてです。
 TRIM関数では半角スペースしか削除できず、一方で文字間の半角スペースまで削除してしまいますので、別の方法を試してみます。

  • REGEXREPALCE関数を使って、文字列の先頭や末尾に並ぶスペースだけを削除することができます。
  • 「検索と置換」メニューを使って削除することもできます。

手順

先頭と末尾の空白を削除する

f:id:accs2014:20220122151110p:plain:w700

 上の画像のB3:B5の文字列の先頭、文字の間、末尾にはいずれも複数のスペース(いずれも全角スペースと半角スペースが混在しています)が含まれています。
 そこでC3セルに次の式を入力して下方にコピーし、先頭と末尾のスペースだけを削除し、文字の間にあるスペースだけはそのまま残しています。

 C3セル

=REGEXREPLACE(B3,"^[  ]+|[  ]+$","")

 REGEXREPLACEを使用しています。第2引数中の「^[  ]+」は文字列の先頭に並んでいる全角スペースと半角スペースを表し([  ]内には全角スペースと半角スペースが記されています)、「[  ]+$」は文字列の末尾に並んでいる全角スペースと半角スペースを表します。
 これらを「|」でつなぐことで、両方とも第3引数(空文字列)に変換する、つまり削除できるというわけです。

先頭の空白だけ削除する

f:id:accs2014:20220122151113p:plain:w700

 こちらでは文字列の先頭に並んでいる複数のスペースだけを削除しています。
 式は下記のとおりですが、第2引数として「^[  ]+」つまり文字列の先頭に並んでいる全角スペースと半角スペースを指定している以外は上の例と同様です。

 C3セル

=REGEXREPLACE(B3,"^[  ]+","")


末尾の空白だけ削除する

f:id:accs2014:20220122151116p:plain:w700

 こちらでは文字列の末尾に並んでいる複数のスペースだけを削除しています。右寄せしないとわかりにくいですが、文字数の違いで結果に違いがあることが判ると思います。
 第2引数として「[  ]+$」つまり文字列の末尾に並んでいる全角スペースと半角スペースを指定している以外は上の例と同様です。

 C3セル

=REGEXREPLACE(B3,"[  ]+$","")

「検索と置換」による削除

 上記の方法は正規表現を使ったものでしたので、「検索と置換」メニューにも応用できます。
 下記では「検索」欄に「^[  ]+|[  ]+$」と入力し、「置換後の文字列」には何も入力せず置き換えることで先頭と末尾のスペースを削除しようとしています。結果は最初の画像と同じになります。

f:id:accs2014:20220122151120p:plain:w800