全国の事務屋さんが一番使用しているであろう必須アイテム"Excel"。会社のExcelトークというのはホントにネタが尽きないです。そして一番多く聞かれる話は「Excelが重い!」というもの。中には何か操作するとフリーズしてしまうというかなり重症なファイルもよく見かけます。
けど、よくお話を聞いてみると「他のエクセルはまだましだけど、このファイルは動きがマジで遅い」とファイルによってばらつきがあることが多いです。
この場合原因はパソコンではなく「その重いエクセルファイルの作り方」に問題があります。
今まで見てきた激重、フリーズに繋がる原因を見ていきましょう。の第3回目。今回の事例はこちら。
外部リンクの嵐
ある入力用Excelに数値が入力されたら、他のExcelファイルにも同じ更新が必要。同じ入力内容なのに何個も開いて打って・・・てめんどくさいです。
他のファイルは入力用Excelの入力内容を参照をするように外部リンクにしてしまえば、入力用Excelファイルが更新されれば他のファイルも数字が変わってくれるので便利です。Microsoftさんは「別のブックのセル範囲への外部参照 (リンク) を作成する」という表現をしています。
しかし、個人的には別のファイルにリンクを張ることはおすすめしません。
別ファイルアクセスが負担になる
他のExcelファイルにあるデータを参照する仕組みは都度、他ファイルをバックグラウンドで開いてデータを都度見る作業が出てくるのでファイルアクセス分遅くなります。更に参照元のデータがファイルサーバー内にあったりすると、ネットワークの速度も影響してきます。
更に参照先のファイルも外部リンクがあれば数珠つなぎで参照していくのでどんどん遅くなります。
例えば、日報.xlsx(年間営業日分)の成果を月報にリンク、月報(12ヶ月分)の合計を月別推移表にリンク、とやるだけで200個以上の外部リンク網が出来上がります。
簡単にリンクが切れるし放置すると後々厄介
また、参照先のファイルが移動、名前の変更、削除されたり、更にはシートの名前が変更されただけでもリンクが切れてしまうことがあります。
ファイルを開くときにこのようなエラーが最初に出ることは無いでしょうか。
この場合、参照先とのリンク切れが起こった状態です。たった1セル切れただけでも表示されます。
しかしこのエラー、「続行」をクリックすればとりあえずは先に進めるので、結構放置されやすいエラーです。で、このエラーが放置され続けるとリンク先のファイルが何処に行ったか分からなくなったり、新たにリンクを張り直してリンク数が増殖したりします。
この手のファイル、人事異動などで担当者が変わった時がトリガーになりやすいです。おおよそこんな流れ。
実録!リンクが切れるまで
- 各担当者が入力しているファイルサーバーのExcelファイルに外部参照を張ってシートを作る
- 入力担当者が異動
- 新担当が引継いだフォルダを名前変更や旧担当が新部署のフォルダへファイルを引っ越し
(この時点でリンクが切れる) - 参照側のファイル管理者も異動
(この時点で参照側ファイルのメンテも怪しくなる) - 直し方が分からず新たにリンクを張ったり手入力したりする
(リンク切れが潜在化して重いファイルの出来上がり)
そうならない為にも、リンクが切れた時点でめんどくさくてもリンクを繋ぎ直す必要があります。上の画面で「リンクの編集」を選びます。
もし選択しそびれた場合は「データ」タブ→「リンクの編集」から編集できます。
とはいえ、上の例のように関係するファイルが一気に移動されたりすると、リンク切れの数もそれ相応に増えるので、バリバリ連携しちゃってるファイルでは うへぇ・・(一一")ってなります。
便利に使えるけど、使いすぎると劇薬になる。ステロイドのような効果ですね。用法用量に気を付けて使用すれば便利な機能ではあります。
大掛かりなリンクに発展するならデータベースの検討を!
この例のように1つの入力をいろんな帳票で使いたい!という用途はAccessをはじめデータベースソフトの方が断然優位です。数名でそのファイルを共有しているならなおさらです。
先程の日報から月別推移表の例で言うと、日報レベルの入力は「テーブル」に保存、月報や推移表は「クエリ」を使って集計する方法にすれば、毎月シートをコピーする必要もないので外部リンク数が増えることも無く、また、推移表以外にもデータの組み合わせで別の切り口のデータも取り出すことができます。
もし入力がExcelファイルでの運用が必須だとしても、そのExcelファイルをリンクテーブルにすればExcelファイルから都度参照する仕組みも作れます。
Accessは、というかデータベースは、複数テーブルから欲しい列だけを持ってきてくっ付けたり、大量のデータから指定した条件で取り出す作業が得意なコです。
もしその重いExcelが月次の重要な処理の核になっているなら、そこは会社として効率化にお金をかけてもいい部分だと思います。
Accessはデータベースの理屈を覚えるにもちょうどよい規模なので、自分のスキルアップと社内処理の効率化の一挙両得を狙ってみるのはいかがでしょう?