「プロ」のためのExcel哲学

業務でExcelを使う「プロ」が知るべきExcel哲学

まえがき(トップ記事固定)

どうすれば誰から見ても分かりやすく間違えにくいエクセル、言い換えると「美しいエクセル」を作れるようになるでしょうか。私自身、毎日16時間位エクセルを触っていた時期がありその経験から、美しいエクセルを作る上で重要なのはたくさんの関数を知っていることでも、効率的なショートカットを使いこなせることでもなく(もちろん、これはこれでとても重要です!)、設計思想を持つこととお作法を習得することの二つだと思っています。つまり細かい処理はいったん忘れスプレッドシート全体としてどのような考え方に基づいてデータを格納し、計算をし、結果を出力するかを事前に考えそれをエクセル上で表現するか、またその表現の際にどのような首尾一貫したルールすなわち「お作法」を用いるかが美しいエクセルを作成する上で最も重要であると考えています。

 

書店に行けばエクセルに関する様々な本が並んでいます。これらの本は関数を理解する上では確かに役立ちますが、美しいエクセルを作る上で本当に重要なこと、すなわちどのような設計思想に基づいて作成すれば良いかは残念ながら教えてくれません。個人的にはエクセルはマイクロソフトが生み出した最高傑作のソフトウェアの一つであると信じています。その機能性は勿論のこと、誰にでも取っ付きやすい直感的なインターフェースは素晴らしいと思います。しかし、その取っ付きやすさゆえにユーザーは特段エクセルを勉強することなく我流でその使い方を習得しているのが実態なのではないでしょうか。分からないことをイルカさんに聞いてみたりググったり本で調べたり、職場の先輩たちのエクセルを見よう見まねで改良したりしているうちに自然に使えるようになった、というのが大半だと思います。

 

私自身、外資コンサルティングファーム外資投資銀行を経て独立をしましたがどの職場においてもかなりの頻度でエクセルを使ってきました。コンサル時代は500メガバイト位のファイルサイズの売上データを分析していた時期もあったし、投資銀行ではあるガス会社の企業価値評価モデルを作ったこともあります。独立してからはある事業会社の経営企画のために多変量解析モデルを作成したこともあります。幸いなことに分析(そしてこれはエクセルスキルとほぼ同義)に関してはどの職場でも高い評価を得ることができ、「分析に関してはアイツに聞け」というポジションは確立できていたように思えます。ではいつからエクセルが得意になったのかと考えると、それは働き始めて2年目位の時にオンラインで受けた非常にマニアックな社内研修(海外オフィス主催であったため東京時間で金曜深夜というとても有難くない時間に開催)でとても美しいエクセルを見て、その美しさの裏には一貫して流れる設計思想とお作法が存在することを理解してからです。それ以来、エクセルを作る時は設計思想を意識するようになり、それからエクセルの上達速度(と分析に関する評価)が格段に上がりました。そしてその頃から少しずつ、エクセルとは「両想い」となりエクセルが何を考えているのか理解できるようになりました。

 

もちろん簡単なお小遣い帳を作る上では我流で問題ないと思います。しかし、この本の想定読者であるエクセルを業務で頻繁に使う「プロ」の場合、我流を貫き通すといろいろと問題が起きてしまいます。設計思想を持たずにエクセルを作るのは、設計図なしに建物を建てるようなものです。プライベートで簡易テントを張るのであれば設計図うんぬんといったゴタクを並べるよりはさっさと手を動かした方が効率的だし、きっと一緒にキャンプをしている友達や家族との関係も良くなるはずです。しかし簡易テントではなく、一戸建ての家やビルを建てる場合はやはり設計図がないと悲惨なことになります。また設計図には製図のルールがあるのと同様に、エクセルにおいても一貫したルールに従ってスプレッドシートを作成しないとあとで解読不能になってしまいます。

 

本書では事業会社の経営企画、コンサルティングファーム投資銀行、調査機関などで日々のエクセルを使う「プロ」の方々のために、美しいエクセルを作成するために必要な設計思想を中心に紹介しておきたいと思います。ただし設計思想といっても本書では極力抽象的な内容ではなく明日から実践できる具体的な内容を書くように心掛けました。また設計思想だけでなく、一部、テクニカルな話も紹介していますが、それらに関してもいわゆるエクセル本には載っていないようなマニアックだが極めて実用的なものを書くようにしています。この本を通じて少しでも読者の方のエクセルライフの向上に貢献できればと思っています。

 

エクセルの構成を意識する

エクセルは数字や図表から成り立っていますが概念的にはたった三種類に分類されます。

 

●インプット

●プロセス

●アウトプット

 

インプットに関してはさらに変数と定数の二種類に分けら、変数は基本的には前提と言い換えることもできます。例えばある企業の三年後の業績予想モデルを将来の市場規模と当社の市場シェア、利益率を用いて作成する場合の変数は市場成長率や市場シェア、将来の営業利益率といった数値であり、定数とは将来の業績を作成する上での元となる過去の財務情報や現在の市場規模などの「絶対に変わらない数字」となります。プロセスに分類される数字は「直接欲しい数字ではないが、それを算出するために必要な数字」であり言ってみれば中間生成物のような数字であり、上述の業績予想モデルであれば三年後の市場規模などになります。アウトプットはその名の通り「欲しい数字(および図表)」であり、全てのエクセルワークは究極的にはこの数字と図表を算出するためにあると言えます。先ほどの例では三年後の財務諸表がこれに該当します。なお、エクセル上の数字のインプット:プロセス:アウトプットの比率は(エクセルファイルによってもちろん異なりますが)感覚的には1:8:1程度になります。つまり圧倒的にプロセスの数字が多くなります。

 

エクセルを作成する上で自分が扱っている数字がこれらの三分類のいずれに該当するかを考えることでエクセルの構成が分かりやすくなるため、この分類を意識することは非常に重要です。(例外も多々ありますが)一般的にはそれぞれの種類の数字は一か所にまとまっていることが望ましく、また同一シート内であればインプット、プロセス、アウトプットの順で上から下に配置され、複数のシートであれば左から右の順でこれらが配置されるべきです。それによって計算の流れが直感的に把握することができ、逆に特にこれらの分類を意識せずに漫然とエクセルを作ると数字が分散してしまい非常に理解しにくく間違いやすいエクセルとなってしまいます。特にバグだしの際には数字が分類ごとにまとまっていないと非常に見にくくなってしまい間違いの原因となってしまいます。

 

「今扱っている数字はどれに分類されるのか」を常に意識することで綺麗な流れのエクセルができるはずです。

あなたの願いはエクセルが必ず叶えてくれる

美しいエクセルを流れるように作れる人物、すなわちエクセルマスターになるためには一度に上達しようとするのではなく日々の業務を通じて新しい関数や機能、手法を学び続ける姿勢が重要です。しかし漫然とエクセルを使っていてもなかなか新しいことを学べないのもまた事実です。新しいことを知るためには以下の二つの信念を持っておくことが重要だと考えています。

 

●20分以上の繰り返し作業の99%は関数・工夫で解決できる

●欲しいと思った関数や機能の大半は存在する

 

エクセルは細部にわたって作り込まれているとても洗練されたソフトウェアです。そのソフトウェアを持ってすればやりたいと思ったことの大半は関数や機能や工夫で実現することができます。もしも何か繰り返し作業が発生した場合やるべきことは作業に没頭することではなく、いったんキーボードから手を離し「この素晴らしいエクセルでは絶対にこの作業を無くすことができる」と念じることです。これを念じれば大抵の事は繰り返し作業はなくなるし、同様に欲しいと思った関数や機能も大半が見つかります。例えばエクセルには計算結果を出力するセルの値をある値にするために必要なインプットを逆算するゴールシーク機能があり、使用頻度はあまり高くはないですが知っているととても便利な機能です。以前の職場の上司でその機能を知らずにインプットの値をちょろちょろと変えてアウトプットの値が欲しい値に近づくように手作業でやっていた人がいます。とてもお世話になったし人柄も好きだった上司の悪口を書きたいわけではありませんが、これはとても時間の無駄です。「エクセルは素晴らしい、必ず欲しい機能が存在する」と信じていれば、グーグルの検索窓に「エクセル 逆算 機能 関数」くらいを入力すればすぐに見つかったはずです。

 

結局のところエクセルを上達するためには「エクセルは自分の願いを必ず解決してくれる」という信念と「うろ覚え力」こそが必要なのです。SUBTOTAL関数やピボットテーブル、ゴールシークの細かい引数の順序などは覚える必要はなく、使うたびにググれば済む話です。覚えておく必要があるのは

