いきなり答える備忘録

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

(Gスプレッドシート)REGEXREPLACE関数で空白セルや文字列の前後・文字間を置き換えられる

 GoogleスプレッドシートのREGEXREPLACE関数で置換対象として「""」を指定することで、空白セルのほか文字列の前後や文字間を別の文字列に置き換えられます。SUBSTITUTE関数ではこのようなことはできません。

  • REGEXREPLACE関数の第2引数を「""」とする(あるいは何も記さない)ことで、文字列の前後と各文字の「間」を別の文字列に置き換えられます。つまり各文字間に任意の文字列を挿むことができます。

手順

f:id:accs2014:20190519152335p:plain:right:w500

 B3セルは空白セル、B4セルは「あいうえお」という文字列です。
 C3,C4セルにおいては、REGEXREPLACE関数を用いてこれらのセル中の空文字を置き換えます。具体的には第2引数(置換対象文字列)として空文字("")を指定し、第3引数(置換先文字列)として「☆」を指定します。
 

f:id:accs2014:20190519152834p:plain:right:w500

 実行結果です。
 C3セルは「☆」となっています。
 C4セルは「☆あ☆い☆う☆え☆お☆」となっています。
 特に後者は予想しにくい結果で、これにより文字列中の各文字間に任意の文字列を挿むことができます。ただし先頭と末尾にも文字列が付加されますので、文字間に挿むだけにしたい場合はさらにMID関数等で処理する必要があります。この例の場合は「=MID(REGEXREPLACE(B4,"","☆"),2,2*LEN(B4)-1)」とすると出力は「あ☆い☆う☆え☆お」となります。

 ちなみに第2引数を「""」の代わりに「".??"」としたり、あるいは第2引数に何も記さななくても同じ結果になります。また、「"^"」とすれば文字列の先頭に、「"$"」とすれば文字列の末尾に文字列を加えることができますが、これらは普通に&でつないだ方が早いです。