複数の条件での平均、最大値、最小値、合計を簡単な数式で処理する
下の表は、とある会社の営業部員の売上一覧です。
営業エリアが北部、中部、南部の3つに別れていてそれぞれ男女の担当者がいます。
分析をするに当たって、担当者の属性(エリアと性別)を考慮して合計、平均、最大値、最小値を求めることにしたのが、表の右側です。
ここでは、複数の条件に合った集計処理を行なう2つの方法を紹介します。IF関数と組み合わせる DATABASE関数を使う
送信者 OpenOffice |
方法1:IF関数と組み合わせる
複数の条件のもとでの集計を行なうとき、ちょっとした工夫が必要になります。
北部のエリア担当で、女の売上を集計するとき、
もしも、(C2:C12が北部)で、(D2:D12が女)のとき、SUMで集計の対象にする。そうでないときは集計の対象にしない。
という内容の数式を作ります。
送信者 OpenOffice |
CtrlキーとShiftキーを押しながらEnterを押すと、{}で数式が括られて条件に合うデータだけが集計の対象にされる、いわゆる配列数式です。
誤ってEnterだけを押すと、集計されません。その場合、下の画像のようにやり直してみてください。
いずれの場合も、アタマがSUM、AVERAGE、MAX、MINなどの違いがあるだけで以下は、何も違いはありません。
他に、COUNT関数でも使えます。
送信者 OpenOffice |
上に書いた処理は、もちろん、他の関数を用いても可能です。
例えば、DSUM関数、DCOUNT関数、DMAX関数、DMIN関数、SUMPRODUCT関数、SUMIF関数などが使える場合があります。
一例を下に表示します。
送信者 OpenOffice |
関数名:DSUM関数
書式:=DSUM(リスト範囲;フィールド;検索条件範囲)
何ができる:リスト範囲から検索条件に当てはまるレコードのデータだけを合計する
平たく書くと:=DSUM(B1:D12;B1;F1:G2) でB1:D12から、F1:G2に指定されたと条件に合うB列の行を合計する
関数名:DAVERAGE関数
書式:=DAVERAGE(リスト範囲;フィールド;検索条件範囲)
何ができる:リスト範囲から検索条件に当てはまるレコードのデータだけを平均する
平たく書くと:=DAVERAGE(B1:D12;B1;F1:G2) でB1:D12から、F1:G2に指定されたと条件に合うB列の行を平均する
関数名:DMAX関数
書式:=DMAX(リスト範囲;フィールド;検索条件範囲)
何ができる:リスト範囲から検索条件に当てはまるレコードのデータだけを対象にして最大値を求める
平たく書くと:=DMAX(B1:D12;B1;F1:G2) でB1:D12から、F1:G2に指定されたと条件に合うB列の行から最大値を求める
関数名:DMIN関数
書式:=DMIN(リスト範囲;フィールド;検索条件範囲)
何ができる:リスト範囲から検索条件に当てはまるレコードのデータだけを対象にして最小値を求める
平たく書くと:=DMIN(B1:D12;B1;F1:G2) でB1:D12から、F1:G2に指定されたと条件に合うB列の行から最小値を求める
しかし、次のような場合は、DATABASE関数は使えません。というか、使いづらいです。
送信者 OpenOffice |
このサンプルファイルは、SKYDRIVEからcalc135.odsをダウンロードしていただき、D系関数が使いにくい場合のタブをクリックしてください。