Excelの1セル内に大量の文字が記載されているけど、特定のものだけ抜き出したい
そんなときは、LEFT関数、MID関数、RIGHT関数、FIND関数を組み合わせれば対応できるよ!
大前提として、1セル内に1つの情報のみ記載してほしいところですが、
特定のデータ(給与台帳など)をエクセルで吐き出すと、
どうしても1セル内に複数の情報(管理番号、氏名、部署…)など
が記載されてしまうことってありますよね?
そこで今回は、実際に先週会社の後輩が困っていた、
1セル内の大量の文字から
特定の文字だけを抽出する方法について解説します!
抽出方法
まず実際に、どのようなエクセルであったかを共有します。
左上のB2セル内に大量の文字が記載されていたのです。
こんな時、部署を抜き出す場合を考えてみましょう
RIGHT関数
部署は、1セル内の右側にあったので右側を抜き出すことができればいいわけです
そんなときに使用するのがRIGHT関数です。
この関数は、セルの中から右側の何文字かを抽出する
ことのできる関数です。
関数としては以下のようになります。
これで、目的通り部署名を抽出することができました!
LEFT関数
次に、管理番号だけを抽出したいとします。
そんな時に使うのがLEFT関数です!
これは、先ほどのRIGHT関数とは逆で、左側の何文字のみ抽出することができる関数です。
今回管理番号は6桁なので、
管理番号:とあわせて
11桁抽出すればいいわけですよね!
そのため、関数としてはこうなります。
管理番号までついてきてますね…
今kない管理番号は不要なので、さきほどのRIGHT関数と組み合わせてみましょう!
右側の6文字のみ抽出すればいいわけですよね?
これで、目的通り管理番号のみを抽出することができました!
MID関数&FIND関数
最後に、氏名はどうすれば抜き出せるでしょうか?
真ん中に抜き出したいものがある場合、MID関数を使います。
MID関数とは、文字列の途中から指定した文字数を取り出せる関数です。
途中から抜き出すっていっても何番目かってバラバラじゃない?
その通りです!
全て同じ文字数で作成されている時を除いて、
例えば管理番号の長さが違うときは当然抜き出す位置が変わってきます
じゃあ、抜き出せないってこと?
一方で、そうとは限らず、
ある関数をさらに組み合わせることができれば、
抽出ができるようになります。
それが、FIND関数です!
FIND関数とは、指定された文字列を検索し、その文字列が最初に現れる位置を左端から数え、
その番号を返してくれるというものです。
実例で見てみましょう。
これは、B2の中から「氏名:」という文字を見つけて、
そこから8文字抽出してくださいという指示になります。
しかし、先ほどと同様に「氏名:」までくっついてきますね…
こんなときは、どうすればいいのでしたっけ?
そうです、RIGHT関数です!
こうすれば、目的通り氏名を抽出することができました。
応用編
一つだけ応用編を紹介しておきます
先ほどと同様に氏名の長さというのは人によってバラバラです。
そのため、一概に5と指定しても指名が3文字の人だと「:」まで拾ってしまうことになります。
こんなときどうすればいいのでしょうか?
それは、「:」以下を抜き出してくださいと指示できればいいわけですよね?
そんなときに組み合わせて使うのがLEN関数です。
LEN関数とは、文字列の長さを数える数字です。
実例を先にあげておくとこのように式を組みます
LEN(U2)ーFIND(”:”,U2)
これは、U2の文字列の長さ(8文字)から、
「:」が出てくるまでの文字列の長さ(3文字)
を引いてくださいという指示になります!
そのため、結果5文字が抽出されるという仕組みです。
エクセルではこのように、固定の文字列(5)ではなく、
特定の式(LEN(U2)ーFIND(”:”,U2))
にした方が使い勝手がいい時が多々あります!
少しづつ本ブログでも紹介していくので、
一緒に勉強していきましょう!!
作業目的〜DB化〜
さて、以上で抽出の仕方は終わりですが、
発展編としてそもそも後輩がなぜこのような作業をしていたか
という作業目的について最後に触れたいと思います。
それは、ずばり給与のDB化です!
どういうこと??
もともとの表をあらためて確認してみましょう
1人だけ抽出して作成しましたが、
これが在籍人数分下にずらーっと並んでいるわけです。
この状況で、社員全員の4月に支払った基本給額をぱっと把握することはできるでしょうか?
特に人数が多くなると、結構骨の折れる作業になると思います
そのため、以下のようにパッとわかるようにしたい。
それには、社員番号で検索をかけてSUMIFSで集計するといった
もう一つSTEPが必要になるわけです。
その前段階としてもともとのデータから社員番号を紐づけるために、
抽出をしたいというのが後輩の意図でした。
この辺りの、元データは全て必ず「データベース形式」でなければならない
というデータベースファーストの原則は、
『マンガ、たった1日で即戦力になるExcelの教科書』(吉田拳著、技術評論者 2024)
に記載がありますので、
Excelを普段使う方は、ぜひ参考にしてみてください!
いかがだったでしょうか?
今回は、
1.複数の文字が記載されている1セル内から特定の文字を抽出する方法
2.その作業目的(DBを作る)
について解説しました
みなさんの普段の作業効率化に役立ちますと幸いです!
わかりづらいところや、こういう場合どうすればいいのか?
などの疑問がありましたらぜひご連絡ください!
それでは、また!!