【Excel】関数の合わせワザで、文字列を自在に加工する

f:id:zakki_blog:20200118042025p:plain

Excelに入力された、郵便番号や電話番号、社員コード・・・、今からこれを一つ一つ手作業で加工するの!?というシーンに遭遇したことはありますか?

 

今回は、なるべく一括処理をしたいあなたに向けて、よく使用する文字列加工系の関数とその合わせワザをご紹介していきたいと思います。全てを覚える必要はないですが、頭の片隅に置いておくと、いざという時に役立つかもしれません。

 

 

 

① 右あるいは左から○文字分を抽出したい

 

「右あるいは左から○文字分を抽出して、それ以外を消したい」という時に使える関数が、「RIGHT関数」「LEFT関数」です。

 

=RIGHT(元の文字列が入ったセル,右から残したい文字数)

=LEFT(元の文字列が入ったセル,左から残したい文字数)

 

※あまり使用シーンが思い浮かびませんが、「参照するセル」の部分には、直接、文字列を入力することも可能です。

 

たとえば「12345」という文字列が「セルA1」にあったとしましょう。

 

この時「=RIGHT(A1,2)」とすれば「右から2文字以外を削除しなさい」ということを意味し、「45」が返ってくることとなります。

 

同様に「=LEFT(A1,2)」とすれば「12」と返ってきます。

 

たとえば、電話番号の頭2桁のみを抽出したい時や、下4桁を抽出したい時に活用する事ができます。

 

② 文字数をカウントしたい

 

文字数をカウントして表示させる際には「LEN関数」を使用します。

 

=LEN(カウントしたい文字列のあるセル)

 

たとえば「12345」という文字列が「セルA1」にある場合、「=LEN(A1)」とすれば、その文字数である「5」が返ってきます。

 

理論上、5桁である社員番号が、本当に5桁であるかどうかを確認する時などに活用することができます。

 

③ 頭または後ろから○文字を消したい

 

さらに①と②を組み合わせることによって「頭から○文字を消したい」あるいは「後ろから○文字を消したい」 という操作も可能となります。

 

=RIGHT(元の文字列が入ったセル,LEN(元の文字列が入ったセル)-頭から消したい文字数)

 

=LEFT(元の文字列が入ったセル,LEN(元の文字列が入ったセル)-後ろから消したい文字数)

 

たとえば「12345」という文字列が「セルA1」にあり、頭から2文字を削除したい場合は「=RIGHT(A1,LEN(A1)-2)」とすることで「345」を返すことができます。

 

反対に、後ろから2字を削除したい場合は「=LEFT(A1,LEN(A1)-2)」とすることで「123」と返すことができます。

 

ここで、これまでご紹介した関数を使用して、下記の問題を考えてみましょう。

 

電話番号「123-4567-8910」が「セルA1」にあるとしましょう。頭3桁、真ん中4桁、後ろ4桁に分割したい時は、どうすればよいでしょうか 。

 

まず、頭3桁、後ろ4桁を抽出するには、シンプルに「RIGHT関数」と「LEFT関数」を使用すればよいことは、すぐにひらめくと思います。

 

ただ、真ん中4桁に関しては、少し頭をひねる必要があります。感覚では「真ん中4桁を取り出す関数はないかな?」と思ってしまいがちですが「真ん中4桁を抽出する」=「前から4文字分を消した後に、前から4文字を抽出する」などの工夫が必要となります。

 

規則性をもって文字列を削除したい時は、「RIGHT関数」「LEFT関数」「LEN関数」を駆使すれば可能なことを覚えておくとよいでしょう。

 

④ ある文字を別の文字に書き換えたい

 

特定の文字列の置き換えには「SUBSTITUTE関数」を使用します。

 

=SUBSTITUTE(元の文字列が入ったセル,置き換え前の文字列,置き換え後の文字列)

 

たとえば「12345」という文字列が「セルA1」にある場合、「=SUBSTITUTE(A1,"3","あ")」とすれば、全ての「3」を「あ」に置き換えてくれるので、「12あ45」と返ってきます。

 

⑤ 特定の文字が何個あるかカウントしたい

 

②の文字数をカウントする関数(LEN関数)と、④の特定の文字を置換する関数(SUBSTITUTE関数)を組み合わせることで、特定の文字が何個あるかをカウントすることができます。

 

=LEN(元の文字列が入ったセル)-LEN(SUBSTITUTE(元の文字列が入ったセル,カウントしたい文字列,""))

 

上記の数式では「全体の文字数から、カウントしたい文字を取り除いた時の文字数を引き算して、カウントしたい文字が何個だったかを計算する」ということをしています。

 

おわりに

 

いかがでしたでしょうか。

 

もし、Excelを使った業務で「えっ・・・、これ手作業でやるの?」と思ったら、一度、関数でなんとかならないか考えてみてくださいね。