いきなり答える備忘録

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

(Excel)文字列を2文字ずつ(n文字ずつ)分割する

 Excelで、文字列を2文字ずつ(n文字ずつ)区切って各セルに分割する方法についてです。

  • MID関数やSEQUENCE関数等の組み合わせにより、文字列を任意の文字数で区切って分割することができます。

手順

2文字ずつ分割する場合

f:id:accs2014:20200607142035p:plain:right:w600

 B3:B7に対象となる文字列が入力されています。
 まずはD3セルに次のように入力してみます。

=MID(B3,SEQUENCE(1,ROUNDUP(LEN(B3)/2,0),1,2),2)

 MID関数を使いB3セルの文字列から2文字を取り出しているのですが、第2引数(開始位置)にSEQUENCE関数を用いることで「1文字目からの2文字」「3文字目からの2文字」「5文字目からの2文字」を一度に取得しています。
 このSEQUENCE関数の部分は「SEQUENCE(1,LEN(B2),,2)」などの短い式にしても機能はしますが、結果的に余計な空白セルも多数返されてしまうためこのような式にして返されるセル数を最小限にしています。
 

f:id:accs2014:20200607142040p:plain:right:w600

 結果はこうなります。

f:id:accs2014:20200607142045p:plain:right:w600

 さらに式を下方にフィルコピーした様子です。

n文字ずつ分割する場合

f:id:accs2014:20200607142050p:plain:right:w600

 基本的に上記の例と同様ですが、式中にある3か所の「2」をnに改めればn文字ずつ分割できます。
 画像はn=3のときの結果です。
 D3セルの式は次のようになっています。

=MID(B3,SEQUENCE(1,ROUNDUP(LEN(B3)/3,0),1,3),3)