ExcelのワークシートをDOVパターンで構成する【方法とメリット】

みなさん,こんにちは。
シンノユウキ(shinno1993)です。

Excelは学生からビジネスパーソンまで幅広い層の方が使用しています。

Excelは表計算ソフトです。データを入力し,それを計算,グラフや表などを活用しわかりやすく表示できます。しかし,これらを効率的に行うのは意外と難しいもの。Excelの自由度の高さから,多くの方が悩まれる部分かもしれません。

そこで今回は,DOVパターンと呼ばれるExcelワークシートの構成方法について紹介します。DOVパターンを使用することで,Excelで効率的なワークシートを構成することができます。

スポンサーリンク

DOVパターンとは?

DOVパターンはExcelワークシートの構成方法の種類です。
下記3つの処理の頭文字をとっています:

  1. Data:入力
  2. Operation:演算
  3. View:表示

Excelでの処理をData・Operation・View の3つの役割に分割します。

ワークシート単位で分割されることが多いようです。下記のように,3つのシートに処理を分割します:

DOVパターンによるシート構成
  • Dataシート:データの入力だけを行います。
  • Operationシート:入力されたデータを,関数などを活用しながら演算・加工していきます。
  • Viewシート:データや演算された結果を人にわかりやすく表示していきます。

Webアプリケーションのフレームワークで多用される「MVC」と似た考え方かもしれません。

下記で,どのように処理を分割していくのか,解説していきます。

①Dataシート:入力

Dataシートではデータの入力だけを行います。

ここでのデータは生データを指します。外部ソースからインポートしたデータなどをこのシートに挿入します。手作業によるデータの登録・入力などもこのシートで行います。

具体的には以下のような感じです:

ダミーデータです

ポイント:データの入力だけ行う

ポイントは,データの入力だけ行うシートだということです。1行1データのテーブル形式で構成します。

関数での処理・マスタからの参照・セル結合は禁止です。こういった処理は,OperationシートやViewシートで行います。

このようにデータを持つことで,データ入力者が計算式を壊すこともなくなりますし,生データを使用した計算のやり直しも容易になります。

②Operationシート:演算・加工

Operationシートでは,関数などを活用しながらデータを演算・加工していきます。

下記のようなことはOperationシートで行います:

  • データの正規化・標準化
  • 関数やマクロ等を使用したデータクレンジング
  • 関数やマクロ等を使用したデータの集計

ポイント:生データをOperationシートにリンク(コピー)する

まずは扱いやすいように,生データが掲載されているDataシートのデータを,Operationシートにリンクすることをオススメします。リンク貼り付け等で参照すると良いでしょう。

データ数が多く,処理が重くなってしまう場合には値をコピーしても良いと思います。その場合,データを更新する度にコピーが必要になりますので,簡易化するためにコピー処理をマクロ化しておくと便利だと思います。

ポイント:関数やVBAを使用してわかりやすく

関数やVBAを使用した,データクレンジングの作業や集計などを行います。Excelの機能をフル活用していきます。

演算・加工の過程をわかりやすくしておくと,後々に便利です。数式を適度に分割する,計算のための列を使用するなどです。これにより,後々に演算・加工のプロセスを変更する場合でも,対応が容易になります。

③Viewシート:表示

Viewシートでは,データや演算された結果を人にわかりやすく表示していきます。

下記のようなことをViewシートで行います:

  • グラフでのデータ表示
  • 人が見やすいレイアウト構成(セル結合も可)

ポイント:人が見やすければ何でもOK!

Viewシートでは,人の見やすさだけを考慮します。

グラフでのデータ表示も積極的に行いましょう(わかりやすくなるのであれば)。

また通常は疎まれるセル結合も問題ありません。セル結合が疎まれるのは,データの利用可能性が下がることが理由です。Viewシートでは関係がないので,多用しても問題ありません。

まとめ

今回はExcelでDOVパターンを活用する方法を簡単に紹介してみました。

今回はシートを3つに分けて処理を行いましたが,必ずしもこのようにする必要はありません。

重要なのは,DOVパターンの3つの段階ごとに分けて考えるということです。上記の3つを全て同じ段階で処理しようとすると無理が出てきます。参考になればと思います。

タイトルとURLをコピーしました