読者です 読者をやめる 読者になる 読者になる

述而不作 いにしえの未来

占い師の見てきた世の中を語ります

小人閑居してExcelを学ぶ(段階的なExcel廃止を希望する文章)

掲題した文章の元ネタは「小人閑居して不善を為す」(器の小さな人間を暇にさせておくと碌なことをしない)という訓戒なのですが、本人に自覚がないまま、仕事を効率化させようとしてビジネスの現場でExcelに凝りだしていっそう忙しくなっているという話を書きます。

 

脱Excelする理由 | Life Crack

 

上のブログ主の文章にはおおむね賛成で、現在のところ「脱Excel」の旗を振っている企業のひとつがデータベースエンジンの老舗Oracleですが、確かにRDBMSで構築すべきシステムを、できの悪いExcelでやって満足されていては商売にならないから当然のことでしょう。

 

まず、このブログでは触れられていない「惨禍」をいくつか補記してみます。

 

1 VLOOKUP関数でデータベースモドキを構築している

 

Excelはデータベース的な振る舞いをすることもできますし、ODBCなどで実際のデータベースに接続して、フロントエンドとして使うこともできます。むしろそうするべきです。

 

VLOOKUP関数は、あるキーを元にして他の表にある値を取ってくる関数で、記法が簡単なのでよく使われますが、たとえば社員番号と社会保険番号のそれぞれの表から値を取ってきて、その表のひとつが同じファイルではなく、他のExcelファイルであるという場合、迂闊にファイルやシートを移動したり更新したりすると大惨事になります。

 

しかも、参照先も読み書き制限がかかっていないので、まるごとザクッとデータを置き換えると、#N/A(参照用キーにヒットしない)エラーが出ます。そのエラーについて問題がないのか、危険なのかも作成者以外のユーザーには分からないという大変危険な作業です。

 

2 VBAの参照先がネットワーク的に到達できない場所に存在する

 

VBA(マクロの実態)はかなり仕様の怪しい言語で、宣言していない変数を突然使っても処理してくれるのは、実は有難迷惑ではないかと思います。

 

また、マクロの参照先が、D:¥Users¥username¥Desktop にあって、それを別の人の環境に置いて作業をすると、そのマクロを実行するために置かれているボタンコントロールが押せないという悲鳴があちこちで聞こえます。

 

3 無意味な列結合を多用して「レコード」としての扱いができない

 

1行目の大見出し、2行目の中見出し、3行目の小見出しがあって、レコード操作に必要な見出しは3行目だけであるという場合、ソートやフィルター操作がうまくいかないことがあって、なんのことはない、そのシートを別のシートにコピーしてから冒頭の2行を削除して集計処理を進めることがよくあります。

 

また、列方向についても、無意味に結合がされていれば、レコード操作ができません。

 

こうした惨禍を防ぐためには「基幹システムからダウンロードしたCSVファイルは簡易なデータベースの一種である」ことを周知して、正規化の考え方やunique keyの重要性を懇々と説く必要があるのですが、「よくわからんからExcelのあの機能で処理してしまえ」となります。

 

-------

 

Excelは設計もデザインもデータベース操作も分業されていませんから、全部一人の担当者が行うこととなり、ここで膨大なムダが生まれます。

 

日本の労働基準法制度化では、超過勤務に割増賃金が支給されますから、家に帰ってもすることもない一方で、副業は禁止されているとなったら「もっとも効率の良い副業は残業だ」という邪心が社会通念にまでなってしまい、あまつさえMOSの有資格者がその面倒事の旗振りをしているのはやはり相当困った事態だろうと思います。

 

そうしたわけで、決してOracleの提灯持ちをするわけではないのですが、私の正直な気持ちとしては、ある集計作業を実施するにあたっては「データベース担当者」「レイアウト担当者」「解析担当者」を分業し(兼業は構いません)、なるべく物事を単純化する方向で考えるべきであるといえます。

 

www.atmarkit.co.jp

 

↑ なにも女子でなくて良いんですよww 男女で知恵を出し合いましょう。