2024年1月24日【ID:0】
【Excel】区切られた文字列から文字を抽出
以下のような表が用意されています。
A列に「-」で区切られた文字列が入力されており、B列にA列の文字列の中の特定の文字列を抽出した結果を表示させていきます。
※2行目は抽出例になります。
では、2行目と同じように3行目以降に関しても、A列の文字列の中の3番目の文字列を抽出していきたいと思います。
抽出する方法には、「フラッシュフィルという機能を使用する方法」や「関数を使用する方法」などがあります。
まずは、フラッシュフィルという機能を使用して抽出する方法から解説していきます。
・フラッシュフィルを使用して抽出する方法
フラッシュフィルという機能は、1つの抽出例を元に推測して他の値に関しても抽出する機能になります。
そのため、1件の抽出パターンを入力し、その後にフラッシュフィルという機能を実行するだけで、以下のように抽出することができます。
フラッシュフィルの機能は、[データ]タブの中の[フラッシュフィル]で実行することができます。
他にも、Ctrlキーを押しながらEを押すことでも実行することができます。
フラッシュフィルの機能の欠点は、元データが変更されたとしても、抽出された値が更新されないというところです。
そのため、常に抽出された値を更新したい場合は、次の「関数を使用して抽出する方法」を活用されるのが良いかと思います。
・関数を使用して抽出する方法
続いて、関数を使用して抽出する方法について解説していきます。
今回使用する関数は、TEXTSPLIT関数とINDEX関数になります。
TEXTSPLIT関数は、現時点(2024年1月)では、Microsoft365のユーザーでないと使用することができません。
それぞれの関数の使い方を確認します。
※今回使用する範囲での解説になります。
=TEXTSPLIT(テキスト, 区切り文字)
// テキストを指定した区切り文字で分割して複数の値を返す
=TEXTSPLIT(A3,"-")
=INDEX(配列, 番号)
// 配列から指定した番号番目にある値を返す
=INDEX(A2:C2,3)
これらの関数を以下のように組み合わせることで、指定した位置の文字列を抽出することができます。
=INDEX(TEXTSPLIT(A3,"-"),3)
他のセルに関しては、この数式をコピーするだけで抽出することができます。
こちらは、数式により文字列が抽出されているため、フラッシュフィルとは異なり、元データの変更にも対応しています。