Excelはグラフ作成や分析、Accessはデータ管理で使い分けるという考え方

Microsoft Officeの「Access」というと多くの人はどういったイメージを持たれるでしょうか。このAccessというのはExcelに比べればあまり使われてはいないようなので、イメージがわかないかもしくは「Excelの拡張版」みたいなイメージを持たれている人が多いのではないでしょうか。

 

自分がまさにそんな感じでして、AccessやAccessを勉強してきたとはいっても実際の業務ではまだまともに使った経験はありません。「Excelに比べれば多くのデータを管理できる」ということはわかってきたので、「じゃあそれ以外の機能でもExcel以上の機能が使えるのではないか」と考えていたのですがどうやらそうでもないようです。

 

今回はExcelの得意分野、Accessの得意分野からこの2つのOfficesoftについて気づいたことをまとめていってみます。

Excelの得意分野、Accessの得意分野という考え方が生まれたきっかけ

「Excelの得意分野、Accessの得意分野」という考え方が自分の中で生まれたのは、以下の過去記事の試験で利用した『ExcelVBAでAccessを操作するツボとコツがゼッタイにわかる本』がきっかけでした。

本書には次のように書かれた部分があります。

P.12

Excelはシンプルでわかりやすく、普及率が高いので使い慣れているユーザーが多くいます。また、多彩なグラフや充実した関数、および、ピボットテーブルやピボットグラフに代表される強力な分析機能も備えています(画面1)。

 

一方、Accessは複雑で大量なデータの管理、データの複雑な抽出や更新ができます(画面2)。これらはいずれもExcelの不得意なことです。また、フォームや帳票はExcelに比べて容易に作成できます。

 

このように特長や得意なことはExcelとAccessで異なります。

この部分を読んだ時は「なるほど」と思いました。というのもExcelとAccessに対して「長所と短所がある」という視点で見たことがなかったからです。

 

冒頭部分でも書きましたが、それまで自分はAccessというのはExcelの拡張版みたいなイメージがありました。処理できるデータ量はもちろん、それ以外の機能でもExcelと同等かもっとすごいことができるのだろうといった感じです。

 

そうではなく、Excelには多彩なグラフや豊富な関数、ピボットテーブル・ピボットグラフによる分析機能、Accessには複雑なデータの管理や抽出、更新ができるという長所がそれぞれあるということですね。

 

本書ではさらに次のように書かれています。

P.13

しかし、Accessは使い慣れていない人が多いので、業務の効率低下やミスが懸念されます。そもそも普及率が低く、パソコンにインストールされていない人が多いでしょう。また、Accessはグラフや分析はあまり得意ではありません。

 

そこで登場する解決策が、ExcelでAccessを操作することです。

ある1つの業務を行う際、データの管理や抽出はAccessで行い、そのデータをExcelに取り込んでグラフ化や分析など活用するのです。ExcelとAccessを適材適所で使い分け、かつ、使い慣れたExcelでAccessを操作することで、より最適なかたちで業務を行えるようになるでしょう。

「ExcelとAccessを適材適所で使い分ける」と良いということですね。なるほど、今までこういった発想はなかったので勉強になります。

 

言われてみれば確かにそうだなと思う部分が多々あります。今回の件でExcelとAccessの得意分野とか苦手分野といった言葉が出てきましたが、簡単に確認していってみたいと思います。

Excelの得意分野と苦手分野

『ExcelVBAでAccessを操作するツボとコツがゼッタイにわかる本』でExcelの得意分野は「多彩なグラフや充実した関数、および、ピボットテーブルやピボットグラフに代表される強力な分析機能」といった形で書かれています。

 

言われてみるとそうだなと思います。ピボットテーブルとかピボットグラフを作成する時に、いくつかの項目を「フィルター」や「凡例」「軸(項目)」「値」にドラッグ&ドロップすることによって、自動で求めている表やグラフを簡単に作成することができます。

 

こういったGUIという形で柔軟に操作できるのはExcelの強みでしょう。自分が確認した範囲ではAccess2013でこのような機能は見当たりません。

 

Accessにもピボットテーブルを作成できる機能がバージョン2007まではあったらしいのですが、2010で廃止されてしまったようです。

 

似たような機能として「クロス集計クエリ」というのもあるのですが、自分が見た範囲ではExcelのピボットテーブルがGUIで操作できるのに対して、クロス集計クエリは「CUI」で操作するイメージになります。

 

操作性という点ではやはりこの部分はExcelが使いやすいと言えると思います。Microsoftも「適材適所」という観点から、分析はExcelで行ってほしいという思いからAccessからピボットテーブルの機能を廃止したのではないでしょうか。

 

一方Excelの苦手分野は大量のデータ処理になります。これは結構多くの人が気づいているかもしれませんが、Excelって「ある程度の行数のデータ」を入れると「重く」なります。

 

これはシートに入力されているデータの種類や文字数、使っているパソコンのスペックによって差があるのでしょうが、自分の感覚ではExcelのシートに数十列で「1万行」ぐらいまでデータを入れるとかなり重くなると感じます。このデータ量までいくと画面がカクカクしてしまってなかなか操作が進みません。

 

