「exccel 文字列を2文字ずつ分割」
「excel セル内の文字 2文字ずつ 分割」
「Excel関数 文字列を2文字ずつ区切る」
といった検索で時折アクセスがあります。
何らかの文字列を1文字ずつに分解する方法に関して、MID関数の中でSEQUENCE関数等を使う方法と、MID関数とCOLUMN関数を使ってオートフィルする方法をご紹介しています。
「exccel 文字列を2文字ずつ分割」
「excel セル内の文字 2文字ずつ 分割」
「Excel関数 文字列を2文字ずつ区切る」
と検索なさった方は、これの2文字版を調べていらしたのでしょう。
SEQUENCE関数を使って2文字ずつ分解する式
最近のExcelで使えるSEQUENCE関数を使うと、以下のような式で2文字ずつへの分解ができます。
※A1セルに入力されているデータを2文字ずつ分割してA2セルから右方向に出力する例
A2セルに
=MID(A1, SEQUENCE(1, ROUNDUP(LEN(A1)/2, 0), 1, 2), 2)
と入力する
A1セルに「あいうえお」と入力されているときに、「=MID(A1, SEQUENCE(1, ROUNDUP(LEN(A1)/2, 0), 1, 2), 2)」をA2セルに入力すると、
上図のように、「あい」「うえ」「お」と出力されます。
2文字ずつ分解する式の意味
2文字ずつ分解する式の意味を確認しておきましょう。
MID関数の確認
一番外側で使用しているMID関数は、何らかの文字列から指定した文字数の文字列を取得する関数です。
A1セルに「あいうえお」と入力されているときに
=MID(A1, 1, 2)
と入力すれば、下図のように1文字目から2文字「あい」を取得でき、
=MID(A1, 3, 2)
と入力すれば、下図のように3文字目から2文字「うえ」を取得でき、
=MID(A1, 5, 2)
と入力すれば、下図のように5文字目の「お」を取得できます。
SEQUENCE関数の意味
MID関数の第2引数が「1」「3」「5」となるように作った式が「SEQUENCE(1, ROUNDUP(LEN(A1)/2, 0), 1, 2)」です。この部分だけを、
=SEQUENCE(1, ROUNDUP(LEN(A1)/2, 0), 1, 2)
と入力してみると、下図のように「1」「3」「5」が出力されます。
2文字ずつに分解してキッチリ取得するために、SEQUENCE関数の第2引数を「ROUNDUP(LEN(A1)/2, 0)」と指定していますが、とにかく2文字ずつに分解できればイイのであれば、SEQUENCE関数の第2引数を「LEN(A1)」と指定してもいいでしょう。
=SEQUENCE(1, LEN(A1), 1, 2)
と入力した場合には、元の文字列が「あいうえお」の5文字ですから、下図のように「1」「3」「5」「7」「9」と出力されます。
「=MID(A1, SEQUENCE(1, LEN(A1), 1, 2), 2)」の場合
この「SEQUENCE(1, LEN(A1), 1, 2)」をMID関数の第2引数に指定して
=MID(A1, SEQUENCE(1, LEN(A1), 1, 2), 2)
と入力した場合は、下図のような結果となります。
最終更新日時:2022-09-05 17:27
- Newer:Word VBAでページの先頭にカーソルを移動する
- Older:変数にvbNewLineを入れて改行するには
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » 文字列を2文字ずつ分割するには-MID関数・SEQUENCE関数