Discussion:
#div/0!と出てしまうセルを除いた、平均値を出す計算方法が知りたい
(too old to reply)
to
2006-03-14 06:16:27 UTC
Permalink
何も入ってないセルが計算され、#div/0!と出てしまう。そのセルを除いた、平均値を出す計算方法が知りたい
sugasawa
2006-03-14 08:22:57 UTC
Permalink
※OSとエクセルのバージョンを明記しましょう。


まず、あなたが作成した計算式を提示しましょう。
例えば、セルA1~A3に入力された3つのデータの
平均を出すとき、

1. =(A1+A2+A3)/3
2. =A1/3+A2/3+A3/3
3. =SUM(A1:A3)/3
4. =AVERAGE(A1:A3)

などなど、様々な方法で平均を求めることが出来ます。

何故このようなことを言うかというと、通常は、上に示した全ての
計算式において、A1~A3の間に空のセルが含まれていても、
エラーメッセージではなく平均値を返してくれるからです。

(ゼロを含めた全てのデータの個数による平均なのか、
ゼロを省いたデータの個数による平均なのか、という
違いはありますので、求める平均値と合致しているか
どうかは別問題です。)

「#DIV/0!」というエラーメッセージは、簡単に言えば
「ゼロで割っても答えはゼロにしかならないよ!」という
エラーですので、どこかでゼロで割るような格好に
なってしまっているのでしょう。

例えば、数式が
「=(データの合計を求める数式)/(データの個数を求める数式)」
となっている場合、「データーの個数を求める数式」自体が間違って
いる、などが考えられます。

すがさわ
(WinXPHomeSP2&Excel2002SP3)



"to" <***@discussions.microsoft.com> wrote in message news:296626FC-C756-405E-BDF7-***@microsoft.com...
FCfun
2006-03-14 09:21:46 UTC
Permalink
FCfunです。
横から失礼します。
Post by sugasawa
何故このようなことを言うかというと、通常は、上に示した全ての
計算式において、A1~A3の間に空のセルが含まれていても、
エラーメッセージではなく平均値を返してくれるからです。
本題とは関係ありませんが、確かに空のセルを含む場合には、計算されますが、
「#DIV/0!」が含まれている場合には、計算結果も「#DIV/0!」になりませんか?
OFFICE2000 SR1SP3で、AVERAGE関数を使用した場合には、
エラーになりますが…何か設定があるのでしょうか?

すがさわさんがかかれている様にこのエラーはゼロで除算しているために、
発生しているエラーですので、ゼロで除算しないように算式を工夫するか、
どうしてもゼロなる場合には、結果を空白やゼロににするなどで、
対応されてはいかがでしょうか?
私はあまり詳しくないのですが、if文とかを使用すると出来ませんか?
kounoike
2006-03-14 09:23:03 UTC
Permalink
茶々。
Post by sugasawa
「#DIV/0!」というエラーメッセージは、簡単に言えば
「ゼロで割っても答えはゼロにしかならないよ!」という
ちょっと,違うような気が・・・。
Post by sugasawa
エラーですので
はぐれねこ
2006-03-14 10:59:13 UTC
Permalink
たしかに分母が0の数字は0でなく、存在しませんね。
はぐれねこ
Post by kounoike
茶々。
Post by sugasawa
「#DIV/0!」というエラーメッセージは、簡単に言えば
「ゼロで割っても答えはゼロにしかならないよ!」という
ちょっと,違うような気が・・・。
Post by sugasawa
エラーですので
sugasawa
2006-03-14 23:55:14 UTC
Permalink
皆様、フォローありがとうございます。
要は、元投稿者さんが詳細な情報を提示してくれさえすれば
このグループの皆さんであれば簡単にかたがつく内容ぽいなと
思ったもので。
とはいえ元の投稿から推し量る限り、闇雲に「詳細を提示しろ」
と言っても、どこをどう提示してよいのやらわからないかな、とも
思い。
大雑把な考え方をつかんでもらうためにああいう書き方をして
みたのですが、効果があったのやら、なかったのやら。
元投稿者さんの反応待ちですね。

すがさわ
to
2006-03-15 05:01:21 UTC
Permalink
sugasawa様 ありがとうございます。
投稿が初めてなもので、自分が必要な部分のみ、勝手に書いてしまいました。
OSはxpとエクセルのバージョンは2002です。
=AVERAGE(A1:A3)のような式 で入力しています。
#div/0!の出ているセルの平均をだしたいのですが、どうすればいいのですか。
sugasawa
2006-03-15 06:07:01 UTC
Permalink
すがさわです。
失礼しました、質問の意味を理解できていなかったようです。

