いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)2文字おき(n文字おき)に文字を挿入する

 Googleスプレッドシートで、文字列に対し2文字おきに文字を挿む、言い換えれば2文字おきに文字で区切る方法についてです。
 n文字ごとに挿入することもできますし、2文字以上の文字列を挿入することもできます。

  • REGEXREPLACE関数を使って、文字列に2文字おき(n文字おき)に文字(文字列)を挿入できます。

手順

2文字おきに挿入する場合

f:id:accs2014:20200605025441p:plain:right:w650

 B3セルに7文字の文字列が入力されています。
 そこでD3セルに次のように入力します。

=REGEXREPLACE(B3,"(^.{2}|)(.{1,2})","$1☆$2")

 ちょっとややこしいですが先頭の2文字または文字間をグループ1($1)、それに続く2文字(足りなければ1文字)をグループ2($2)とし、$1と$2の間に区切り文字の「☆」を挿んでいます。

f:id:accs2014:20200605025444p:plain:right:w550

 結果はこうなります。

f:id:accs2014:20200605025448p:plain:right:w550

 式を下方にフィルコピーした結果です。
 いずれの場合も末尾に余分な文字が加わることはありません。もちろん2文字以上の文字列を挿入することもできます。

 ただし、(画像では確認できませんが)対象となる文字列が2文字以下の場合には先頭に文字が加えられてしまいますので、その点は注意してください(次の例でも同様)。

n文字おきに挿入する場合

f:id:accs2014:20200605025451p:plain:right:w550

 上記の例とほぼ同じで、式中の「2」をnに置き換えればn文字おきに挿入することができます。
 画像はn=3の例です。D3セルに次のように入力し、下方にフィルコピーしています。

=REGEXREPLACE(B3,"(^.{3}|)(.{1,3})","$1☆$2")