【効率化の基盤となること】データベースファーストの原則
はじめに
世の中ではExcelの使い方、時短術などに関する情報が、書籍や講座、ブログ記事など様々なメディアで数多く発信されています。
しかしながら、それらで紹介されている手法をちゃんと活かせる形式でデータが整理されていないと、あまり活用することができません。
せっかく学んだことをしっかり活かすために必要な考え方こそ、データベースファーストの原則です。
すごい改善の吉田拳氏が提唱し、様々な発信者の方がすでにこの原則については周知されていらっしゃいますので、これまでExcelについて熱心に勉強されてきた読者様にとっては、よくご存知の内容かもしれません。
そしてこれは、総務省によって非常にわかりやすい資料が作成されて公開されておりますので、ぜひ一度公文書にも目を通してみてください。
当ブログで紹介するほぼ全てのExcelの時短術においても重要な内容となりますので、偶然にもこの記事で初めて目にしたという読者様のために、この記事でがんばって説明させていただきます。
データベースファーストの原則とは
データベースファーストの原則とは、簡潔にいうと、Excelのシートをデータベースとして扱うために守るべきルールのことです。次に挙げる3点がそのルールです。
セル結合の禁止
1セルに1データ
1列1データ型
もっと細かく細分化してご説明されている執筆者様もいらっしゃいますが、基本的にはこの3つに集約されます。
細分化して具体的に「どんなことをしたらいけないということなのか」ということも含めて、それぞれ解説していきたいと思いますが、その前にデータベースとは何かということをを明確に理解していただいと思います。
データベースとは
データベースとは、蓄積や検索、並べ替え(ソート)が容易にできるように整理された情報のことです。そして、様々なDB(データベース)の形式が存在する中で、Excelのシートをデータベースとして扱う場合は、RDB(リレーショナルデータベース)という形式のDBにします。関係データベースとも呼びます。
これは、次のような「行(Row)」と「列(Column)」で構成された「表(Table)」の形式で整理された情報のことを指します。
1行に1件のデータがあり、これを「レコード(Record)」と呼びます。1行=1レコードです。
蓄積していくことが容易なことはもちろんのこと、人口700万人以上の都府県のみを抽出する、それが何件あるかカウントする、人口が多い順に並べ替え(ソート)をおこなうといったことも可能です。
こういった機能は、データの量が多くなればなるほど重要になっていきます。この例のようなデータ量であれば、人口700万人以上の自治体を見つけることは容易ですが、47都道府県全てのデータが入っているテーブルからそれらを正しく目視によって見つけ出すことは大変な作業になるでしょう。ましてや、レコードの数が数千、数万とあるテーブルでは不可能です。
本題に戻します。繰り返しになりますが、データベースファーストの原則とは、Excelのシートをデータベースとして扱うために守るべきルールのことです。つまり、Excelのシートにリレーショナルデータベースの形をとらせ、抽出やソートを容易にできるようにするためには、次のルールを守る必要があるということです。
「1. セル結合の禁止」について
Excelの「セルの結合」機能は、使用してはいけません。
理由は、RDBの便利な機能である、並べ替える、抽出してカウントするといったことができなくなるからです。Excelのシートはデフォルトの状態で、行と列によって構成されたRDBの体を成していますから、それを改変してはいけないのです。
「2. 1セルに1データ」について
セルに入るデータは、1つでなくてはいけません。例えば、「担当者名」という列があるテーブルがあるとしましょう。そのフィールドに、「吉田、山川」のように複数のデータが入っている例、職場でよく見かけませんか?残念ながら私は頻繁に目にします。(笑)
機械判読の際には「山川」と「吉田、山川」は別の値として扱われますから、Excelに備わっている様々な機能を活用することができなくなってしまいますので、避けるべきです。
「3. 1列1データ型」について
ある特定の列に入っている全てのデータのデータ型は同じでなくてはいません。
まず「データ型」とは何かについてですが、Excelのセルに入っているあらゆるデータの種類を表す「属性」のことです。主に次のようなデータ型が存在し、Excelのセルに入力するデータや、関数によって返される値は必ずいずれかに当てはまります。
数値
文字列
日時
真偽値
「1列1データ型」の原則とはすなわち、特定の列に「文字列」と「数値」が混ざっていたりしないようにするというルールです。これも守られていないと、正しく抽出やソートができなくなります。
普通、例えば「契約日」というタイトルがついた列には「日時」の値しか入りませんから、自然と守られているルールにも思えます。しかし、意図せずデータ型が変わってしまう落とし穴がたくさんあるのです。次に挙げるような場合です。
①数値に単位をつけてしまっている
数値として人数を入力するべきところに「300万人」などと単位をつけて入力することによって、Excelには数値ではなく文字列として認識されてしまうのです。
②スペースや改行等で体裁を整えてしまっている
これも弊社で非常に多いことで残念なのですが、スペースを入れてインデントをつけようとしたり、セル内改行によって複数の値を入れたりすると、すべて文字列として認識されます。「5」は数値で「 5」は文字列になりますし、別の値ですし、「2022/4/1」は日時で「2022(改行)4/1」は文字列です。
こういったことは避けなくてはいけません。
以上が、データベースファーストの原則を守ったExcelの使い方ということになります。
どうやって遵守していく?
「見た目」の整え方に注意 Excelは「〇〇ソフトウェア」である
データベースファーストの原則を破ってしまう多くの原因は、実は見た目や体裁を整えようとする過程で発生しています。
同じ値を持つセルを結合して表示することによって、分類をわかりやすくしようとしていたり、スペースを入れてインデントをつけて分類の大小を視覚的に表そうとしたりするのが、その最たる例です。
日本はまだまだ紙で仕事を進めている国のひとつですので、Excelのシートをそのまま印刷して紙で情報を共有する機会が多いことが影響していると考えています。
しかし、Excelは「表計算ソフトウェア」なのです。Wordや一太郎とは違って、数値データの集計・分析に特化したソフトウェアなのです。表計算ソフトとしての本来の実力を引き出すことができれば、仕事の効率化において無限の可能性を秘めています。印刷用の資料とするために体裁を整えることで能力を制限してしまっては、非常にもったいないのです。それを避けるためにわかりやすい軸となるのが、「データベースファーストの原則」であります。
できる範囲で遵守していこう
ここまでデータベースファーストの原則の重要性について力説してきましたが、読者様には、できる範囲で遵守していただくことが重要だと考えています。
例えば、「セルの結合」は回避することはできても、どうしても何らかの都合により「担当者」の列には「吉田、山川」というように複数のデータを入れることを避けられないということはあるでしょう。それが先述のように、「どうしても印刷して上司に報告する際にはこの方が都合がいいから」というような理由や、「社内のシステム上どうしてもむり」というような理由に拠ることもあるでしょう。もちろん全てのルールを遵守することがベストですが、そういう場合は、自分の中で各ルールに優先順位をつけて部分的にでも守っていくことがベターです。実際筆者も、「セル結合の禁止」は厳守していますが、「1セル1データ」の原則は場合によっては妥協しています。
非効率な環境の中で、全部でなくても少しでも改善できる部分はないかという意識でデータベースファーストの原則や、当該原則を基盤として当ブログで紹介するExcel及びExcelVBAによる業務効率化の手法を、取り入れていってくだされば幸いです。
参考記事、書籍
この記事が気に入ったらサポートをしてみませんか?