[[20060411160001]] 『#DIV/O!を含む計算』(ちこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『#DIV/O!を含む計算』(ちこ)

 商品ごとに、3ヶ月の売上平均値(平日・休日別)を出しているのですが、
 商品によっては休日に売上がないものもあります。

          1月        2月         3月
           平日   休日  平日   休日   平日   休日
 商品A  60     16   80     20    70    #DIV/O!     

 このとき、商品Aの数値は他の商品を含む1ヶ月の売上表より
 =SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))
 で計算した結果です。
  (C列は平日・休日の区分が入ってます)

 別セルに、商品Aの3ヶ月結果として =AVERAGE(1月休日,2月休日,3月休日)
 とすると、エラーとなるのですが、
 #DIV/O! を無視して 18 という結果を出したいのです。
 16、18、0 の和を3ではなく2で割りたいのですが…。

 >=SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))
 この式で#DIV/O!が出ないようにすればいいのでは?
 =if(SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))=0,"",
SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")))
のような感じで「""」のような文字列を返せば、AVERAGE関数は無視してくれます。
   (Hatch)


 Hatchさんありがとうございますm(__)m
 なるほど…エラー値が出ないように、ですね。
 今までの式が全て #DIV/O! でまくりですので、そこを直すとこから頑張ります…。
 ありがとうございました。
    (ちこ)

 こんなんでもできそうです・・・。
 =AVERAGE(IF(ISNUMBER(範囲),範囲,""))
として、Ctrl+Shift+Enter
(ROUGE)

 !!! 
 ROUGEさん、すごい。よくわからないけどできました(+_+)
 Ctrl+Shift+Enter で、全体を{}でつつむ?て事でしょうか。
 これだと今までの式使えそうです。

 めんどくさいので他の仕事を先にしてました。。
 お礼が大変遅くなりすみません。
 ありがとうございました!これから取り掛かります(^▽^)
    (ちこ)


 こちらに統合しました。
 (kazu)

『再質問・#DIV/O!を含む計算』(ちこ)

 商品ごとに、3ヶ月の売上平均値(平日・休日別)を出しているのですが、
 商品によっては休日に売上がないものもあります。

          1月        2月         3月
           平日   休日  平日   休日   平日   休日
 商品A  60     16   80     20    70    #DIV/O!     

 このとき、商品Aの数値は他の商品を含む1ヶ月の売上表より
 =SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))
 で計算した結果です。
  (C列は平日・休日の区分が入ってます)

 別セルに、商品Aの3ヶ月結果として =AVERAGE(1月休日,2月休日,3月休日)
 とすると、エラーとなるのですが、
 #DIV/O! を無視して 18 という結果を出したいのです。
 16、18、0 の和を3ではなく2で割りたいのですが…。

 という質問にお答え

 @=SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))
 この式で#DIV/O!が出ないようにすればいいのでは?
 =if(SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A"))=0,"",
SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")*G3:G33)/SUMPRODUCT(($C3:$C33="平")*(E3:F33="商品A")))
のような感じで「""」のような文字列を返せば、AVERAGE関数は無視してくれます。
   (Hatchさん)

 Aこんなんでもできそうです・・・。
 =AVERAGE(IF(ISNUMBER(範囲),範囲,""))
として、Ctrl+Shift+Enter
   (ROUGEさん)

 を頂き、ROUGEさんに教えて頂いた、
 =AVERAGE(IF(ISNUMBER(範囲),範囲,""))として、Ctrl+Shift+Enter
 で、同シート内ならOKなのですが、範囲に別シート(今回は3シートにわたって使用)(→前年度と比較)
 を選択するとエラーになってしまうのです。。
 その別シートにはエラー値があります。
 ※別シートにエラーがない場合は計算されるのです。
 Aの式は同シート内or別シート(エラー値なし)でなければ無理ですか??

 長文過ぎてすみません。。


 同じ内容のご質問は、前回の質問の下に追加された方が良いかもです。
 別シートのエラーの内容、エラーが出る原因は何でしょうか。
 私の考えでは、Hatchさんのおっしゃるように、最初からエラーが出ない式にしておいたほうが
 あとで利用する場合に楽だと思います。

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.