EXCEL HACKSが教えてくれたこと

Excelとは

Excelは多くの業種に於いてビジネスを変革する基板となり、
世界中で意思決定のサポートをしている超強力な表計算ソフトです。

ちなみに、ExcelはMS社製ということもありWindowsのイメージが強いですが、初代ExcelMac用のソフトでした。

今回の参考資料

Excel Hacks 第2版― プロが教える究極のテクニック140選

Excel Hacks 第2版― プロが教える究極のテクニック140選

VBAとか言う前にやっぱりExcel

少しExcelが出来るとマクロとかに興味が出てくるものですが、
私は、Excel自体の機能についての理解をもっと深めることをおすすめしたいです。

というのも、Excel自体が超強力なソフトだからです。


それでは、そのExcelを最大限に利用する方法や、考え方などをまとめていきたいと思います。

表を作る前に

ある情報をまとめて表にしておきたいと思った際の注意点
  • 長期的な視点に立つ
  • データや数式の追加を常に念頭におく
    • 追加や変更は極めて頻繁に発生するのはご承知のとおりです
表とは
  • 表というのはユーザが正しい情報を得るためのものである
  • 情報をその場限りで見栄え良く表示出来ればいいというものではない
これらを踏まえた上で
  • 表の作成時間の8割を設計に割き、残りの2割を設計を元に具象化する作業にあてる
  • この方法は、短期的には非効率だが、長期的では十分にペイする非効率である


これ似た考え方がプログラマの世界にもあります。

スキルのレベルにかかわらず、プログラマーは全時間のおよそ10〜20%をコードを書くのにあてており、
たいていのプログラマーは完成品ができるまで一日あたりおよそ10〜12行のコードを書いています。
優秀なプログラマーは残りの90%のうち大部分を、考えること・調べること・最高の設計を見つけるための検証作業に費やします。

参照:Loading...


そう、知識労働に於いて体を動かすことよりも頭を動かすほうがはるかに重要なのです。

表のデータ配置

実は、Excelにはデータの配置にルールが存在します。
このルールを守らないと一部の機能が正しく動作しません。

表構成における悪い例
  • 必要以上に多くのブックにデータを分散させる
  • 必要以上に多くのワークシートにデータを分散させる
  • 必要以上に多くの表にデータを分散させる
  • 表の行列に空行を挿入する
  • 上や左のセルと同じ値のセルを空白のままにしておく


これらの基本的なルールを守らないとピポットテーブルなどの強力な機能の利用が制限される可能性があります。
特に、はじめの3点に関しては、「関連するデータは1つの連続した表の中に収める」ということで対応できますし、
これを怠ることで、Excelの機能が制限されるばかりでなくデータ不整合が起きて業務に致命的なダメージを与えるかも知れません。

ルール
  • 表の1行目にはそれぞれの列に対応する見出しを記述
  • 見出しのすぐ下からデータを配置する
  • それぞれの列の中で同じデータが繰り返されていても空欄を利用して繰り返しを表現しない
  • 可能なかぎりデータは並び替えておく


データの並び替えに関しては、検索や参照といった機能を利用するときに、
並び替えられていないデータでは、処理ができないことや、時間が大幅にかかってしまうということがあるからです。

また、これらを見てみるとExcelで列数<行数となる理由が分かってくると思います。

表内の書式

書式設定はトラブルの元

書籍設定を使って表を読みやすくし、理解しやすくすることは大切です。
ただ、この書式設定を使用することで処理の効率が落ちてしまっては意味がありません。
書式設定に時間を費やせば費やすほど効率性は低下してしまいます。
しかも、書式設定をすればするほどファイルサイズが増大し、挙動が重くなったりします。

セルの結合は問題の元

セルを結合する意味ってなんでしょうか?
一度考えてみてください。
これが、見た目を保つためであるのであれば、即刻利用をやめたほうがいいと思います。
※見出しは別です。
というのも、表のデータを処理する際にセルが結合していることで様々な困難に直面るからです。

でも、どのようにして見た目を保てばよいのでしょうか?

[書式(O)]→[セル(E)...]
[セルの書式設定]ダイアログボックスの[配置]タブ
[横位置]のリストから[選択範囲内で中央]を指定する

このような方法があるので、こちらに移行してみてください。
(Excel2003)

表内の数式

効率の悪い参照

A1〜H1000までのセル範囲からなる表があり、VLOOKUP関数等の検索関数を使用する場合に、
参照範囲をA1:H65536などに指定していませんか?またはA:H
(65536行はExcel2003の最大行数)

もちろん、表のレコード数(行数)が増加することは想定されます。
しかし、あまりにも効率が悪く、多用すると挙動が極めて遅くなることが想定されます。


では、どのようにすれば良いのでしょうか?
可変長の名前付きセル範囲を利用すればいいと思います。
新しいデータが追加される度に参照先のセル範囲を変更する必要がなくなり、また、効率的に参照が行われるので、便利です。

表計算ソフトの肝は計算

今まで挙げてきた問題などにより、挙動が遅くなったりしたときにすぐにやりがちなのが、手動計算への切り替えです。
しかし、この対処方法は極めて危険です。
なぜなら、Excelは表計算ソフトだからです。


手動計算指定をしていると知っているユーザは毎度F9を押せば、なんとかなるでしょう。
しかし、自動計算されると思っているユーザがその表に表示されている数字を正の数字と考えて対応してしまうと致命的なミスに繋がります。


このことを頭に入れて賢くExcelを使っていきましょう!
引き続き書いていきたいと思います。


最後までお読み頂きありがとうございました。