エクセル計算式を丸暗記しても役に立たない
先日、
エクセルの勉強会に出席する機会がありました。
そこで、次のようなお題がでました。
「A1セルに入っている住所のデータから、
都道府県の部分を抜き出す計算式を書く」
非常に綺麗な回答がアダとなる
じつは、このお題。
最近出版された、
とある有名な本で、取り上げられている問題です。
その本の中では、
下記の計算式が紹介されています。
当然、
勉強会の出席者の中でも、
この本を読んだことがある方がおり、
お題に対して、上記解答をされました。
もちろん、大正解です。
でも、私の感想としては、
「この解答だと応用が利かなさそうだな。大丈夫だろうか?」
というものでした。
もちろん、
計算式自体は、他の方法より簡単で、とても美しいのですが、
この「解答」そのものは、残念ながら、他に応用するのが難しいんです。
最初に思いつく方法は違ったはず
私の場合、
(たぶん、大部分の方がそうだと思うのですが)
上記の問題を出された時に、真っ先に思い浮かべる方法は、
上記の方法ではなく、
先頭から「都道府県のどれかの文字が出てくる部分」までを抜き出す
という方法です。
でも、
この処理を実現しようとすると、
計算式自体も複雑になりますし、
一カ所「トラップ」があって、
よく計算式を練らないと、うまく動かない可能性が高いのです。
そこで、冒頭の本の著者は、
そういう複雑さを避けて、
もっと簡単な方法がないか?と考えてたどりついたのが、
冒頭の計算式だった、というところなのではないか、
と思うのです。
あくまで、
このパターンの問題を解く方法としては、
「例外的なケース」なんです。
たまたま、
- 全ての都道府県が3文字か4文字で、
- 4文字になるのは「県」の場合のみ
- 都道府県が近い将来増減する可能性は、かなり低い
という「極めて例外的な」状況だったから、
さっきの計算式が、都道府県の部分を抽出するためには、
「非常に良い方法」だったわけです。
一般的に通用する方法ではありません。
ところが、
この方法が「例外的なケース」であることを
明確に書いていないため、
あの本を読んだ読者の多くは、
「○○県○○市・・・・
というデータから、○○県の部分を抜き出すのに使う計算式は、
=if(left(A1,4)="県",left(A1,4),left(A1,3)) 」
と単純にインプットされてしまいがちです。
似たような問題なのに、同じアプローチが通用しない!
さて、先ほどの勉強会に戻って。
時間を、少し先に進めます。
先ほどの勉強会では、
「都道府県」の問題の後に、
次のような問題が出ました。
「○○部○○課・・・」という会社の組織データから、
「○○部」の部分だけを抜き出すにはどうしたらいい?
先ほど、解答された方は、
案の定、
「=if(left(A1,4)="県",left(A1,4),left(A1,3))」
の一部を変えることで、どうにかならないだろうか?
という発想で、解答を考えていたようです。
でも、冷静に考えれば、
その路線で答えがでるはずがありません。
都道府県のときと違って、
「部署名」が何文字になるかがわからないからです。
こういう場合には、
先ほどの手法は、適さないわけです。
でも、
考え方が書かれていないので、
エクセルに慣れていない読者の方には、
そのあたりがわからないわけですね。
本そのものは、決して悪い本ではなく、
超おすすめ本の部類なんですが、
やはり、単に「丸暗記」をしただけではダメです。
きちんと「考え方」を身につけないといけません。