Excelの相談に乗っていると、次のようなシートに出会うことが、かなりあります。
「これは改善した方がいい」
とコンサルすると、
「毎日集計できてるからいいじゃない」
「なんで変えるの?」
「めんどくさい」
ここまでがテンプレートになってるのではないでしょうか。
そんな時に、できるだけこちらの意図を組んでもらえるような説明はどんなものか、考えてみたいと思います。
なぜいけないのか
はじめの方では、セル結合がいけないのです。
※セル結合自体がいけないのではなく、セル結合の使い方がいけないということは強く申しあげておきます。
A列の日付が結合されているところでは、3、5、9、11行にしか実データが入っておらず、並べ替えやフィルタがうまく動作しないですね。
データはすべての行に
いつ、何が、いくらで、何個、どうした
を記録してないとコンピュータは判断できません。
もっと言うと、コンピュータは1行ごとにしかデータを読まないのです。抜けは許されません。
同じようにI列J列も同じです。
これなら日付が変わるまで集計するという計算式にすればいいのにと思います。
=IF(A2="",I1+G2,G2)
また、CE、EF、IJ列も結合しています。
このまずいところは、Excelで顕著なのですが、Excelは、1セルのみ選択して並べ替えやフィルタ、ピボットテーブルの操作をする場合、空白の行、空白の列があるところまでを一覧表とします。
だから操作が簡単だし、1列だけを並べ替えるようなミスも防げます。
しかし、この場合は、本当に並べ替え、フィルタをしたいのは2行目を見出し行としたそれ以降となってほしいのですが、実際には1行目を見出しにしたすべてを一覧表範囲にしてしまします。
つまり、せっかくのミスを防ぐ簡単操作をできなくしているということです。
この表には2行目を見出しとした場合でも、問題があります。
2行目だけに注目すると、価格、数量、利益、余剰が2つずつあります。
ピボットテーブルで集計する場合、同じ項目名が存在しているのはまずいので、Excelが自動で番号を付けてくれます。しかしその番号も、オペレーションしている中でどの項目を表しているかわかりません。
データベース関数や、データタブの詳細から呼び出すフィルターオプション機能では完全に重複しているとちゃんとした結果が出ません。
では正しくする
ということで、この表は、次のような表になっていると良いでしょう。
ただ、これだと日の変わり目がわからないと言われるかもしれません。
そこはExcelの条件付き書式設定を使います。
A2からA13、I2からI13、J2からJ13を選択し、数式として以下のように$A3=$A2の条件を設定します。
ユーザー定義表示形式で「;;;」と設定すればそのセルの値は非表示になります。
うまくやれば罫線もできるような気がします。
全くデータになっていない記録
なんというか、それこそ計算して集計してるんだからいいんだろみたいな典型です。
もちろん、自動化されていませんし、集計もできないことはないのでしょうけど、ものすごく複雑で、後から他の人が見た時に分かるのかな、月次集計はどうすんだろ、みたいなツッコミどころはたくさんあります。
要は、大変でしょ、楽じゃないでしょ、ってことです。
まとめ
なんとなくみなさんが思っていて、周りに説明するときに説明しにくいな、理解してもらえないなということをまとめてみました。
速さが変わる、正確さが変わる、楽さが変わる。
このあたりが訴えどころですし、いろいろ機能を使えば簡単だよとか、そんな設定めんどうくせぇってことなら、そのくらいは作ってあげたりする必要はあるかもしれません。
でも、そこまでやっても先に進まない場合もあると思うので、そういう時は、現行のフォーマットに外部から操作する自分だけ楽になるような仕組みを作っちゃうというのも誰にも迷惑かける話ではないのでいいかもしれません。
効率化したくない人や楽になりたくない人はいないと思っているのですが、もしかしたらそんな人がいるのであれば、そういう人はその人の道を進んでもらって、自分自身はどんどん楽になっていきましょう。