クエリって凄い

記事
ビジネス・マーケティング
ご覧いただきありがとうございます。
今回はクエリについて書いてみようと思います。

Accessには大きく分けて4つの機能があります。
大雑把にはこんな感じです。

①テーブル
テーブルはデータを蓄積する基本的な部分で見た目はExcelシートに似ています。

②クエリ
テーブルを基に集計や計算を実行します。クエリはテーブルを別な姿で表示しているだけなのでデータを持っている訳ではありません。クエリを削除してもデータは消えません。

③フォーム
テーブルやクエリを基にデータを入力(表示)するためのインターフェイスです。見やすく操作しやすいフォームを作成することでデータ処理がより効率的になります。

④レポート
テーブルやクエリを基に印刷するためのデザインです。見やすいデザインで印刷されたレポートはそのまま現場で使用できる資料になります。PDFファイルで出力したりラベル、伝票を作成するのも簡単です。

今回はデータベース処理の核心部分であるクエリについてご紹介してみましょう。

私は医療機関で事務系の仕事をしている関係で、医療事務用のPC(医事コンと呼ばれるシステム)を操作してデータ出力や集計をおこなっています。
特定の実績を抽出して件数を調べるような作業があるのですが、Excelで作業するには骨の折れる仕事なのです。
(医療関係のデータベース構築であれば、実務的なものができると自負していますのでやってみたい!と思われる方は是非ご連絡ください)

具体的なサンプルデータが無いので、今回はダミーデータでクエリの実例をご覧いただきたいと思います。

まずWebサイトでダミーデータをダウンロードしてきます。「ダミーデータ」で検索すれば何件かサイトが見つかると思います。
スクリーンショット 2024-05-19 141958.png

氏名、生年月日、性別、血液型の情報を持ったダミーデータを1万件用意します。その上で別にもう1万件作成します。

スクリーンショット 2024-05-19 151829.png

この2つのCSVファイルをAccessにインポートします。
Accessには外部データのインポート機能があるので、簡単に取り込むことができます。
スクリーンショット 2024-05-19 152147.png

尚、CSVファイルは文字化けすることがあるので一旦Excelファイルにしてからインポートすることをお勧めします。
ExcelとAccessは非常に相性が良いのでトラブルが起きにくいのです。
computer_monku.png

ここは結構つまづくところで、Excelでデータを綺麗にしておくとインポートが上手くいきます。


スクリーンショット 2024-05-19 152704.png

Excelシートはとても簡単にAccessのテーブルにすることができます。

2つのテーブルが取り込まれて10000件のレコードがあることがわかります。

スクリーンショット 2024-05-19 152928.png

今回は2つのリスト(それぞれ1万件)で生年月日が同じ人を抽出する処理をしてみたいと思います。

Excelの関数に自信のある方はExcelで実行してみてもらうと有難いのですが、どんな関数でどれくらい時間をかければ抽出できるでしょうか?
original.png


私もExcelにはかなり自信がありますが、関数だけで実行できる方法が思い浮かびません。
検索系の関数をいくつか組み合わせて何とかなるのでしょうか?
マクロを使って総当たりすれば出来そうですが、結果がでるまでに何分もかかりそうな気がしますね。

それではここでクエリを使う方法をご紹介しましょう。

メニューから「作成」→「クエリデザイン」を選択して2つのテーブルを表示します。

スクリーンショット 2024-05-19 153849.png

やり方はいくつかあるのですが、dummy1,dummy2のそれぞれの項目をダブルクリックすると下の枠に表示されるので全部の項目を配置します。

スクリーンショット 2024-05-19 154212.png
こんな感じになります。

今回は生年月日が同じ人を抽出したいので、それぞれの生年月日の部分をつなぎます。ドラッグ&ドロップの要領です。

スクリーンショット 2024-05-19 154409.png
2つのテーブルの生年月日の項目に関連性ができました。
この状態は「お互いのテーブルの生年月日が同じ」ということになります。

クエリを表示してみると…
スクリーンショット 2024-05-19 154702.png
同じ生年月日は4463件あることが分かりました。

生年月日が同じで性別が同じ人は…性別もつなぎます。
スクリーンショット 2024-05-19 154946.png
2167件でした。

しつこいですが、血液型も同じ人は…血液型もつなぎます。
スクリーンショット 2024-05-19 155114.png
685件でした。

このようにクエリを使うと膨大なデータから「一瞬」でデータを抽出することができます。今回は1万件のデータでしたが2~30万件であってもこの程度なら瞬時に取得できます。

何の意味もないような実験でしたが、クエリがとても簡単に利用できることは分かってもらえたのではないでしょうか?

形は違うのでピンとこないかもしれませんが、複数のExcelシートから重複したデータを抽出して別表を作成するような仕事は実際に多く存在しています。

重複だけでなく、どちらかに存在しないデータやもう少し複雑な情報を含む場合でもクエリなら簡単かつ瞬時に抽出できるのです。

作成したクエリを基にレポートを作成すると、必要な情報をすぐに確認することができます。

スクリーンショット 2024-05-19 160849.png
いかがでしたでしょうか?データベース処理の面白さが少しでも伝われば幸いです。

テーブルとテーブルを関連付けることで、複雑な情報も瞬時に処理できるのがデータベース処理です。

基本的な部分が理解できればExcelよりも簡単に処理できることが分かりますね。
ちょっとしたデータベースを作ってみたいなと思われたら、是非ご連絡ください。
いきなり大きなシステムを考えるのではなく、まずは毎日Excelで処理している定型作業を置き換えるくらいの規模が最適です。












サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す