OfficeType

VBA~WorksheetFunction.DAverageメソッド~Excel

VBAで指定した範囲内において、複数の条件から一つでも条件をみたした場合に数値を平均したい場合はWorksheetFunction.DAverageメソッドを使います。

書き方

WorksheetFunction.DAverage(データベース, フィールド, 検索条件)

データベースは見出しを含めた表全体を指定します。今回の場合はA1:D7になります。

フィールドは合計したい数値の列の見出しを指定します。今回は所持金を合計したいのでD1になります。

検索条件は条件を表す為のセル範囲になります。今回の場合はF1:G3になり、まずデータベースで指定した範囲の条件にしたい列の見出しと同じ名前の見出しを入力しその下に抽出したい条件を入力します。この例では班と性別を条件に指定していて、その下に1班男性、その下に3班女性と入力してあります。同じ行がANDを意味して各列がORを意味しているので、この例だと(1班AND男性)か(3班AND女性)の条件にあてはまる人の所持金の平均を表示します。

例として下の画像において下のコードを実行すると1班の男性、Aさんの所持金1000円と、3班の女性、Fさんの所持金1700円の平均1350がセルF5に表示されます。

image-01

Sub test1()

Range("F6") = WorksheetFunction.DAverage(Range("A1:D7"), Range("D1"), Range("F1:G3"))

End Sub

image-02