操作法
はじめに
エクセルの機能も最大限に生かしてください
『エクセルでデータベース』には、データベースの難しい理屈は分からなくてもエクセルをデータベースとして活用するために、厳選した実践的な機能が搭載されています。
ただし、エクセルをデータベース的に使用するにあたっては、エクセルの機能も最大限に生かしてください。
エクセル固有の機能のうち是非使いこなして頂きたい機能は、オートフィルタ、並べ替えの2つです。
特に、エクセルをデータベースとして利用するにあたっては、オートフィルタでデータの抽出をすることは必須となります。

データベースの一番基本的な知識―タイトル行とデータ行の区別
それではまず、データベースの一番基本的な知識を押さえておきましょう。
それは、エクセルをデータベースとして使用する場合、ワークシートの1行目はタイトル行にし、2行目以降はデータを入力するために使用しなければならないということです。
逆に言えば、エクセルをデータベースとして利用するには、原則としてタイトル行とデータ行以外は入力してはいけません。
例えば、ワークシートの1行目には「メールアドレス」「氏名」「住所」「電話番号」...などタイトル(データベース用語で言えばフィールド名。エクセルで言うところの列がフィールドに相当すると理解しておけば分かりやすいかもしれません。)を入力します。
なお、フィールド名は重複しないようにしましょう。
エクセル上では重複していても別に構わないのですが、データを他ソフト(アクセス(Access)など)に読み込ませる(エクスポート)ときに少々問題となります。
データベースではフィールド名の重複は許されていないからです。
そして、2行目以降には「****@yahoo.co.jp」「山田太郎」「東京都千代田区...」「03(***)****」といった具合にデータ行(データベース用語で言えばレコード。エクセルで言うところの行がレコードに相当すると理解しておけば分かりやすいかもしれません。)を入力していきます。
以上の規則さえ守って頂ければ、エクセルは立派なデータベース(正確にはデータを保存するためのテーブル)です。
あとはご自由にシートを設計して頂けます。
注意書き―データベースソフト『アクセス(Access)』との使い分けについて
ただし、エクセルは基本的には表計算ソフトであって、データベースソフトではありません。
一般向けの専用データベースソフトとしてはアクセスがあります。
たいていの場合は、エクセルでも事足りることが多いのですが、データの性格によってはやはりアクセスを使用した方がよい場合もあります。
そこで問題となるのが、データ管理するのに、エクセルを用いるべきか、アクセスを用いるべきかの基準なのですが、一般的な基準としては「データ項目相互に一対多の関係がある場合には、アクセスを使うべき」と言うことができます(この場合でもエクセルを使用することは不可能ではありません)。
詳細については、Access または Excel を使用してデータを管理する を参照してください。
といいましても、あまり神経質になる必要はありません。おおいにエクセルを活用してデータ管理にチャレンジしてみてください。
コマンドボタン別解説
以下、『エクセルでデータベース』の使用法につき、専用ツールバーのコマンドボタン毎に一つ一つ解説します。
[新規行]コマンドボタン
[新規行]コマンドボタンをクリックすることで、現在カーソルの位置がどこにあっても、データ最終行の次の行(つまり、新規の行=新規レコード)に移動できます(エクセルでいうところの「行」は、データベース用語ではレコードと呼ばれています)。
[件数]コマンドボタン
エクセルのオートフィルタ機能はデータの抽出を行うのに非常に便利な機能ですが、同機能を使って抽出されたデータ件数は調べるには少々手間がかかります。
この点、[件数]コマンドを使うことで、抽出されたデータ件数を簡単に調べることができます。
正確には、抽出されたデータの件数というよりは、現在ワークシートに表示されているデータの件数を調べるためのコマンドです。
[初期化]コマンドボタン
エクセルのオートフィルタ機能はデータの抽出を簡単に行うことができる、大変便利な機能です。
しかし、オートフィルタ機能を使って一つないし複数の条件を設定した場合、条件を一つ一つ元に戻す(フィルタ条件を解除する)のは結構面倒です。
しかも、エクセル上ではどのフィルタ条件をかけているのか一応画面上では分かるようになっていますが、これはよく見ないと判別しづらいものです。
そこで、 [初期化]コマンドを使えば、すべてのフィルタ条件を一度に解除することができます。
[検索]コマンドボタン
もちろんエクセルにも検索機能は備わっていますが、検索はシート単位でしか行われません。
これに対し、本ソフトの[検索]コマンドボタンは全シートを対象に検索するので便利です。
[検索]コマンドボタンをクリックすると上のような[全シート検索]ダイアログボックスが表示されますので、[検索文字列]テキストボックスに検索する文字を入力して、[検索]ボタンをクリックしてください。
検索結果が複数見つかった場合には、[検索]ボタンをクリックし続けると順次当該検索文字が含まれるセルに移動していきますが、[全シート検索]ダイアログボックスの下部にある[検索結果一覧]に表示されている検索結果をクリックして当該検索文字が含まれるセルに移動することもできます。
[重複行]コマンドボタン
重複データの取扱いはやっかいなところです。
[重複行]コマンドの使い方について解説する前に、データベース理論における「重複」の意味についてまず簡単に説明しておきます。
データベースには「主キー」という基本概念があります。
主キーとは、データのある1行(データベース用語で言えばレコード)を特定するために必要な情報のことです。
難しく思えるかもしれませんが、ここでは単純に重複してはいけないデータ項目くらいの意味で捉えておけば必要十分です。
重複してはいけないデータなので、例えば、メールアドレスや電話番号、FAX番号などは主キーとなり得ますが、氏名は主キーとはなり得ません(同姓同名の人がいる可能性があるので)。
データベースソフトならば、ソフト自体に重複データを除外する仕組みが備わっているのですが、エクセルには当然には備わっていません。
そこで、重複データを除外する何らかの仕組みが必要となってくるわけですが、エクセルで重複データを除外するにはいくつか方法があります。
重複データを事前に入力できないようにすることも可能なのですが、事前チェックでは完全に重複データの入力を防ぐことはできません。
そのため、『エクセルでデータベース』では、事後的に重複行をチェックする方法を採用しています。
[重複行]コマンドボタンをクリックしてください。次のようなダイアログボックスが表示されますので、重複してはいけないデータがある列をコンボボックスで指定した上、[OK]ボタンをクリックしてください。重複データが自動的に削除されます。

ただし、この場合、削除されるのは現在の表示状態で後(下)にあるデータ行の方なのでくれぐれもご注意ください。
また、一度削除したデータは元には戻せません。
なお、例えば、URLのように主キーが一つの場合には、次のいずれの指定の仕方でも構いません。
また、エクセルの仕様上、主キーが複数ある場合(例えば、電話番号やFAX番号を主キーとするような場合で、市外局番とそれ以外の番号とを分けて管理しているような場合です。)には、主キーの列は連続していないと重複データのチェックを行うことがはできませんので、ご注意ください。
[空白行]コマンドボタン
エクセルをデータベースとして活用する上でネックとなるのが、空白データと先の重複データとの取扱いです。
アクセス(Access)など本来のデータベースソフトを使うのであれば、原則として空白データや重複データは認められず、簡単にこうしたデータが生じないようにすることができます。
しかし、エクセルは本来表計算ソフトであって、データベースソフトではないので、空白行等をチェックする機能はありません。
この点、[空白行]コマンドを使用することで、事後的ですが、空白行を探し出し、自動的に削除できます。
ただし、一つの行のどの列にもデータが入力されていない行をもって空白行と判断していますので、一項目でもデータが入力されていれば、削除はされません。ご注意ください。
[グループ化][解除]コマンドボタン
エクセルは立派なデータベースとなり得ますが、本格的なデータベースソフトと異なり、リレーショナルデータベースとして活用するには、やはり少々無理があると個人的には思っています。
難しい定義はさておき、リレーショナルデータベースとは何かを思い切って簡単に言ってしまうと、全てのデータを一つの表(データベース用語ではテーブルと言います)に格納してしまうのではなく、複数の表(テーブル)に分けて格納し、必要に応じてID番号や名前などのキーとなるデータを利用して表(テーブル)を結合して使用するデータベースのことです(あまり上手い表現ではありませんね(m_m))。
何を言っているのか分からなくても全然構いません。
要は、エクセルをデータベースとして利用する場合には、一つのワークシートに全てのデータを保存することになる場合が多いということです。
もちろん、データベース関数などを利用してリレーショナルデータベースもどきを実現する(複数のシートにデータを保存する)ことは可能なのですが、あまり凝りすぎると、ワークシートの使用に様々な制限がかかり、かえって使いづらいものとなります。
したがって、エクセルをデータベースとして利用し続けていると、いきおいシートの列(フィールド名)が増えてしまうという結果になります(行が増える分には構わないのですが)。
そして、列が増えてくればくるほど、データベースの全体像はつかみづらくなります。
こうした場合に便利なのが、エクセルに備わっているグループ化機能です。
グループ化することにより、関連する行や列を折り畳んで表示することができます。
本ソフトの[グループ化]コマンドボタンは、選択された複数の列をグループ化します。
逆に[解除]コマンドボタンは、選択された複数の列のグループ化を解除します。
[列挿入][列削除]コマンドボタン
先ほどの[行削除][行挿入]コマンドボタンが行=レコードの挿入・削除を行うものであるのに対し、[列挿入][列削除]コマンドボタンは列=フィールドの挿入・削除を行うものです。
[行削除][行挿入]も[列挿入][列削除]もエクセルのメニューバーから簡単に行うことはできるのですが、データベースには必須の機能ですので、データベース関係のアドインソフトとして操作の統一性・体系性を持たせるため、あえてコマンドボタン化したものです。
[文字列型]コマンドボタン
エクセルではデータ型というものを意識する場面はあまりないのかもしれませんが、データベースソフトやプログラミングでは常にデータ型を意識する必要があります。
実は、エクセルにおいても各セル毎にデータ型というものがあります。ここでデータ型とは各セルに入力されているデータの種類というくらいの意味に捉えておいてください。
例えば、セルに日本語が入力されている場合には、そのセルのデータ型は「文字列型」ということになりますし、(半角の)数字が入力されている場合には(基本的には)「数値型」ということになります。
そして、エクセルをデータベースとして利用する場合には、各セルのデータ型にもある程度は関心を払う必要があります。
大雑把に言ってしまうと、足したり引いたりなど計算するための数値が入力されているセルを除き、セルのデータ型をすべて文字列型にしてしまうというのも一つの方法です。
[文字列]コマンドボタンをクリックすることで、選択されているセルのデータ型を文字列型にすることができます。
しかし、大抵の方はデータ型と言われてもピンとこないと思います。そこで、本コマンドの使用法をもっと簡単に言い切ってしまうと、セルに何らかのエラー(セルの片隅に小さく緑色のマークが付きます)(関数の間違いによるエラーを除く)が発生した場合などには、何も考えずにこの[文字列型]コマンドボタンを実行してみてください、ということになります。
※ただし、セルにエラー表示が出た場合(関数の間違いによるエラーを除く)でも、無視しても構わない場合がほとんどです。
[CSV]コマンドボタン
CSVファイルとは、一番汎用的なデータベースのファイル形式(単純なテキストファイルですが、拡張子は"csv"となります)です。
色々なデータベースソフトがありますが、すべてのデータベースで共通に利用できる、古くからあるファイル形式です。
つまり、データベース上のデータをCSVファイル形式のデータとすることで、異なるデータベースソフト間でデータのやり取りが可能となるわけです。
もちろん、エクセルでもCSVファイル形式をサポートしています。データベースとしてのエクセル上のデータをCSVファイルに変換(エクスポートと呼ばれることもあります)することができるわけです。
そして、CSVファイルに変換することで、エクセル上のデータを他のデータベースソフトなどでも活用することができるようになります。
ただし、エクセルの固有の機能だけでは、オートフィルタ機能を使って抽出されてているデータだけをCSVファイルとしてエクスポートしようとすると、少々手間がかかります。
この点、[CSV]コマンドを利用すれば、オートフィルタによって抽出されたデータであっても手軽にCSVファイルとしてデータをエクスポートすることができ、大変重宝します。
[CSV]コマンドボタンをクリックしてください。次のようなダイアログボックスが表示されます。
ただし、ダイアログボックス上に注意書きされているように、拡張子は付けず、ファイル名だけを入力してください。デスクトップ上にCSVファイルが生成されます。


