セル内から特定の文字列を抜き出すぞ!
今回は、セルの中に入力されている文字列の中から、特定の条件に従って文字列を抜き出す方法を紹介します!
店舗名と店舗ナンバーが一体化されてしまっているデータなどを整理する時に使えます!
例えばこんな感じのデータがあったとします。
それを、こんな感じに取り出したい時とかです。
店舗ナンバーなど余計な部分を省いて取り出したいときありますね(^^)
使用関数
色々方法はあると思いますが、今回は以下の関数を使って実現したいと思います!
FIND関数
指定した文字列(検索文字列)が、セル内の文字列のはじめから数えて何番目にあるかを返す関数です。
検索文字列 (必須) 検索したい文字列を指定
対象 (必須) 検索文字列を含む文字列を指定
開始位置 (省略可能) 検索を開始する位置を指定します。 対象の先頭文字から検索を開始するときは 1 を指定します。 ※省略した場合「1」
LEN関数
指定したセル内の文字列が何文字あるか返してくれる関数です。
文字列 (必須)文字数調べたい文字列を指定。※スペースは文字として数えられる。
MID関数
文字列に対して、指定した位置から指定した文字数の文字列を返してくれる関数
文字列 (必須) 取り出したい文字を含む文字列を指定
開始位置 (必須) 文字列から取り出す先頭文字の位置を数値で指定。 ※文字列の先頭文字の位置が 1
文字数 (必須) 取り出す文字数を指定
使い方
複数の関数を組み合わせて使う場合、やりたいことを一つずつ分解して考えると頭の中が整理出来ます。
大枠は、文字列を抜き出す作業なので、MID関数を使うことはなんとなく分かると思います。
でも、MID関数に必要な、抜き出す開始位置と抜き出す文字数が、ぱっと分かりません。
それでは、一つずつ分解して考えていきましょう!
まずは、今回の文字列をじっと眺めてください。
共通点が見つけられます。
そうですね、「-」の記号で必要な部分とそうでない部分が区切られていることが分かります。
店舗ナンバーのような記号と店名を「-」で繋いだ構造になっています。
この「-」記号を使って抜き出す開始位置、抜き出したい文字数を考えていきましょう。
1.先頭から「-」までの文字数を取得する
抜き出したい開始位置は、「-」の1個後ろですね、「-」までの文字数が分かれば取得出来ます。
取得するには、FIND関数が使えそうですね。
B2セルに次の数式を入力します。
= FIND( “-“, A2 )
「-」までの文字数を取得する数式ですね、B2セルでの結果は「5」になると思います。
2.「-」から抜き出すための文字数を取得する。
見た目は、○○店と3文字なので、「3」でいきたいところですが、○○店が3文字とは限りませんので辞めときましょう。ただ、この書き方だと〇〇店という形で終わっていることは確かそうですね。
FIND関数が後ろから数えれれば良いんですが、FINDは先頭からの文字数しか数えれないので、ここで一工夫です。
全体文字列数から「-」までの文字列数を引く
「-」までの文字数は、FINDで数えれるので、全体の文字数から引いてやれば、○○店が何文字か分かりそうですね(^^)
文字列全体の文字数を取得するにはLEN関数が使えます。
C2セルに次の数式を入力します。
= LEN( A2 )
文字列全体の文字数を取得する数式です。結果は「8」になりますね。
こいつから、「-」までの文字数を引いてやれば、店舗名の文字数が出せます。
引いただけです。結果は「3」です。
3.全体の文字列からMID関数で抜き出す
1と2で分かった、抜き出す開始位置と抜き出す文字数をMID関数に指定します。
次の数式をE3セルに入力します。
= MID( A2, B2+1, D2 )
開始位置が「B2+1」と「+1」となっているのは、B2は「-」までの文字数なので、店舗名の開始位置はその次からだからです。
これで目的のものが抜き出せましたね(^^)
もっとスマートに
これでも別に良いんですが、作業列が多すぎて「ダサい」ですね笑
ここまで作った数式を合体させて、一気に処理してしまいましょう!
F列に最終的な、数式を作ります。
先に答えを出してしまうと、次のようになります。
F2セルに入力します。
=MID( A2, FIND(“-“,A2)+1, LEN(A2)-FIND(“-“,A2) )
慣れないと、ギャーって感じですよね(^^)
分かりやすいように図にしてみます。
MID関数のそれぞれの引数を、他の関数で計算して設定しています。
数式を組み合わせて作るときには、このように大元から分けて考えると分かりやすいです(^^)
※長い数式を確認するときには、一部だけ実行するという技もあります。気になる方は次の記事をどうぞ!
それでは、F2セルの数式をF4セルまでコピーしましょう。
B列からE列は、いらないんで消します。
スマートになりましたね(^^)
まとめ
工夫して関数を組み合わせることで、色々なことが実現出来ます!EXCELで大事なのは、関数を知っていることではなく、関数を組み合わせて、自分のやりたいことを実現する工程を考えることです!
コメント