• ベストアンサー

《エクセル》 平均値の求め方

いつもお世話になります。 列Aに分類、列Bに数値がある場合に、「列Aの重複する分類の平均値を求める。ただし、列Bの値がゼロや空白だった場合、それを計算から除外する」という配列数式を組みたいのですが、うまくいきません。 お手数ですが、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

No.2です。 >{=AVERAGE(IF(AND($A$1:$A$65536="あ",$B$1:$B$65536>0),$B$1:$B$65536))} >と自分なりに作成してみたのですが、答えが"0"になってしまいました。 配列数式では、AND関数(ORも)は使用出来ません。 配列数式中で複数の条件を扱う場合は、 条件式どうしを「*」で繋いで掛け算にしたり(AND条件、論理"積")、 「+」で繋いで足し算にしたり(OR条件、論理"和")します。 したがって、この場合の数式は、 {=AVERAGE(IF(($A$1:$A$65536="あ")*($B$1:$B$65536>0),$B$1:$B$65536))} ([Ctrl]+[Shift]+[Enter]で確定) となります。

7-samurai
質問者

お礼

ありがとうございました。 いつも的確な答えをいただき、ありがとうございます。 ・・・というより、私の勉強不足ですね。申し訳ございません。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

列Aの分類ごとの条件(0と未入力除く)付の合計でいいですか? =SUMIF($A$1:$A$20,分類,$B$1:$B$20)/SUMPRODUCT($A$1:$A$20=分類,$B$1:$B$20<>0) 分類の所をセル参照にすればいいと思います。

7-samurai
質問者

お礼

ありがとうございます。 AVERAGE関数を使わなければ、以外と簡単だったのですね・・・。気が付きませんでした。 ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 ちょっと分からないのですが。 >列Aの重複する分類の平均値を求める。 とは、どういうことなのでしょうか? ダミーデータでいいので、具体的なデータと、その場合に平均計算の対象になるのはどの行かを提示してもらえませんか? ちなみに、平均は各分類ごとに計算するのでしょうか? その辺りを補足して下さい。

7-samurai
質問者

補足

いつもお世話になります。おひさしぶりです。 列Aの値 列Bの値 あ    100 い    10 う    20 あ   (空白) い    40 う    20 あ    0 あ    200 というエクセルのデータベースがあり、別シートに、 "あ"の平均値 "い"の 〃 "う"の 〃 という表を作っているのですが、上記の場合では、 "あ"の平均値を出す時に、4行目の空白セルと、 7行目の"0"は計算から外したいのです。 今までにmaruru01さんから教えていただいた知識をもとに、 {=AVERAGE(IF(AND($A$1:$A$65536="あ",$B$1:$B$65536>0),$B$1:$B$65536))} と自分なりに作成してみたのですが、答えが"0"になってしまいました。 申し訳ないですが、宜しくお願い致します。

  • esprei
  • ベストアンサー率56% (718/1271)
回答No.1

ご希望の物に添えないかもしれませんが、以下の方法があります。 =subtotal(1,B列の範囲) この関数を答えを出したいセルに入れて、表にはオートフィルタをかけます。 そしてA列では平均を見たい分類を選択、B列ではオプションを選んで、0と等しくないand空白(何も入力しなくてよい)と等しくない。を選択します。 これで、0と空白以外のセルが表示され、平均値も出ます。 フィルタで消える行があるので、答えのセルは別シートか、表以外の行に設定する必要があります。 ただ、一つずつしか見ることが出来ないのでだめかな。

7-samurai
質問者

お礼

配列数式にばかり頭がいっていて、オートフィルタ機能を使うことに気が付きませんでした。 いただきましたヒントをもとに、何とか出来ると思います。 ありがとうございました。

