Accessの重要関数

 Accessには多くの関数が用意されており、クエリで利用できるものだけでも百数十種にのぼりますが、頻繁に使うものは極めて限られていますのでここで主要なものを紹介します。
 なお、詳細については個々の関数の解説ページにリンクしていますのでそちらも参考としてください。また、関数の一覧(VBA関数を除く)については次の記事に記載しています。

www.accessdbstudy.net

目次

Count関数

 値の個数を求める関数です。特に数値だけを数えるということはないので、ExcelでいえばCOUNTA関数に相当します。
 ただし、指定した1つの列の合計を求めるという機能しかなく、Excelのように「Count(1,5,3)」というような計算をすることもできませんので注意が必要です。下記で紹介するDCount関数の方が使いやすい場合もあるかもしれません。

 解説ページ
www.accessdbstudy.net

Sum関数

 数値の合計を求める関数です。Excelの同名の関数と同じような働きをします。
 ただし、指定した1つの列の合計を求めるという機能しかなく、Excelのように「Sum(1,5,3)」というような計算をすることもできませんので注意が必要です。下記で紹介するDSum関数の方が使いやすい場合もあるかもしれません。

 解説ページ
www.accessdbstudy.net

Format関数

 数字や日付、文字列を、指定した書式の文字列に変換する関数です。ExcelのTEXT関数に相当します。
 ゼロ埋めや西暦と和暦の変換など応用範囲の広い関数です。

 解説ページ
www.accessdbstudy.net

Mid関数

 文字列のうち、指定した区間(開始位置と文字数により指定)にある文字列を取り出す関数です。Excelの同名の関数と同じ働きをします。

 解説ページ
www.accessdbstudy.net

 なお、Left関数、Right関数も同じような関数ですがMid関数が最も柔軟に使えます。

Replace関数

 文字列中にある特定の文字列を別の文字列に置き換える関数です。ExcelのSUBSTITUTE関数に相当します。

 解説ページ
www.accessdbstudy.net

StrConv関数

 大文字と小文字の変換、半角と全角の変換といった文字種の変換を行う関数です。Excelの同名の関数(VBA関数)と同じ働きをしますがAccessではクエリなどでも使えます。

 解説ページ
www.accessdbstudy.net

 なお大文字と小文字の変換についてはUCase関数,LCase関数を利用することもできます。

Choose関数

 ある値が1だったらこの値を返し、2だったらこの値を返す、というように簡易なインデックスとして機能する関数です。

 解説ページ
www.accessdbstudy.net

IIf関数

 恐らく最重要関数です。ExcelのIF関数に相当し、条件によって異なる結果を返すという働きをします。
 ついIfと記入してしまいエラーとなる(Accessに慣れると逆のケースが多くなりますが)ことが多いため注意が必要です。

 解説ページ
www.accessdbstudy.net

Switch関数

 IIf関数は大変便利ですが、結果を3つ以上に分岐させる場合はネスト(入れ子状にする)させることとなり 記述が長くなります。そこでこの関数を使うと短くまとめることができます。長らくExcelのワークシートでは使えなかった関数ですが、最近のバージョンでIFS関数(AccessのSwitch関数に近いのはこちら)及びSWITCH関数が使えるようになっています。
 解説ページ
www.accessdbstudy.net

Int関数

 指定した数値以下の整数のうち最も大きいものの値を返します。
 ちょっと応用することで四捨五入に用いることができますので重要な関数となっています。

 解説ページ
www.accessdbstudy.net

 なお、Fixも同じように用いることができますが、「整数部分を返す」という関数であるためマイナスの値に対する結果がInt関数と異なります。
 また、四捨五入を行う関数としてRound関数が用意されていますが、Excelと違って「偶数丸め」という丸めを行うので、うかつに使うと思わぬ結果を招きます。重要というより要注意の関数です。

DCount関数

 定義域集合関数と呼ばれる種類の関数の一つです。Count関数に近い関数ですが引数の指定の仕方が異なります。

 解説ページ
www.accessdbstudy.net

DSum関数

 定義域集合関数と呼ばれる種類の関数の一つです。Sum関数に近い関数ですが引数の指定の仕方が異なります。

 解説ページ
www.accessdbstudy.net

Date関数

 システムの日付を返す関数で、ExcelのTODAY関数にあたります。IIf関数(Access)とIF関数(Excel)の関係と同様に、慣れるまでは間違えやすいです。

 解説ページ
www.accessdbstudy.net

 なお、日付と時刻を返す関数としてNow関数があります。

DateDiff関数

 2つの日付を比較し、その差を返す関数です。ExcelのDATEDIF関数に近い働きをしますが同じような引数を指定しても若干異なる結果を返す場合があるため注意が必要です。

 解説ページ
www.accessdbstudy.net

Nz関数

 ある値がNullでない場合はそのままの値を、Nullである場合はその代わりとなる値を返す関数です。AccessではNullを含む演算(足し算、引き算等)の結果はNullになりますし、関数の引数がNullだとたいていNullを返すかエラーとなり扱いが面倒なものとなります。値がNullかどうか(Nullになりうるかどうか)、そしてNullの場合にどのように扱うのかについては常に注意が必要です。
 IIf関数でも代用はできますが覚えておいて損のない関数です。

 解説ページ
www.accessdbstudy.net