080 1449 1565
infoshin@shin-mic.com

Archive: 2021年9月29日

有明山
キクイモの花
論理力

EXCELの便利機能フラッシュフィルと関数

エクセルを業務等で使用している人だと、下の図のように、氏名を姓と名に分けなければいけないなんて場面に出くわしたことがある人は、けっこう、多いのではないだろうか。下の図のように人数が10人程度であれば、直接入力していっても問題はないけれど、これが数百人とかになれば、直接入力するのは、かなりしんどくなってくる。

エクセル氏名

このような場合、最近のエクセルは大したもので、フラッシュフィルなどという、超便利な機能が搭載されている。

下の図のように、姓のところを二人ほど直接入力して、図だとB4セルをアクティブにし、メニューのデータにあるフラッシュフィルというボタンを押すだけで、一瞬で、以下の姓の部分だけを取り出してくれる。名も上二つを直接入力し、その下のC4セルをアクティブにして、フラッシュフィルというボタンを押すだけだ。

フラッシュフィル

フラッシュフィルを使えば、こんなふうに簡単に氏名を姓と名に分けることができるわけだけど、フラッシュフィルはもちろん万能ではない。上の図の例では姓と名の間にスペースが入るという規則性があるから、フラッシュフィルが使えるが、もしスペースが無ければ、まともに機能しない。例えば「長野県松本市清水1丁目11-18」というような住所から都道府県と市区町村、それ以下の住所に分割しなければならないケースなどでは、それぞれの間にスペースが無いからフラッシュフィルはうまく機能してくれない。このような場合は、どうしてもエクセルの関数を使って処理をするしかなくなってくる。

そこで、姓と名に分ける作業をフラッシュフィルを使わずに関数を使って分ける事を考えてみる。

エクセルの関数処理1

上の図のB2セルには図のように

=LEFT(A2,FIND(“ ”,A2)-1)

という関数が入っている。関数の意味は氏名が入力されているA2セルのスペースまでの文字数から、スペース分の1を引いた数だけ左から文字を取り出せと言う意味だ。

次に名の部分を見てみよう。

エクセル関数処理

C2セルには上図のように

=RIGHT(A2,(LEN(A2)-LEN(B2)-1))

という関数が入っている。関数の意味は氏名が入っているA2セルの文字数からB2セルの文字数を引き、そこからさらにスペース分の1を引いた数だけ右から文字を取り出せという意味だ。

どうだろうか?

エクセルに慣れていない人ならば、便利機能のフラッシュフィルに比べたら、恐ろしく、ややこしく感じたのではないだろうか。
もちろん、今回の例のような場合であれば、関数など使わずにフラッシュフィルを使用すればいい。その方がおそらく処理も早いだろうし、簡単だから、それで、なんの問題もない。

でも、住所から都道府県や市区町村を抜く場合は関数を使って処理するしかないだろう。

エクセルを普段使わない人からすると「関数」という単語だけで拒絶反応を起こす人もいるかもしれない。でも、エクセルの関数の書き方は難しいものではないし、もっと言えば関数なんか覚えなくても、その時々で検索すれば用は足りる。

関数を使って姓を取り出す場面では、姓と名の間にスペースが有ることに注目し、左からスペースまでの文字数を数えられれば、そこからスペース分の1を引いた数だけ左から取り出すというロジックを考えられる事が大切な点だ。このロジックが組めれば、後は、スペースまでの文字数を取得するための関数や、左から指定した数だけ文字数を取り出す関数を検索して探せばいいだけだ。

もちろん、普段、業務でエクセルを使う人なら、よく使う関数は覚えていた方が効率がいいから、その必要性は出てくるだろう。

しかし、SHIN MICの勉強会でエクセルを扱う場合は、エクセルそのものの使い方よりも、自分でロジックを考える論理的な思考を何よりも重要視している。その上で、そのロジックをエクセルの関数でどう実現するのかを考えてもらう事を大切にしている。

論理力を鍛えたい方には、SHIN MICのエクセル勉強会はおすすめかもしれない。