指定されたレコードのセット (定義域) に含まれる値の平均を返します。Visual Basic コード、マクロ、クエリ式、または演算コントロールで使うことができます。
たとえば、運送料に関する選択クエリの [抽出条件] セルに DAvg 関数を指定して、運送料が平均値以上のレコードを抽出したり、演算コントロールの式に DAvg 関数を指定して、新規受注と以前の受注の平均値を並べて表示したりできます。
構文
DAvg(expr, domain[, criteria])
DAvg 関数には、次の引数があります。
| 引数 | 内容 |
|---|---|
| expr | 対象となる数値データが含まれているフィールドを表す文字列式、またはフィールドの値の計算を表す式です。テーブルのフィールド名、フォームのコントロール、定数、組み込み関数、およびユーザー定義関数が指定できます。ただし、他の定義域集計関数や SQL 集計関数は指定できません。 |
| domain | 定義域を構成するレコードを指定する文字列式です。テーブル名またはクエリ名が指定できます。 |
| criteria | この引数は省略可能です。演算対象となるデータの範囲を指定する文字列式です。たとえば、SQL 式の WHERE 句を指定できます (語 WHERE は省略します)。引数 criteria の指定を省略すると、定義域全体に対して expr が適用されます。criteria に含まれるフィールドが domain のフィールドでない場合、DAvg 関数は Null 値を返します。 |
解説
Null 値が入ったレコードは、計算対象になりません。
DAvg 関数をマクロ、モジュール、クエリ式、または演算コントロールのいずれで使用する場合も、正確な結果を得るために引数 criteria を慎重に設定してください。
DAvg 関数を使って、クエリの [抽出条件] セルに抽出条件を指定できます。たとえば、受注量が平均よりも多い商品の一覧を表示する場合、[受注明細] および [商品] テーブルに関するクエリを作成して [商品名] および [数量] フィールドを加え、以下の式を [数量] フィールドの下の [抽出条件] セルに記述します。
>DAvg("[数量]", "受注明細")
また、クエリの演算フィールドの式や、更新クエリの [レコードの更新] 行でも DAvg 関数を使うことができます。
メモ 集計クエリの演算フィールドの式には、DAvg または Avg 関数を使うことができます。DAvg 関数ではデータをグループ化する前に値が計算され、Avg 関数ではデータをグループ化してから値が計算されます。
抽出条件を指定してデータ範囲を制限する必要があるような場合は、DAvg 関数を使ってください。たとえば、演算コントロールで愛知県に出荷したときの平均運送料を表示するには、テキスト ボックスの "ControlSource/コントロールソース" プロパティに次のように設定します。
=DAvg("[運送料]", "受注", "[出荷先都道府県] = '愛知県'")
domain のすべてのレコードの平均値を求める場合は、Avg 関数を使います。
モジュール、マクロ、またはフォームの演算コントロールで DAvg 関数を使うと、基になるレコード ソースにないフィールドをフォームに表示することができます。たとえば、[受注] テーブルに基づくフォームに、特定の得意先から受注した商品数の平均を、DAvg 関数を使って [受注明細] テーブルの [数量] フィールドの値から計算し、表示することができます。
ヒント
メモ domain のレコードを変更しても、保存されていない値は DAvg 関数の演算に反映されません。変更した値を使って計算する場合は、計算前に、[レコード] メニューの [レコードの保存] をクリックするか、フォーカスを別のレコードに移動するか、または Update メソッドを使って変更を保存する必要があります。