- ベストアンサー
エクセル #DIV/0! エラー
いつもお世話になっております。 1日~31日までのワークシートがあります。 (各シートはその日の1分間隔の温湿度データーがあります) そのデーターを日の平均値(温度)として、D1454に「=AVERAGE(D835:E1450)」 にて算出してますが、31日が無い月の場合、「#DIV/0!」のエラーが表示 されます。 さらに別シートで、上記算出結果を、AF2に「='31'!$D$1454」で表示させ、 グラフ化してますが、同じく31日が無い月の場合、「#DIV/0!」のエラーが表示 され、グラフが「0」と認識しています。 別シートで、31日が無い月の表示を無表示にさせる方法を教えて下さい。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>回答番号:No.3 この回答へのお礼 AVERAGE関数の方は現状のままなら 参照式は =IF(ISERROR('31'!D1454),NA(),'31'!D1454) とすれば良いと思います。 '31'!D1454 が、#DIV/0!とエラー表示されていると #N/A が返されます。 #N/Aが表示されたセルはグラフにプロットされません。 因みに、#N/Aと手入力しても同じ効果が得られます。 折れ線グラフでデータがない所を0としない http://takashixxx.blog88.fc2.com/blog-entry-75.html EXCELで『#N/A』とは http://chaichan.web.infoseek.co.jp/vbtips/VBMemo2007-09-01.htm
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルのグラフは、非表示の行は、グラフのデータにしないと思う。(今再度確認済み) だから#DIV/!の行を非表示にして、グラフを描かせる方法がある。 関数で行の非標示は(絶対に)実現しないから、VBAでやるしかない。 VBAのコードはそんなに複雑にならないが、質問者はVBAの経験あるのかな。 ーー 平均そのものも、今の式では、望みの値にならないだろう。 例データ 2009/10/01 3 2009/10/02 4 2009/10/03 2009/10/05 2 2009/10/08 6 =SUM(C2:C6)/SUMPRODUCT((C2:C6<>"")*1) 結果 3.75=15/4
補足
VBAは現在勉強中です。 このサイトを利用させて頂きながらで、 VBAの初期の初期段階です。 ものすごく簡単なVBAなら、自作で使用中です。 勉強の為、教えて頂けませんか。 >平均そのものも、今の式では、望みの値にならないだろう。 上記は、連続データなので、AVERAGE関数で問題ありません。
- 135ok
- ベストアンサー率34% (26/75)
>別シートで、31日が無い月の表示を無表示にさせる方法を教えて下さい。 ご参考で。 A1 2009 年を入力 A2 10 月を入力 *A1、A2で希望の年月を入力。 B1 =DATE(A1,A2,1) C1 =IF(B1="","",IF(B1+1>DATE($A$1,$A$2+1,0),"",B1+1)) *AF1までコピー *最終日は、別添の通り表示。 *日の表示は、セルの書式設定→表示形式→ユーザー定義でdに変更。 AF2 =IF(AF1="","",'31'!A1) ←A1をD1454に変更方。 *AF1で日にちが表示されたときのみ表示。 上記の数式は、別添資料の数式です。 的外れの時は、読み流してください。
お礼
画像添付までして頂き有難う御座います。 早速、実施しましたが、グラフを確認すると変わらず「0」を 認識していました。 ただ、この関数は大変便利な関数です。 (2009年2月も28日までしか表示しない) なので、別な用途で使用させて頂きます。 今後も、宜しくお願いします。
- xls88
- ベストアンサー率56% (669/1189)
下記ページで、グラフに0値をプロットしない方法が紹介されています。 [XL2002] 折れ線グラフでデータが 0 の要素は前後の要素を直線で結ぶ方法 http://support.microsoft.com/default.aspx?scid=kb%3bja%3b402639
お礼
早速の回答有難う御座います。 =NA()はどのセルが対象で、どの様な式なのでしょうか? ちなみに、下記の様な式を作成しましたが、 「入力した数式は正しくありません」と表示され、 =NA()の()が緑色に変わってます。 「=IF(='31'!$D$1454,=NA())」 引き続きのアドバイスお願いします。 参考)グラフも別のワークシートに作成しています。 ワークシートは、グラフ用・別シート・1日~31日の計33あります。
- tadagenji
- ベストアンサー率23% (508/2193)
D1451の式を =IF(COUNT(D835:E1450)=0,"",AVERAGE(D835:E1450)) としてみてください。 これは集計をする範囲のDATA数をチェックして"0"(なし)ならばそのセルの解になにも書かない。ということです。 ひとつでもDATAが記入されていたらAVEREGEをとります。
お礼
早速の回答有難う御座います。 アドバイスを実施した結果、ワークシート「31」のエラー及び、 別シートのエラーも消えました。 が、やはりグラフは「0」を認識していてます。 引き続きのアドバイスお願いします。 参考)グラフも別のワークシートに作成しています。 ワークシートは、グラフ用・別シート・1日~31日の計33あります。
- STICKY2006
- ベストアンサー率29% (1536/5269)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/error01.html エラーを表示させないだけ。 だったらこんな関数もありますが。。。 グラフが絡んできているようなので、これをつかってやりたい事が可能かどうかまでは、質問文を読み込んでいないので。。。 ちょっと試してみてください。
お礼
早速の回答有難う御座います。 アドバイスを実施した結果、ワークシート「31」のエラー及び、 別シートのエラーも消えました。 が、やはりグラフは「0」を認識していてます。 引き続きのアドバイスお願いします。 参考)グラフも別のワークシートに作成しています。 ワークシートは、グラフ用・別シート・1日~31日の計33あります。
お礼
お礼が遅くなり申し訳ありません。 まさしく、目的のグラフに仕上がりました。 有難う御座います。 この場をお借りして申し訳有りませんが、 今回の皆さんのアドバスにより、エクセルの すごさ・深さを痛感しました。 もっと勉強しなければ・・・と、認識させられ、また、 このサイトの皆様の親切心に、心より感謝申し上げます。