- ベストアンサー
実数が入力されてるセルのみ合計後、小数点以下を切捨てて平均算出したい。
《 エクセル2000についての質問 》 12ヶ月の給料支給額表(12セルの列)があります。 現在、1月分から3月分まで給料が支給されたので、A1からA3まで実数が入力されています。 A4からA12までは、まだ給料が支給されていないので、0が入力されています。 3ヶ月分の給料の平均を算出するには、次の式をどのように変えれば良いのでしょうか。 =ROUNDDOWN(AVERAGE(A1:A12),0) 実数が入力されているセルのみを合計し、小数点以下を切り捨てて平均額を出したいのです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
手口は色々考えられますが、「合計金額を、0じゃないデータの入ってるセル数で 割る」ということで =rounddown(sum(A1:A12)/countif(A1:A12, "<>0"), 0) みたいな感じで出来そうですよね。 「まだ支給されてないところに0が入るんじゃなくて空欄にでもしとけば、何も考え ずに平均が出せるのに」と思ったのは内緒です。
その他の回答 (4)
- taknt
- ベストアンサー率19% (1556/7783)
=ROUNDDOWN(SUMIF(A1:A12,">0")/COUNTIF(A1:A12,">0"),0) これで いいのでは?
お礼
問題なく使用できます。ありがとうございました。 皆様、不勉強な私の見苦しい言い訳になりますが、何通りかの数式を教えていただきまして、今回、より深く勉強になりました。 (スミマセン、またよろしくお願いします。)
- deadline
- ベストアンサー率63% (1239/1943)
残念ながら、ご質問の場合、AVERAGE関数は使えません。 SUMIF関数で条件に合うものの合計を求め、COUNTIF関数で条件に合うものの個数を求めて、SUMIF関数で求めたものを割るしかないかと。 =ROUNDDOWN(SUMIF(A1:A12,">0",A1:A12)/COUNTIF(A1:A12,">0"),0) SUMIF(範囲,条件,合計する範囲) COUNTIF(範囲,条件)
お礼
ご丁寧な解説ありがとうございます。 色んな関数を知っていれば、応用も利くのですね。 こちらも問題なく使用できました。
- crazy_dog
- ベストアンサー率37% (148/391)
こんにちは もっと簡単な式があるかもしれませんが、以下のようにしてみたらどうでしょうか? =ROUNDDOWN(SUM(A1:A12)/COUNTIF(A1:A12,">0"),0) どうでしょう?
お礼
こちらも問題なく使えました。ありがとうございます。いつもスミマセン。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 A4~A12までを未入力にしておけば、質問欄の式でも出来ますが。 もし、0を入力しておきたいという場合は、平均を表示するセルに、 =ROUNDDOWN(AVERAGE(IF(A1:A12=0,"",A1:A12)),0) と入力し、通常[Enter]キーを押して決定するところを、 [Ctrl]+[Shift]+[Enter]([Ctrl]と[Shift]を押しながら[Enter]を押す)で決定します。 うまくいけば、上記の式の両端に「{}」が付きます。 (このような式を配列数式といいます。) これで出来ると思います。
お礼
いつもスミマセン、使えますOKです。ありがとうございました。 でも、式の両端に「{}」というのは付きません。なぜでしょー。 「配列数式」ありがとうございます。
お礼
誠にスミマセン。空白は自動的に除いてくれるとは知りませんでした。 したがいまして、ご教示くださった式は未支給月を0と表記した場合と空白で表記した場合で違う値が出てしまいました。 (私の作った収入算出表を色々な入力グセの人にも支障なく使って欲しいこともありまして...) 申し訳ありません。