DAvg関数 …指定したフィールドの平均を求める

[Access 2016/2013/2010/2007]

AccessのDAvg関数の使い方を紹介します。

スポンサーリンク

書式

DAvg(フィールド, テーブル, 条件)

指定したテーブルまたはクエリの指定したフィールドの値の平均値を求めます。

引数

引数 指定 説明
フィールド expr 必須 集計の対象になるフィールド名を指定
テーブル domain 必須 テーブル名またはクエリ名を指定
条件 criteria 省略可 集計の対象になるレコードの抽出条件を指定。省略した場合は、テーブルまたはクエリのすべてのレコードが集計の対象になる

表A 引数 条件 の記述例

記述例 説明
"数学>=70" [数学]フィールドの値が70以上
"受験日 Between #2017/4/1# And #2017/4/30#" [受験日]フィールドの値が2017/4/1以上2017/4/30以下
"性別='女'" [性別]フィールドの値が「女」
"受験者 Like '田中*'" [受験者]フィールドの値が「田中」で始まる

※条件となる数値はそのまま入力し、日付は「#」、文字列は「'」で囲みます。

使用例

使用例 戻り値 説明
DAvg("英語", "T_テスト") 80 英語の平均 (5人の平均)
DAvg("数学", "T_テスト") 90 数学の平均 (3人の平均)
DAvg("英語", "T_テスト", "受験日<#2017/5/1#") 70 2017/5/1より前の英語の平均
DAvg("英語", "T_テスト", "性別='女'") 75 「女」の英語の平均

さまざまな条件の指定例

数値の条件

記述例 説明
 "年齢=30"  [年齢]フィールドの値が「30」に等しい
 "年齢<>30"  [年齢]フィールドの値が「30」に等しくない
 "年齢>=30"  [年齢]フィールドの値が「30」以上(「30」を含む)
 "年齢>30"  [年齢]フィールドの値が「30」より大きい
 "年齢<=30"  [年齢]フィールドの値が「30」以下(「30」を含む)
 "年齢<30"  [年齢]フィールドの値が「30」より小さい
 "年齢 Between 30 And 39"  [年齢]フィールドの値が「30」以上「39」以下
 "年齢 In(30,40,50)"  [年齢]フィールドの値が「30」または「40」または「50」

日付の条件

条件となる日付は「#」(半角シャープ)で囲みます。

記述例 説明
"生年月日=#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」に等しい
"生年月日<>#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」に等しくない
"生年月日>=#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」以降
"生年月日>#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」より後
"生年月日<=#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」以前
"生年月日<#1987/5/4#" [生年月日]フィールドの値が「1987/5/4」より前
"生年月日 Between #1987/5/1# And #1987/5/31#" [生年月日]フィールドの値が「1987/5/1」以上「1987/5/31」以下

文字列の条件

条件となる文字列は「'」(半角シングルクォーテーション)で囲みます。見づらいですが、条件の末尾の「'"」は「'」と「"」を続けて入力したものです。

"所属='総務部'" / "所属 Like '営業部*'"

記述例 説明
"所属='総務部'" [所属]フィールドの値が「総務部」に等しい
"所属<>'総務部'" [所属]フィールドの値が「総務部」に等しくない
"所属 Like '営業部*'" [所属]フィールドの値が「営業部」で始まる(「営業部」「営業一課」「営業二課」「営業部外商課)
"所属 Like '営業部??'" [所属]フィールドの値が「営業部」+2文字(「営業部一課」「営業部二課」)
"所属 Like '*部'" [所属]フィールドの値が「部」で終わる(「営業部」「総務部」「システム部」)
"所属 Like '??部'" [所属]フィールドの値が2文字+「部」で終わる(「営業部」「総務部」)
"所属 In ('営業部','総務部','システム部')" [所属]フィールドの値が「営業部」または「総務部」または「システム部」

Null値の条件

Null値を探すときは「Is Null」、Null値でないものを探すときは「Is Not Null」を指定します。

記述例 説明
"役職 Is Null" [役職]フィールドが未入力
"役職 Is Not Null" [役職]フィールドが入力済み

複数の条件

「条件1かつ条件2」を指定する場合はAnd演算子、「条件1または条件2」を指定する場合はOr演算子を使用します。

記述例 説明
"年齢>=30 And 所属 Like '営業部*'" [年齢]フィールドの値が「30」以上、かつ、[所属]フィールドの値が「営業部」で始まる
"年齢>=30 Or 所属 Like '営業部*'" [年齢]フィールドの値が「30」以上、または、[所属]フィールドの値が「営業部」で始まる

テキストボックスの条件

条件の文字列と「[テキストボックス名]」を&演算子で結びます。

記述例 説明
"[年齢]>=" & [txt年齢] [年齢]フィールドの値が[txt年齢]テキストボックスの値以上
"[生年月日]<#" & [txt生年月日] & "#" [生年月日]フィールドの値が[txt生年月日]テキストボックスの値より小さい
"[所属]='" & [txt所属] & "'" [所属]フィールドの値が[txt所属]テキストボックスの値に等しい
"[所属] Like '" & [txt所属] & "*'" [所属]フィールドの値が[txt所属]テキストボックスの値で始まる
スポンサーリンク

関連記事