• ベストアンサー

平均値を出す方法

Excelにて次のような表を作っております。 月ごとの入場数表があり、曜日ごとの平均入場数を出したいのですが、不定期の「休み」の日がカウントされてしまい、正しい平均値が出ない状況です。   A  B 1 月  10 2 火  50 3 水  休 : 31 水  10 大変分かりづらい説明で申し訳ございませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

仮に月曜日の算出例です。 =SUMIF($A$1:$A$31,"月",$B$1:$B$31)/SUMPRODUCT(($A$1:$A$31="月")*ISNUMBER($B$1:$B$31))

hiko_nyan
質問者

補足

早速の回答ありがとうございます。 教えていただいた関数で計算することが出来ました。 一つご質問ですが、「ISNUMBER」というのは指定した範囲が数値かどうかチェックする関数だと思いますが、なぜ文字が入っていてもエラーにならないのでしょうか?

その他の回答 (7)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.8

NO1です。 >、「ISNUMBER」というのは指定した範囲が数値かどうかチェックする関数だと思いますが、なぜ文字が入っていてもエラーにならないのでしょうか? ⇒対象セルが数値の場合はTRUE、それ以外はFALSEになるだけでエラーにはなりません。

hiko_nyan
質問者

お礼

回答ありがとうございました。 FALSEになるだけでエラーにはならないのですね。 勉強になります。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.7

#5 merlionXXです。 > 例えば 月曜日が2回しか過ぎていなくても4で割られてしまう ということは月の途中でも平均値を出したいということですか? それなら質問時にそのように条件を明確に書くべきですよ。 提示された表のサンプルには31日まで入力されているではないですか。 では、A列が「月」でB列が「数字」の入力がある行のみを対象に平均値を計算すればいいんですね?「休」は数字ではないですからカウントされませんので。 =SUMIF(A1:A31,"月",B1:B31)/SUMPRODUCT((A1:A31="月")*ISNUMBER($B$1:$B$31)) 上記はA1:A31="月" がTRUE で、かつ ISNUMBER($B$1:$B$31) がTRUEとなる行数だけを分母に持ってきています。

hiko_nyan
質問者

お礼

回答ありがとうございました。 言葉足らずで申し訳ございません。 途中で計算する(平均をだす)予定ではなかったのですが、 今月の入力を試していたところ計算が合わないことに気づきまして、質問させていただきました。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.6

ANo.3のjo-zenです。質問文を読み間違えてしまったので、ANo.3は答えになりませんので忘れてください。

hiko_nyan
質問者

お礼

回答ありがとうございます。 はい、了解しました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

月曜の場合 =SUMIF(A1:A31,"月",B1:B31)/SUMPRODUCT((A1:A31="月")*(B1:B31<>"休"))

hiko_nyan
質問者

お礼

回答ありがとうございます。 上記数式ですと必ず1ヶ月あたりの曜日で割られてしまうようです。 (例えば 月曜日が2回しか過ぎていなくても4で割られてしまう) 休みはカウントされないので大丈夫そうです。

  • nmktksk
  • ベストアンサー率36% (75/208)
回答No.4

=AVERAGE(B1:B31) EXCEL2007で確認してできましたがどうでしょう。

hiko_nyan
質問者

お礼

回答ありがとうございます。 説明不足ですみません。 AVERAGEだとすべての平均になってしまいます。 曜日ごとに数値を出せればいいのですが。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.3

平均値を出す数式として   =SUM(B1:B31)/COUNT(B1:B31) とすればOKだと思いますよ。 SUM関数は、数字だけを合計し、文字列は無視されます。 COUNT関数は、数字が入力されているセルの数をカウントし、文字列の入っているセルは除外します。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

=SUMPRODUCT(($A$1:$A$31="月")*($B$1:$B$31))/SUMPRODUCT(($A$1:$A$31="月")*ISNUMBER($B$1:$B$31)) "月"の部分をセル参照にすれば全ての曜日に対応できます。

hiko_nyan
質問者

補足

回答ありがとうございます。 #VALUEになってしまうのですが、、、"月"をセル参照にしても同様になってしまいます。 なにかこちらで変更する点はありますでしょうか?

関連するQ&A