見出し画像

【DCCR】1-1-3シート構造を定型化することで、実装スピードを上げられる

Excelを操作する際に、スピーディに行える作業とそうでない作業があると思います。スピーディに行える業務の大半は、普段行っている定型の作業であることが多いです。一方、少しでも定型から外れてくると急に作業スピードが落ちてくることでしょう。

その理由はExcel上での作業を一般化できていないからです。さらに言うと、シート構造が定まらないためにどのようにデータを加工するかも作業ごとに検討をしているのです。

より効率よくExcel作業を行うには、シート構造を定型化する必要があります。そして計算過程に沿ってシートを分けることでシート間の関係を定型化することができます。シート構造が定型化されると、Excel内で取り扱うデータが違ったとしても実装パターンを一般化することができます。その結果、普段と違う作業を行う場合でも実装スピードを速くすることができます。

次のようなケースで、あなたはどのようなシート構造を作るでしょうか。
『学生の情報』の他に成績関連情報として『科目別の授業中の学習態度』、『科目別の小テストの点数』、『科目別の期末テストの点数』のデータが与えられており、分析のためにそれぞれを結合しようとしています。析対象は科学の授業で、抽出対象はA~DクラスとE,G,Kクラスの学生を対象とします。
ここで、まず学生以外の成績関連情報を科学で絞り込んだデータを作り、学生のIDでVLOOKUP()等で結合し、最終的にフィルター機能で抽出対象クラスを手動変更することを考えたのではないでしょうか。

では次に分析対象が各成績関連情報を社会科と英語の平均値として、抽出対象に『数学の期末テストが50点以上の学生』という条件が加わった場合はどうでしょうか。再度成績関連情報を作り直し、学生情報に結合し、抽出し直すということを考えている場合はExcelをもっと有効活用できます。

ベストプラクティスは計算過程に沿ってシートを分けることです。まず各データをシートに分けてExcelに持たせることから始めましょう。その際にデータをあらかじめ加工する必要はありません。
次にシートを分けて、各情報の計算を行います。今回は各成績関連情報を絞り込む必要があるため、3シート新たに作成しFILTER()で抽出した状態を作ります。また、学生の情報も別シートを作りFILTER()で抽出しておきます。最後にシートを1つ作り、あらかじめ抽出しておいた学生情報をINDIRECT()で呼び出してVLOOK()等で各成績関連情報を結合して完成です。

こうすることで、抽出条件が変わろうが各シートでの作業は大きく変わらないため、計算を行うシート内での関数の条件を見直せばよいだけとなります。
もちろん『分析対象が各成績関連情報を社会科と英語の平均値』になるように、計算の方向性が大きく変わった場合でも、同じ計算シート内でSUMIFS()で集計を行えばすぐに対応可能です。この際にで同じデータ構造を保ちつつ行えば、データ結合については特に変更する必要すらありません。

このようにシート構造を計算過程によって分けるというルールを設けることで、シートの構造が定型化できるということを実感していただけたのではないでしょうか。
そしてシート構造を定型化することにより、実装がシンプルになるだけでなく、条件変更に強くスピーディに実装できるようになります。

この記事が気に入ったらサポートをしてみませんか?