「#div/0!と出てしまうセルを除いた、平均値を出す計算方法が知りたい」
ということですので、FCfunさんがお書きになったように、例に挙げた
=AVERAGE(A1:A3)で言うところのA1~A3に該当する部分に、
計算式によって得られたデータがはいっており、そのデータのうち
いくつかはゼロで割られているために、”#div/0!”エラーが出ている
ということですね。

ということなので、FCfunさんがフォローしてくださったように
IF関数を使って”#div/0!”エラーを回避する(空白にする)か、
はぐれねこさんがフォローしてくださったように平均値を
出す数式をIF(iserror(average(・・・)),"",average(・・・))と言う風に
するか、という工夫が必要です。

今回の場合、はぐれねこさんの提示してくださった数式は
データの中に一つでもエラーがあれば空白を返しますから、
平均値を求めたい元のデータ(を求める数式)を工夫するのが
良いでしょう。

どのような数式で元のデータを求めてらっしゃるのか不明なので、
非常に遠まわしな表現になりますが、
元のデータを計算する際に、ゼロもしくは空白セルで割り算を
している部分があるのならば、その結果がゼロであったときには
空白を、そうでなければ結果をそのまま表示するようなIF文を
組めばよろしいでしょう。

すがさわ
はぐれねこ
2006-03-14 11:32:06 UTC
Permalink
空のセルや、文字だけのセルばかりならば、averageを使うと#div/0!になりますね。
またその範囲に、一つでもエラーがある場合もエラーが出ますね。
そういう意味でなく、#div/0!を含む範囲のaverageを使いたいならば#div/0!が
でるセルをIF(iserror(average(・・・),"",average(・・・))とでも入れて、空
白表示にしてはどうでしょうか。ちなみに・・・は平均させたい範囲
そうすれば、#div/0!が無くなるので、数値が一つでもあれば、正しく表示され
そうですが。
はぐれねこ
Post by to
何も入ってないセルが計算され、#div/0!と出てしまう。そのセルを除いた、平均値を出す計算方法が知りたい
to
2006-03-15 06:26:28 UTC
Permalink
縦計・横計の100個のセルの平均を出したいのですが。K1のセルに10個のセルの平均 =AVERAGE(A1:J1)として入力しています。そのときにK1のセルに#div/0!と出てしまいます。

そして、K1と同じようにK2・K3・・・K10とありそのK1~K10までの平均をK11に出したいのですが。#div/0!と出てしまうため、平均がでません。

ちなみに、数値の入力されていないセル(空白セル)もランダムに存在します。100個のセル(A1:J1)×(A1:A10)には数値のみ入力です。1列にまったく数値の入力がない列も存在します。

IF(iserror(average(・・・),"",average(・・・))に・・・の平均させたい範囲を入れたんですが、うまく動きませんでした。”入力した数式は正しくありません。”と表示されました。わたしの入力方法が違っていたのかもしれませんが、両方平均させたい範囲をいれましたけど。

質問の内容が自分の頭の中でのことなので、うまくまとめられませんが、よろしくお願いします。

すがさわ様 FCfun様 kounoike様 はぐれねこ様 ありがとうございます。
to
2006-03-15 06:51:26 UTC
Permalink
もう一度入力しましたら、できました。
IF(iserror(average(・・・),"",average(・・・))で数式を立てたらできました。
 すがさわ様 FCfun様 kounoike様 はぐれねこ様 本当にありがとうございました。
kounoike
2006-03-15 10:47:25 UTC
Permalink
Post by to
もう一度入力しましたら、できました。
IF(iserror(average(・・・),"",average(・・・))で数式を立てたらできま
した。
Post by to
 すがさわ様 FCfun様 kounoike様 はぐれねこ様 本当にありが
とうございました。
えっと,上にあるkounoikeって者なのですが,私がしたことと言えばすがさわさ
んの記事に大した内容でもない茶々を入れただけなんで,このように書かれると
ちょっと戸惑いますが。

ところで,別のやり方としてちょっと手間ですがこんなのはどうでしょうか。
オートフィルタを使用するためヘッダが必要なので,先頭の行に一列行を挿入し
て,J1に適当に平均とでも入れておく。

次に,K2に
=AVERAGE(A2:J2)
といれ,このセルをK11まで,ドラッグ等でコピーする。
次にK12に
=SUBTOTAL(1,K2:K11)
と入れる。(K2からK11までの平均を意味します。)
セルK1を選択し,オートフィルタを実行。オプションを選んで,抽出条件欄に
#DIV/0!と”と等しくない”を選択し,OKボタンを押す。以上で終わり。空白
行に値を入れるときは,フィルタを解除し入力。
kounoike
2006-03-15 10:52:19 UTC
Permalink
Post by kounoike
オートフィルタを使用するためヘッダが必要なので,先頭の行に一列行を挿入

Post by kounoike
て,J1に適当に平均とでも入れておく。
すいません。J1はK1の書き間違いです。
はぐれねこ
2006-03-15 15:56:31 UTC
Permalink
IF(iserror(average(・・・)),"",average(・・・))
と表示されているでしょうか。かっこ一つ忘れですみません。

ただ、ふと思ったのですが、K11に、average(・・・,・・・,・・・)と私なら入
力しそうです。結果はそう変わりないように思いますが。
はぐれねこ
Post by to
もう一度入力しましたら、できました。
IF(iserror(average(・・・),"",average(・・・))で数式を立てたらできました。
 すがさわ様 FCfun様 kounoike様 はぐれねこ様 本当にありがとうございました。
sugasawa
2006-03-15 08:37:26 UTC
Permalink
すがさわです。
解決との事、なによりです。
結果オーライなのですが、ちょっと確認させてください。
Post by to
ちなみに、数値の入力されていないセル(空白セル)もランダムに存在します。
100個のセル(A1:J1)×(A1:A10)には数値のみ入力です。
1列にまったく数値の入力がない列も存在します。
とのことなのですが、「行」の場合はどうでしょう?
ABC・・・の横方向に増えていくのが「列」で
123・・・の縦方向に増えていくのが「行」なわけですが、

1行目((A1:J1)の範囲)が全て空欄なのであれば、
それが原因ということなので、しっくりくるのですが。


あとは細かいことなのですが、100個のまとまったセル範囲を
示す場合であれば、(A1:J10)とするのが一般的です。
もうひとつ、=if(iserror(average(・・・)),"",average(・・・))が正しいです。
示していただいた数式では、閉じカッコが一つ足りませんので、
エラーが出たものと思われます。

すがさわ


"to" <***@discussions.microsoft.com> wrote in message news:611CF7B1-EA62-482B-AB3D-***@microsoft.com...
はぐれねこ
2006-03-15 15:48:35 UTC
Permalink
Post by sugasawa
もうひとつ、=if(iserror(average(・・・)),"",average(・・・))が正しいです。
示していただいた数式では、閉じカッコが一つ足りませんので、
エラーが出たものと思われます。
失礼しました。全くその通りでございます。
はぐれねこ
T. Sugita
2006-03-18 07:28:15 UTC
Permalink
$B=D7W!&2#7W$N#1#0#08D$N%;%k$NJ?6Q$r=P$7$?$$$N$G$9$,!#(B
$B#K(B1$B$N%;%k$K#1#08D$N%;%k$NJ?6Q!!!a#A#V#E#R#A#G#E!J#A#1!'#J#1!K$H$7(B
$B$FF~NO$7$F$$$^$9!#$=$N$H$-$K#K#1$N%;%k$K(B#div/0!$B$H=P$F$7$^$$$^$9!#(B
$B$=$7$F!"#K(B1$B$HF1$8$h$&$K#K#2!&#K#3!&!&!&#K#1#0$H$"$j$=$N#K(B1$B!A#K(B10
$B$^$G$NJ?6Q$r#K(B11$B$K=P$7$?$$$N$G$9$,!#(B#div/0!$B$H=P$F$7$^$&$?$a!"(B
$BJ?6Q$,$G$^$;$s!#(B
$B$A$g$C$HLLGr$=$&$@$C$?$N$G!"JL2r$r!#(B

1) 0$B0J>e!"(B0$BL$K~$r>r7o$H$7$?>l9g(B
=(SUMIF(K1:K10,">=0",K1:K10)+SUMIF(K1:K10,"<0",K1:K10))/COUNT(K1:K10)

2) $BG[Ns?t<0$r;HMQ(B
=AVERAGE(IF(ISNUMBER(K1:K10),K1:K10,"")) Ctrl+Shift+Enter
--
$B?yED(B
sugi-***@bk.iij4u.or.jp
Loading...