第一正規形というデータベース分野の呼び名を知っているかどうかはともかく、エクセルをデータベース的に使う真骨頂はvlookupだと思います。
個人的には、これを使える人かどうかで初心者か脱初心者かの基準にしていたこともあります。データベース的な発想の基本ができていることが分かるからです。
エクセルをデータベースとして使うにはvlookup
データベース的なエクセルデータを用意
下記の記事で作成した仮の品名マスター、仮の売り上げデータを使ってみます。
品番で一意になっており、これがキーです。
「品名マスター」としてエクセルに貼り付けました。
「売り上げデータ」としてエクセルに貼り付けました。この売り上げデータのD1セルにvlookup関数を入れていきます。
vlookupでエクセルデータベースの検索と取得をする
「検索値」を選び、「↑」を押します。
B1セルを選択し「↓」を押します。これで検索値がセットできました。
下図のように検索値が入りました。以下、範囲、列番号、検索方法の欄を埋めていきます。
「範囲」の指定です。
「品名マスター」シートを選択し、BC列全体を選択します。
初めての人は「こんな風にシートを超えて指定できるのか!」と思うかもしれません。それを知ったら今度からはデータ群の特徴からシートを分ける発想ができますね。マスターデータを分ける感覚です。
A列~B列全体と指定したことで、今後データが追加されてもvlookupが正常に動きます。
もしA1セル~B20セルで選択していたら、21行目以降にデータが入るたび「範囲」指定を修正する必要が出てきます。修正漏れをしたら、そのデータは参照されません。
「範囲」で指定しているのは、こういうイメージでデータを読むという範囲です。
列番号はキーボードから2と入れます。2というのは「範囲」で指定したうちの2列目の2です。一列目がA列、2列目がB列。
指定した「範囲」から、こういうイメージで2列目のデータを取り出すわけです。
検索方法は「0」またはfalseと入力します。どちらでも同じです。
0またはfalseだと「完全一致」、1またはtrueだと「近似値一致」になります。正確には近似する最大値でヒットします。
例えば、ですが富士山の標高何メートルまで登ったかという数値に対して「5合目」「7合目」「頂上」などと表示させるような使い方ができますね。
マスターを読むなら完全一致で使うべきですが、参考までに今回のマスターを近似値一致で読んでみました。結果が変わってしまいます。
Vlookupを使って一日の売上金額を計算してみた例
vlookupを使って品名と金額をエクセルデータベースから取得した状態
=VLOOKUP(B2,品名マスター!A:B,2,FALSE)
=VLOOKUP(B2,品名マスター!A:C,3,FALSE)
売り上げを計算する
一日の売り上げを算出してみます。
=C2*E2
ちょっと出来上がりの形こそ違いますが、データベース用の言語SQLで加工をしたときと同じことが実現できています。詳しくは下記の関連記事を参照ください。
ただしvlookupで数千件くらいを扱うと、反応が非常に遅くなります。そのようなデータ件数を扱うようになった頃にはDBかVBAあたりの勉強時かもしれません。
値で検索をし、ヒットしたデータを取り出す。これはまさにデータベースです。
脱初心者 vlookupに使えるデータ=第一正規形
第一正規形という言葉を知っているかどうかは無関係に、この点を気を付けましょう、という注意点を総務省が挙げています。これを守れば、それはデータベースの世界で言う第一正規系です。
(※)総務省:統計表における機械判読可能なデータ作成に関する表記方法について
https://www.soumu.go.jp/main_content/000723626.pdf
コメント