条件を付けて最大値やら最小値やら平均値やらを求めるには??



たとえば、A列に品物、B列に値段の記載のある表があったとして、


・ A列が"りんご"の一番高い値段(最大、max)を求める、とか

・ A列が"りんご"の一番安い値段(最小、min)を求める、とか

・ A列が"りんご"の平均の値段(平均、average)を求める、とか

・ A列が"りんご"の合計の値段(合計、sum)を求める、とか
・ A列が"りんご"の個数(カウント、count)を求める、とか


そんな感じで条件をつけて計算をするには?


今回も配列を使います。 Ctrl + Shift + Enter のやつです。


一応、最後のほうにデータベース関数を使った式も書いておきます、あまり好きじゃないけど。





この表から


a の 最大値を求めるには、


{=max((A1:A8=D2)*B1:B8)}





もうひとつの方法としては


{=max(if(A1:A8=D2,B1:B8))}





最小値を求めるには


{=min(if(A1:A8=D2,B1:B8))}


平均値を求めるには


{=average(if(A1:A8=D2,B1:B8))}


合計値を求めるには


{=sum(if(A1:A8=D2,B1:B8))}


これは sumif と同じ。


個数を数えるには


{=count(if(A1:A8=D2,B1:B8))}


これは countif と同じ。





※ ここで紹介した数式は入力確定時に Ctrl+Shift+Enter をします。

   そうすると数式の前後に{}がつきます。



このような感じで。


------

これとは別に、データベース関数なるものを使う方法があります。


ここで使ってる関数は

Dmax

Dmin

Daverage

Dsum

Dcount




こいつはちょっとした準備が必要です。


先ず、もとのリストにフィールド名を付けます。

図でいうと、A1の"item"とB1の"qty"です。


次に、検索用のセルを作ります。

図でいうと、D1とE1です。
で、検索条件をD2に入れます。


図の例では a ですが、b にかえれば b の結果が返ってきます。


数式は図の通り。最大値を求めるDmaxを例にとると、

=DMAX(A1:B9,B1,D1:E2)


DMAX(フィールド名を含むもとのリスト,計算する値のフィールド名,検索条件を記載したセル範囲)


という感じです。