「excel 一文字ずつばらしてセルに入力する MID SEQUENCE」
といった検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。
最近のExcelでのみ使えるSEQUENCE関数とMID関数を使って、何らかの文字列を1文字ずつに分解するには、どのような計算式にすればいいのかを探していた方による検索です。
SEQUENCE関数・MID関数にLEN関数も組み合わせて、セルに入力されている文字列を1文字ずつバラバラにする様子を動画にしました。 → YouTube「1文字ずつ分解をSEQUENCE関数で」
※SEQUENCE関数を使えないバージョンのExcelでは、この操作はできません。
SEQUENCE関数を使った1文字ずつ分解する数式
動画でご紹介しているとおり、以下のような数式を入力するだけで、セルに入力されているデータを1文字ずつに分解できます。
※A1セルに入力されているデータをB1セルから右に1文字ずつ分解する例
B1セルに
=MID(A1, SEQUENCE(1, LEN(A1)), 1)
と入力する
SEQUENCE関数を使わずに同様の処理を行う場合、「=MID($A$1, COLUMN()-1, 1)」といった式にして、右方向にオートフィルする必要がありましたが、SEQUENCE関数を使えばオートフィルは不要です。
また数式を入力する際に、元データの入力されているA1を絶対参照にする必要もありません。
MID(A1, SEQUENCE(1, LEN(A1)), 1)の意味
「=MID(A1, SEQUENCE(1, LEN(A1)), 1)」の意味を確認しておきましょう。
「=MID($A$1, COLUMN()-1, 1)」を理解できていれば、確認しなければならないのはMID関数の第2引数「SEQUENCE(1, LEN(A1))」の部分です。
SEQUENCE(1, LEN(A1))の意味
A1セルに文字列が入力されているときに、B1セルに最近のExcelでのみ使える、スピルする関数の一つSEQUENCEを使って、
=SEQUENCE(1, LEN(A1))
と入力すると、B1セルから右方向に、1・2・3…のようにA1セルのデータに応じて連続した整数が出力されます。
LEN関数は、引数に指定された文字列の長さを返します。例えば、
「東京都新宿区」が指定されれば「6」
「東京都」が指定されれば「3」
が戻り値です。
A1セルに「東京都新宿区」が入力されているときに
=SEQUENCE(1, LEN(A1))
は、
=SEQUENCE(1, 6)
と同じ意味になり、1・2・3・4・5・6が横方向にスピルします。
MID(A1, SEQUENCE(1, LEN(A1)), 1)の意味
この「SEQUENCE(1, LEN(A1))」がMID関数の第2引数に指定されているということは、B1セルには
=MID(A1, 1, 1)
と入力されているのと同じになりA1セルの1文字目のみが出力されます。
C1セルには
=MID(A1, 2, 1)
と入力されているのと同じになりA1セルの2文字目のみが出力されます。
最終更新日時:2020-11-20 06:30
- Newer:Word.RangeとWord.Selectionのメソッド比較一覧
- Older:Pythonで九九の表を作る
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » 1文字ずつ分解をSEQUENCE関数で