関連するQ&A

  • エクセルで複数条件における平均

    列Aに1~5が入り、列Bに値が入っているとします。 Aが1であるBの平均を1つの式で出したいのですが。 (配列数式が関係あるのですか?) 【例】 A  B 1  2.5 1  2.0 1     4  1.0 3  1.5 1  0.0 宜しくお願い致します。

  • 《エクセル2000》配列数式を使って抽出したデータの平均値と、フィルタをかけた場合との答えが違う?

    たびたび恐れ入ります。現在、アンケートの集計をしています。 B列に価格、C列に1~4の数値もしくはブランクが入っています。 「C列が1のものの価格の平均値を出す」のが目的で、配列数式の式は {=AVERAGE(IF(C2:C100=1,B2:B100,""))} としました。 一応それらしい答えが出ましたので、念のためフィルタをかけてC列が1のもののみを表示させ、SUBTOTAL関数を使って平均値を出すと、配列形式で出した数値とは微妙に違ってしまいます。 手計算をすると、SUBTOTAL関数を使った場合と同じ値になりますのでおそらくそちらが正しいのだと思います。 答えが変わってしまうのは、どうしてでしょうか? 以後同様に、配列数式を多用する予定ですので、非常に困っています。 どうかよろしくお願い致します。

  • 配列数式での平均値

    こんにちは。 今、エクセルで配列数式を使って平均値を出す作業をしています。 列Aには男女別を示す1、2が入力されており、 列B以降にはいろいろなデータが入っています。 それらデータにおける男女別の平均値を出したいので 配列数式を使って求めるまでは良かったのですが、 どうやら、列B以降の空欄になっているセルも 0として計算されてしまっているようなのです。 (普通のaverageと同様に)空欄を数に入れないで計算させるには どのようにしたらよいのでしょうか? ちなみに今使っている配列数式は、 {=average(if(A1:A10=1,B:B10,""))} です。

  • エクセルで、入力のないセルを無視した計算

    おせわになります。      A  B  C   1  3     5   2  4     3   3  2     1 SUM 9  0  9 → 平均 6 上のような、シートがあり、合計、平均が、に数式が設定されており、A,B,C列に数値を入力すると自動で計算されますが、B列に数値を入れない場合があり、このとき、合計に0を返すため、平均値が間違った値になります。これを回避する方法を教えてください。 基本的には、合計の数式をなんとかする事になると思うのですが。。。

  • エクセルの平均値を出す時に困ってます

    家計簿でそれぞれの平均をエクセルで出そうとしているんですが A~G列の列ごとに出したいのですが  ABCD・・・ (1)245 (2)4 7 (3) 54 (4)578 (5)68 上記のように列に空白があり、そのままaverageで平均を出すと 空白も計算してしまい、正確な平均が出ないので困っています 曜日ごとにつけていますので、どうしても空白が出来てしまうですが このような場合に平均値を正確に出す時になにか良い、計算方法は ないでしょうか?

  • excel 数値と空白がランダムに並んだセルの移動平均

    エクセル2003でA列に適当な数値と空白セルが、上からの順番でランダムに並んでいて、それをもとにB列の各行それぞれに移動平均を出したいと思っています。 移動平均は数値が入力されたセルのみを対象にして空白のセルをとばし、さらに直近の異なる数値をさかのぼって4つ探し、計算対象としたいのですがどのようにしたらよいでしょうか? 宜しくお願い致します。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • 配列数式で平均を出すと空欄が0で計算されてしまう

      A B C D 1  1 2 1 {=AVERAGE(IF($A$1:$A$4=$C1,B$1:B$4))} 2  1 4 2 {=AVERAGE(IF($A$1:$A$4=$C2,B$1:B$4))} 3  2 6 4  2 8 上記のような数値、数式ですと、 B列すべてに数値が入力されているため、問題なく計算するのですが、 例えば、B2のセルを空欄にすると、空欄を0としてしまい、 D1の計算結果が1となってしまいます。 D1の数式を=AVERAGE(B1:B2)としますと、空欄は空欄として扱い、 計算結果は2となります。 配列数式を使った場合にも、空欄を空欄として扱い、 計算結果が2となるような方法はありませんでしょうか。 よろしくお願いします。

  • Excelの平均値について。

    画像のようにA列の4:20にランダムの数字が表示されます。 そこで4の倍数の箇所だけの平均値をA2に表示したいのですが、どうすればよろしいでしょうか。 ただし、空白と0の場合は計算に入れないとします。

  • エクセル(2003)で、空白(数値が0)のセルがある場合、そのセルを除

    エクセル(2003)で、空白(数値が0)のセルがある場合、そのセルを除外して計算結果をだしたいのですが、うまくいきません。今入っている数式は次のようなものです。=ROUND(D25*F25*H25,0) この数式で空白が生まれる可能性があるのはD列です。何かいい方法はないでしょうか。

専門家に質問してみよう