biboma»技術習得

Registered 2022.03.13

目次

Excelピボットテーブルの概要

Excelでデータ解析するとき、数式や関数を記述しなくても簡単行う方法があります。

それが「ピボットテーブル」です。

月毎や年ごとの売り上げを集計をしたい、支店ごとや担当者別に集計したいときなど、集計したいものはいろいろありますが、ピボットテーブルを知らないと数式で頑張るしかありません。

ピボットテーブルを使えば手順に従いターゲットを選択していくだけで、集計表が出来上がります。実に簡単です。

ピボットテーブルのイメージ

しかし、このピボットテーブルには重大な弱点があります。

ピボットテーブルデータは自動更新しない

Excelのオプションで「ブックの計算を自動計算」にしておくと、数式や関数を入力したセルは自動的に計算されます。

数式で参照している数値を書き換え、Enterを押して値を確定した直後に演算が走り自動的に計算行われ結果が表示されるので、大変便利です。

ちなみに、Excelインストール直後はこの設定が有効になっているので、意識する人は少ないかもしれません。

しかし、ピボットテーブルはそれがありません。

ピボットテーブルを作成後に元データを修正しても適応されません。古いままです。ではどうすればいいのか。

「ファイルを開いたときに自動更新する」設定もありますが、ファイル編集時は自動更新できません。

というわけで、「ピボットテーブルの更新」ボタンを押してください。

更新ボタンを押せば参照元のデータを再読み込みして、ピボットテーブル内の集計を更新してくれます。

ピボットテーブルの何が問題なのか

ピボットテーブルは元表からデータをコピーし集計しているため、参照元を変更しても数式のように自動更新しません。

参照元の値を変更したら必ず「更新ボタン」を押さなければならない。

これってピボットテーブルを使う人以外、知らなかったりするので問題発生の要因とも言えます。

ピボットテーブル使用で実際にあった話

とある部署のAさんは「俺はやればできる」と豪語しており、実際にここぞというときはその能力を如何なく発揮し会社に貢献します。しかしながら、通常は抜けが多い問題児。そのため「部署内でできる人認定されている」Bさんをサポート役に配置していました。

で、このBさん。仕事はできる人なのですが、他人の知識不足を想定したデータ作成をしませんし、操作説明シートを作るような気遣いもありません。

「社員ならこの程度の知識があって当然」と言い放ち、うっかりなAさんとはあまり相性が良くないです。

ある業務でこの二人を含め複数人が携わり、それぞれ集計やグラフ作成、報告書作成などを行っていました。

で、業務の中盤あたりで問題発覚。

Aさんの使っていたデータが、Cさんと異なっているのです。

理由はご想像のとおり。

Cさんは数式のみの演算を行い、Aさんはピボットテーブルを更新せずに使っていました。この件が発覚した段階で全データの再計算が行われ、このチームがしばらく残業続きになったのは言うまでもありません。

ピボットテーブルの使用禁止令

このようなトラブルは何度か見たことはありますが、序盤の打ち合わせなどにより作業のやり方を決めてしまうため、業務の中盤で発覚するのは珍しいです。

Aさんが俺様過ぎてBさんと仲が悪かったことも、要因になっていたようです。

この珍事の後、ピボットテーブルの使用禁止令が会社内に発令されました。

ピボットテーブルを使いたい派の策略

当然ながら迷惑をこうむった人も多かったのですが、「ピボットテーブルなんて知らないし使わない」という人が役職付に多かったため、しばらくは禁止状態が続きました。

しかしながら、作業効率を考えると解禁してほしいのは事実。

そこで上司と相談し、次年度の社内講習会でピボットテーブルの説明を追加し、便利な機能と注意点をまとめて説明したことで使用が解禁されました。

ただし、「シートが連動している場合のルール」や「うっかり更新ミスを防ぐ手段は必ず用いる」などいくつかの規程を設け、遵守することが条件です。

親切な人はピボットテーブルとVBAをセット、さらに説明も添付して運用

私の所属部署では「できない人がいることが前提」で仕事をしていました。

なぜなら、出来ない人のサポート(IT介護)を当たり前のようにしていたからです。

そのため最低限の措置として、ピボットテーブル使用時は必ずVBAで自動更新させ、さらに画面内に「データ再読み込みボタン」を置く。同一Excelファイル内に「手順書シート」も添付することにしていました。

Excelピボットテーブルで設定したいVBA

ピボットテーブルの更新指示はVBA1行です。

'ピボットテーブルの更新
Worksheets("テスト").PivotTables("ピボットテーブル1").PivotCache.Refresh

ピボットテーブルの更新時にソートの制御もできるので非常に便利です。

尚、更新ついでにフィルターの再設定を行うときは、以下の順でVBA設定をします。

'1.ピボットテーブルのフィルターを解除
Worksheets("テスト").PivotTables("ピボットテーブル1").ClearAllFilters

'2.フィルターの再設定
'ここにVBAでフィルターの記述をします

'3.データ更新
Worksheets("テスト").PivotTables("ピボットテーブル1").PivotCache.Refresh

運用していてわかったことは、手順書を見る人なんてそうそういません。

最初からできない人、説明書は読まない人に使わせることを考慮し、操作部分と見る部分は明確に分け、操作部分に必要なものを置き、必要な時にエラーメッセージをポップアップし、できるだけ自動処理にする設計が必要ですね。

また、確認の習慣がない人は、取り扱い説明や手順書が無いと「だってー、使い方の説明がないからわからなかったよ」と言って責任転嫁するので、アリバイに簡易説明でも良いので操作説明を置くことをお勧めします。

トップへ