一応形として、Excel2013の1つのシートに入力できる最大の列数は「16384」、最大行数は「1048576」という風にはなっていますが、この範囲のセル全てにデータを入力できるわけではありません。

 

以前Excelのシートにどこまでデータが入力できるか試してみようと、全てのセルに数値の「1」を入力しようとしたのですが、エラーメッセージが表示されてExcelが落ちてしまった経験があります。

 

ですからAccessと比較した場合、Excelにとって「大量のデータ処理」というのは苦手分野になるのでしょう。

Accessの得意分野と苦手分野

『ExcelVBAでAccessを操作するツボとコツがゼッタイにわかる本』でAccessの得意分野は「複雑で大量なデータの管理、データの複雑な抽出や更新ができます」とあります。また「フォームや帳票はExcelに比べて容易に作成できます」とも書かれています。

 

Excelに比べてAccessの得意分野は「大量のデータの管理」とあるのですが、いったいどれ程のデータを入力することができるのでしょうか。自分がインターネットで調べた範囲では、その上限として「2GB」という数値をよく目にしました。

 

「2GB」という文字を見て、自分の中では「?」という感じで、この状態だとExcelでいうところの「何行まで入れられるのか」はわかりません。そこで自分はAccessの1つのテーブルにどこまでデータが入力できるのか検証してみました。

 

データを入力する際の条件としては、フィールド数は10個(Excelの「列数」にあたる。10列という意味)。1つのレコード(Excelの「行」にあたる)の各セルには1桁から4桁までの数値を適当に入力して、それをどんどんコピペしていく形でレコードを増やしていきました。この動作環境は「Access2013」になります。

 

このコピペ作業の途中で気付いたことは、「一度に貼り付けることができるレコードの最大数は約65,000です」といったエラーメッセージが表示されたことです。そのため、この上限数からレコードを入力していくのに多少時間がかかりました。

 

自分の感覚としてはレコード数が「15万」を越えたぐらいから画面が少し重くなったかなと感じました。実際には「100万」レコードを超えるぐらいまでデータを入れてみましたが、ほとんど問題なく操作できました。

 

この時点でのAccessファイルの容量は「約100MB」を超えるぐらいでした。だいたい100万レコードで100MBということは、容量の上限が2GBであるということを考えると「1,500万から2,000万レコード」ぐらいまではデータが入れられるではないかと思いました。

 

実際の業務では様々なテーブルやクエリ、フォーム、レポート、モジュールが作られますし、使われるデータも数値だけではありません。また、1つで数百万から1千万のレコードになるようなテーブルが作られることも少ないと思います。

 

ですから現実的に使われるレコード数としては、数万から数十万になって、そのテーブルが複数作られるといった感じになるかと思います。

 

データの抽出や更新という視点では、Excelは基本的にはフィルターを利用した場合での項目選択や条件設定という風に、限られた選択肢の中から抽出するという感じです。

 

一方Accessは選択クエリはもちろん、更新クエリや削除クエリで指定の条件で抽出したレコードの特定部分を自動で更新したり、指定のレコードだけ削除できたりします。

 

また、パターンマッチングやSQLを駆使すれば、かなり細かい条件で目的のレコードを抽出することも可能です。特定の条件でグループ化したレコードで、指定のフィールドのレコード数や平均値、合計値をSQL集計関数で算出するといったこともできます。

 

他にも複数のテーブルの情報を様々な条件で結合させて、そこから目的のレコードを抽出するなど、抽出や更新という観点からもExcelと比較するとかなり自由度が高いと感じます。

 

こういったことを確認していくと、Accessというのは確かに「大量のデータ管理」に特化したソフトであると言えます。

 

一方苦手分野は、既に書きましたがExcelと比較した場合のグラフ作成や分析機能、図形描画機能になります。自分が調べた範囲では、グラフ作成機能もないことはないのですが、Excelに比べれば柔軟な操作は難しいです。

 

図形描画機能ではExcelであれば、矢印や円、四角といった様々な図形を豊富な機能で操作できますが、Accessになるとコマンドボタンを作成した時に色や形を変更するといった形で少し使えるくらいです。

 

Accessと比較した場合、業務フローとかマニュアルを作成するといった時はやはりExcelが必要になってくると思いました。

それぞれに適材適所があり、それらを理解した上で使うと良いということ

『ExcelVBAでAccessを操作するツボとコツがゼッタイにわかる本』という本の内容やExcel、Accessの機能からそれぞれに適材適所があることがわかりました。簡単にまとめると次のような形です。

  • データ管理・抽出はAccess
  • データ活用はExcel

 

AccessやExcelに対して今までこういった視点はなかったので「適材適所」という発想を持てると、自分ができる業務の幅が大きく広がると感じました。

 

もう少し付け加えると、ExcelやAccess、その他のMicrosoftのOfficesoftには「VBA」というプログラミング言語が搭載されています。

 

これも上手く活用することができると、さらに作業効率が上がったり、ミスも低減できて自分のできることがどんどん広がっていくんじゃないかと思いました

あわせて読みたい

こんな記事も読まれています

コメント