●そもそもどのような機能が存在するか

●その機能の検索ワードは何か

の二点だけです。

 

このようにして新しい使い方を覚えればやがてそれらの蓄積がエクセルマスターの血となり肉となるのです。

 

お作法を習得する

エクセルにはさまざまなルールすなわちお作法が存在し、「プロ」のユーザーであればそのお作法を知りそれに従ってエクセルを作る必要があります。お作法とはフォントやセルの色使いであったり、シート内の構造であったり、シートの並べ方であったりします。お作法に従ってエクセルを作ればバグ探しの時に非常に見つけやすくなるという利点があります。またお作法に従えばエクセルの構造が直感的に理解しやすくなり、また他人とエクセルを共有するときも相手にとってファイルを理解しやすくなります。つまりお作法に準拠していることは未来の自分や他人といったユーザーにフレンドリーなファイルあることを意味しています。細かいお作法は後述しますが、まずはそもそもエクセルにはお作法が存在するということを認識することがエクセルマスターになるための第一歩です。そしてこのお作法には二つの大きなルールから成り立っています。

ルール1:お作法に従ってエクセルを作る

ルール2:絶対にルール1を守る

ルールは守られてこそルールなのでありいかなる場合でもそれに従わなければなりません。少しでもルールが守られなくなると何かミスがあったときに全ての箇所でルールが守られていないことを疑ってバグ探しをしなければならず莫大な時間の浪費になってしまいます。そのため最初のうちはルールに従うのが億劫であっても意地でも貫き通す気概が必要です。

関数の中に0と1以外のハードナンバーは入力しない

最も基本的なお作法の一つに「関数の中に0と1以外のハードナンバーは入力しない」というものが上げられます。ハードナンバーとはつまり6とか9といった生の数字のことであり、これらが決して関数の中に入っていてはいけないのです。例えば1ドル95円の為替レートであり20ドルを円換算したい時は式の中に「=20*95」と入力してはならず、セルにそれぞれ別々に為替レート(95)とドル(20)を入力し、別のセルに為替レートとドルをそれぞれ参照する形の式(=E4*E5)で算出する必要があります(図001)。これはとても単純な例なので何だか当たり前のように思えるかもしれないですが、例えばVLOOKUP関数の場合はどうでしょうか。多くの人が

=VLOOKUP(A1, $F$1:$J$25, 3, FALSE)

といった具合に列数指定をハードナンバーで入力してしまっているのではないでしょうか。

 

図001

f:id:No6226:20130704000305j:plain

 

これはやってしまいがちですが、同時にとても危険な行為です。どれくらい危険なのかというと、以前に勤めていた投資銀行であればエクセルの関数の中にハードナンバーが見つかるとある役員クラスのエライおじさんに顔を真っ赤にして激怒されるくらい危険です。(そしてそれを繰り返すと査定が下がり最悪クビになるくらいリスキーな行為です。)もう少し一般的な書き方をすると関数中にハードナンバーを入力すると、関数の中にハードナンバーが入っていることが視覚的に分かりにくくなり、結果として関数に関連した箇所を変更した時にハードナンバーを変更することが忘れられてしまうリスクが非常に高いためです。

 

例えば先ほどの為替の場合、為替レートが1ドル95円から105円に変わったとき、20ドルの円換算値のセルで返す値を1900円から2100円に変えるために関数中の為替レートを95円を105円に変更する必要がありますが、このセルを選択していない限り一見するとセル中で為替レートを指定しているのが見えないため変更するのを忘れてしまいやすくなります。もう一つの例であるVLOOKUP関数の場合も、参照するテーブルに新たな列を追加したら必ず列数指定の値も列数を追加した分だけ増やす必要がありますが、関数中に列数指定の数字が入っていると忘れてしまいがちです。しかし、もしも列数のハードナンバーがセルの近くに配置されていれば視覚的に見えやすく、意識に引っかかりやすくなります。

 

なお、唯一の例外は0と1でこれはIF関数などの際に論理式に近い使い方をする場合です。この時は例外的にハードナンバーの使用が「許され」ますがそれ以外の数字は関数中に一切使用してはならないのです。