帳票型のデータは、どこにでもある
以前の記事で、Excelのデータは「いつでもDBに移せる形」で持つべきだと書いた。1行1件で上から下に積んでいく、いわゆる縦持ちの形式。データベースに入る形で持っておけば、集計もVBAでの自動化もスムーズにできる。
この考え方自体は変わっていない。しかし現実の中小製造業を見ると、この形式でデータを持っている会社はほとんどない。
圧倒的に多いのは、帳票型のデータ。月別にシートが分かれている実績表、日付ごとの日報シート、案件別のブック。横軸に日付や月が並び、縦軸に品目や工程が並ぶクロス集計のレイアウト。Excelが存在する限り、この形式はなくならないだろう。
帳票型が選ばれる理由
帳票型がこれほど広く使われているのには理由がある。
一覧性が高い。 月の実績を一枚のシートで見渡せる。どの品目がどの日に何個出たのかが、目で追える。縦持ちのデータベース形式だと、同じ情報を見るためにフィルタやピボットテーブルを使う必要がある。
そのまま印刷できる。 現場に紙で貼り出す文化がある製造業では、これは大きい。縦持ちのデータを印刷しても、そのままでは使い物にならない。
入力がしやすい。 今日の実績を今日のセルに入れるだけ。行を追加する必要もないし、日付を毎回入力する必要もない。
つまり帳票型は、人間が日常的にデータを入力し、確認し、共有するための形式としては合理的。以前の記事で否定したかったのはこの形式そのものではなく、これを「データの唯一の保管場所」にしてしまうことだった。
救えるかどうかの分かれ目は「行列の固定」
帳票型のデータが社内に何年分も蓄積されている。この現実に対して、自分の考えはこうなる。
行と列のレイアウトが固定されていれば、データは救える。
たとえば月次の生産実績表。毎月同じフォーマットで、A列が品目名、B列以降が日付ごとの数量。この形式が12ヶ月×数年分あったとしても、VBAやスクリプトで一括して縦持ちに変換できる。セルの位置が決まっているなら、プログラムは確実にデータを拾える。
レイアウトが固定されているなら、帳票型から縦持ちへの変換は技術的には難しくない。1シートから読み取るロジックを一度書けば、あとは全シートに同じ処理を回すだけになる。
一方、自由配置のシートは救えない。
セル結合が多用され、データの位置がシートごとに違い、余白や注釈が任意の場所に入っている。こうなるとプログラムで読み取る前提が成り立たない。人間が目で見れば情報はわかるが、機械的にデータを拾うことは不可能に近い。
この線引きは明確で、レイアウトが固定されているか、されていないか。これだけで、過去データが資産になるか、ただのアーカイブで終わるかが決まる。
今すぐやるべきことは一つ
過去のデータを今すぐ全部変換する必要はない。以前の記事でも書いたが、崩れたデータを遡って直す作業は現実的ではないことが多い。
しかし、これだけは今すぐやったほうがいい。
帳票型シートのレイアウトを固定する。
具体的には:
- 行と列の構造を統一する。 今月のシートと来月のシートで、列の並びや行の数が変わらないようにする
- セル結合を使わない。 結合セルはプログラムから見ると位置がずれる原因になる。見た目を揃えたいなら「選択範囲内で中央」を使う
- データ領域と見た目の装飾を分ける。 タイトルや罫線、色は好きにしていい。ただしデータが入るセルの位置は動かさない
- テンプレートから複製する。 新しいシートやブックを作るとき、毎回ゼロから作らず、テンプレートをコピーする
帳票型をやめる必要はない。帳票型のまま、レイアウトだけ揃える。これだけで、将来データを吸い出したくなったときの難易度が劇的に下がる。
変換は後からでいい
レイアウトが固定された帳票型データがあれば、必要になったタイミングで縦持ちに変換できる。
たとえば「過去2年分の生産実績を製品別に集計したい」となったとき、24枚の月次シートから品目と数量をVBAで読み取って、1行1件のデータシートに出力する。レイアウトが固定されていれば、この変換処理は数十行のコードで書ける。
全部を一度に変換する必要もない。使うデータだけ、使うタイミングで変換すればいい。レイアウトさえ揃っていれば、「いつでも変換できる」という状態を維持できる。これは以前の記事で書いた「いつでもDBに移せる形で持つ」のもう一つの形と言える。理想的な縦持ちではないが、変換可能な状態を保っているという点で、データの再利用性は確保されている。
自由配置のデータにも手段はゼロではない
レイアウトが崩れたデータは救えないと書いたが、最近はAIによるOCR・データ抽出の精度が上がっている。ExcelやPDFの帳票をAIに読ませて、テーブル形式に変換するといった手段は選択肢として存在する。
ただし、VBAで固定レイアウトを読み取る方法と比べると、確実性が違う。VBAはセルの位置を指定して読むだけだから、100回やれば100回同じ結果が返る。AIによる抽出は精度が高くなってきているとはいえ、読み取りミスや解釈の揺れが起きる可能性がある。件数が多いほど、目視での確認コストが積み上がる。
「どうしても過去データを救いたいが、レイアウトが揃っていない」という場面では検討する価値はある。しかし、これから作るデータのレイアウトを揃えるほうが、はるかに確実でコストも低い。AIは最後の手段であって、最初の戦略にはならない。
帳票型を否定しない、自由配置を否定する
帳票型のExcelは、現場の運用としては合理的な選択肢。そのまま使い続けて構わない。
問題は帳票型かどうかではなく、データの位置が決まっているかどうか。行列が固定されていれば、いつでもプログラムでデータを拾える。自由配置になっていると、そのデータは人間が目で見ることしかできない。
今すぐデータの持ち方を変える必要はない。ただ、レイアウトだけは揃えておく。帳票型のシートをテンプレートから複製するだけでいい。この小さな習慣が、将来データを活用したくなったときに、選択肢を残してくれる。
このシリーズの他の記事: