- Accessクエリを扱う時によく使われる関数の使い方が分かる
- Access関数の特徴とExcel関数との違いが分かる
Access中級者以上のスキルを身につけると、Excelとは比較にならないほど効率的なデータ処理が可能になります。
しかし、そこに到達するまでには、いくつものハードルを乗り越える必要があります。
例えば、以下のような悩みはありませんか?
- Accessのクエリ作成に時間がかかりすぎる...
- 同じようなデータ処理を何度も手作業で繰り返している...
- Excelは使えるけど、Accessの関数がよくわからない...
Accessの基礎(テーブル・クエリ・フォーム)を習得した人が次に目指すべき目標は、できるだけ手間をかけずに、高度な集計やデータ加工を行えるようになることです。
そのために必要なのは、Access関数の習得です。
Accessの関数にもいろんな種類がありますが、まずはAccess初心者向けの5種類をマスターしましょう。
もくじ
本記事では、Access初心者が最初に覚えるべき「5大関数」を厳選し、それぞれの基本的な使い方から実践的な活用例まで、わかりやすく解説します。
関数を使わずにAccessデータベースを運用しようとすると、代替の手段として複数のクエリを組み合わせたり、複雑なVBAコードを記述したりする機会が増えます。
複数クエリの組み合わせや複雑なVBAコードを用いると、後で解析しづらいデータベースが仕上がってしまうので、メンテナンスの観点からマイナスです。
しかし、Accessデータベースの構築に関数をうまく活用することで、記述に必要なボリュームを大幅に減らせます。
結果、作業時間の大幅な短縮とエラーの削減が可能になり、システム運用の負荷を軽減できるでしょう。
この記事を読み終える頃には、Access関数の基礎がしっかりと身につき、データベース操作の自動化に向けた確かな一歩を踏み出せるはずです。
Access 関数を覚えるメリット― データ検索やエラー処理など手早く処理
Access関数を覚えるメリットは、データベースをより早く、かつ正確に操作できることです。
特に、日常的に発生するデータ検索やエラー処理といった煩雑な作業を、関数1つで瞬時に解決できるようになります。
では、2つの例について軽く触れていきます。
詳細は記事の中盤以降で解説しているので、そちらを参考にしてください。
一つ目は、他のテーブルからデータを検索する手段です。
例えば、顧客マスタから特定の情報を検索する際、従来は専用のクエリを別途作成したり、VBAコードでプログラムを記述したりする必要がありました。
しかし、いずれの方法も結構手間のかかる作業で、オブジェクトやコードのボリュームが増えると、メンテナンスしづらいAccessデータベースが仕上がってしまいます。
検索関数であるDlookup関数を用いることで、記述がよりシンプルなものとなり調整も楽になります。

2つめは、比較的目にする機会が多いNullエラーを解消する手段です。
空白データがあるフィールドに対して計算処理を行うと、エラーが返されてしまいます。
従来はデータをチェックして手動で修正するか、複雑な条件分岐処理を組む必要がありました。
いずれの方法も手間がかかるので、できれば避けたいところです。
しかし、Nz関数を使えば、空白を自動的に0に置き換えて計算を続行できます。

このように、Access関数は複雑なデータ処理を1行のコードで実現し、データベース全体の保守性向上にも貢献する強力なツールです。
また、関数はAccessだけでなく、SQL SERVER やORACLEなど他のデータベースシステムにも装備されているので、幅広く活用できるスキルだとも言えるでしょう。
優先的に習得したいAccessの 5 大関数を徹底
Accessを使いこなすためには、まず基本的な関数を身につけることが重要です。
このセクションでは、Access初心者が優先的に習得すべき5つの関数を、わかりやすく解説します。
その1-四則演算の使い方
すべての関数の基礎となる「四則演算」からまず始めましょう。
実例として、「発注伝票明細」テーブルの「数量」と「単価」を掛けて「金額」を計算してみます。

数式を使用する前準備として、デザインビューで新しいクエリを作っておきましょう。
クエリを作ったら、新しいフィールドに『金額:[数量]*[単価]』と入力します。

書き方のルールは「フィールド名:数式」ですが、フィールド名を忘れずに入力することが重要です。
データシートビューで確認すると『金額』フィールドが作成されています。
計算結果も間違いないようです。

Accessの場合、フィールド単位で数式を設定するようになっています。
一方、Excelはセル単位で数式を設定します。
具体的な例を挙げると、Excelでは、セルに直接 =C2*D2 のような数式を入力し、オートフィルで下方向にコピーする必要があります。
Accessでは、クエリで一度設定すれば、すべてのレコードに自動で適用されます。
Excelに慣れている方は、最初は戸惑うかもしれませんが、特徴を押さえたうえで四則演算の練習を重ねていけば、きっとAccessの数式に慣れていくでしょう。
その2-集計関数
集計関数は、蓄積されたデータをさまざまな角度から分析するための強力なツールです。
データベースに溜まったデータを有効活用し、新しい方向性を見つけるのに役立ちます。
集計クエリで選べる集計方法と関数名をかんたんに下にまとめておきます。
集計方法 | 関数名 |
---|---|
合計 | Sum |
平均 | Average |
最小 | Min |
最大 | Max |
カウント | Count |
標準偏差 | StDev |
分散 | Var |
先頭 | First |
最後 | Last |
詳しい使い方を知りたい人は、集計クエリを詳しく解説した下の記事を確認してください。
>>【Accessクエリ入門】4回目-集計クエリを作る方法
全部で9種類の集計方法を選べますが、おそらく使う頻度が高いのは「合計」「カウント」の2種類ではないでしょうか。
「平均」も集計可能ですが、Nullも一つのデータとしてカウントされることに注意が必要です。
Nullを排除したければ、「合計÷カウント」の組み合わせがオススメです。
「先頭」と「最後」については、「データの並び替え」という前準備が必要です。
Accessの集計関数は、ExcelのピボットテーブルやSUM・AVERAGE・COUNT関数と似ています。
しかし、Accessの方がさらにきめ細かい条件での集計が可能なので、データを思い通りに扱いたい人には必須スキルだと言えるでしょう。
その3-条件分岐(IIf関数)
次に習得しておきたいAccess関数は、『条件分岐関数』です。
Accessでクエリを作るときに、いろんな場面で使われる関数の代表格と言ってもよいでしょう。
ExcelではIF関数が条件分岐でよく使われていますが、Accessでは「IIf関数」という名前になっています。
IIf関数の使い方はExcelのIF関数と基本的に同じです。
IIf(条件,Yesの時の処理,Noの時の処理)
ここで、金額が10000円以上を「高額」、9999円以下を「低額」に仕分けてみましょう。
新しいフィールドには、『判定:IIf([金額]>9999,"高額","低額")』と入力します。

データシートビューで確認すると、金額によって高額と低額に仕分けることができました。

その4-Format関数
Format関数は指定した表示形式に変換する関数で、日付型を「○年」や「〇年〇月」などに変えたい時によく使われます。
Format(数式,"表示形式")
例えば、日付型を使って集計関数を作った場合は、グループ化さるのは日付単位のみです。
年や月単位での集計したい人にとっては、期待していた集計ができません。
Format関数で集計したい単位の文字列型フィールドを作成することで、年や月単位の集計が可能になるのです。

では、日付単位で入力されているフィールド「発注日」を「発注年月」に変換してみましょう。
新しいフィールドに『発注年月:Format([発注日],"yyyy年mm月")』と入力します。
デザインビューの場合、入力後は表示形式が自動で変わりますが、何も問題ありません。

データシートを確認すると、年月単位で表示されたフィールド「発注年月」に変わりました。

Accessの表示形式は基本Excelと同じです。
Excelの表示形式をある程度覚えている方はそのまま使い回すことができます。

Excelの表示形式を覚えていない方は「Excelのマクロ記録」を活用してもよいでしょう。
その5-Nullやエラーを処理する関数
Accessのクエリを作っていると、「#エラー」をいう表示をたまに見かけます。
エラーを回避する関数がAccessにも装備されているので、IIf関数と組み合わせながら活用しましょう。
Nz関数
Nz関数は、指定したフィールドがNullの場合に返す値(戻り値)を指定します。
Nz(フィールド名,戻り値)
よほどの例外がなければ「0(ゼロ)」を第二引数に指定しておけば問題ありません。
他のエラー処理関数に比べ、シンプルで可読性が高いので、まずはNz関数だけで問題が解決できないか検討しましょう。
IsNull関数
指定したフィールドや式がNULLであるか判定し、TrueまたはFalseを出力します。
IsNull(フィールド名)
下のようにIIf関数と組み合わせるのが良く使われるパターンです。
IIf(IsNull(フィールド名),エラー回避の数式,数式)
IsNull関数の使いどころは、Nz関数で問題が解決できない場合に限られます・。
IsError関数
指定したフィールドや式がエラーになるかどうかを判定し、TrueまたはFalseを出力します。
IsError(数式)
IsError関数もIIf関数と同様の使い方です。
IIf(IsError(数式),エラー回避の数式,数式)
引数に数式を設定するので、IIf関数と併せて使うとどうしても長くなってしまいます。
IsError関数を使う必要がある場合は、入力支援機能の「式ビルダ」や「ズーム」を使って式を書いていきましょう。

AccessとExcelの関数で違うところ
Access関数の特徴は「フィールド毎に式を設定する」ということです。
「一つの数式で列(フィールド)の数式を完結できる」というメリットがある一方で、「セル毎の微調整ができない」というデメリットもあります。
一方、Excelの場合はセル毎に数式が設定されるので、微調整が簡単です。
Excelに慣れていると、Accessでの式の使い方は使いづらく感じるでしょう。
Accessでは一つの数式で答えを完結させるためにも、IIf関数をはじめとした条件分岐関数を操るスキルが重要になってきます。
まとめ
今回は、Accessでよく使う5種類の関数を紹介しました。
本記事で紹介した5種類の関数を繰り返し使っていくことで、Access関数のクセが分かるようになります。
Excelに慣れてしまっている方は、クセの強いAccess関数に戸惑ってしまうかもしれません。
しかし、Access関数の考え方は、Excelのテーブル機能でも応用できます。
Excelでも、データ量が大きくなれば列単位で式を完結させた方が作業効率は高くなるため、ぜひマスターしておきたいスキルです。
次回はAccessの文字列操作関数について解説していきますが、関数の基本的な考え方がしっかり理解できていれば、スムーズに学習は進むでしょう。
本日もありがとうございました。