[[20211213133941]] 『複数条件でリードタイムの平均日数を出したい ??』(111) ページの最後に飛ぶ

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

 

『複数条件でリードタイムの平均日数を出したい ??2』(111)

先日教えていただきました「複数条件でリードタイムの平均日数を出したい」について、
計算式を使っていたのですが追加条件が出てしまったので
先日使用した表改め、下記表にてご教授をお願い致します。

  A     B     C     D     E
1 果物   状況   受付日  納品日  リードタイム(日)
2 りんご  出荷    12/8   12/10    3
3 みかん  出荷    12/8   12/10    3
4 りんご  未定                0
5 りんご  出荷    12/8   12/10    3
6 みかん  未定                0
7 りんご  出荷    12/8   12/10    3

15 みかん  未定   


A8以下にはりんごが7個あり、A列にりんごが合計11個あります。

●求めるもの
「りんご」のうち「出荷」のもので「出荷」のリードタイムの平均日数を出したい。

 計算式とすると、(3日+3日+3日)/3(りんごで出荷の件数)=3日 が正解なんですが、
下記計算式だとりんご全体の件数11で割ってしまい、0.8日と出てしまいました。(エラーが出ないように組み込んであります。)

=IFERROR(AVERAGEIFS(E2:E15,A2:A15,"りんご",B2:B15,"出荷"),0)

SUMPRODUCT関数が必要でしょうか。
よろしくお願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 >A8以下にはりんごが7個あり
 そのB列は全部「出荷」になってるってこと?

 E列には ↓ の式が入ってるんですよね?
 =NETWORKDAYS(C2,D2,祝日)

 これをC列とD列に日付が入力されている場合のみ計算するとか。

 E2 =IF(COUNT(C2:D2)<2,"",NETWORKDAYS(C2,D2,祝日))
 下コピー

 AVERAGEIFSの式はそのままで「3」になりませんか?

 以上
(笑) 2021/12/13(月) 14:32

(笑)様
説明不足でして大変申し訳ありません。

A8以下のA列に「りんご」は7個あり、B列は「未定」となります。
ですのでA列にはりんごが合計11個あり、B列「状況」11件のうち出荷は3件、未定が8件 です。

ご指摘のとおりE列には(笑)様の数式が入っております。

他の果物「みかん」等も同じように計算式を作り、下記のような集計表を別シートにて作成しております。

集計表完成イメージ

リードタイム平均日数(単位:日)

     出荷   未定
りんご  3     0
みかん  …    …
バナナ  …    …
 
(111) 2021/12/13(月) 14:54


 よくわかりませんね。

 B8以下は全部「未定」なら
 >りんご全体の件数11で割ってしまい
 ということにはならないのでは?

 例示データで試してみましたが ↓ の式で「3」になりますけど?
 =IFERROR(AVERAGEIFS(E2:E15,A2:A15,"りんご",B2:B15,"出荷"),0)

 以上
(笑) 2021/12/13(月) 15:18 数式の範囲を訂正 16:18

(笑)様
ご返答いただきありがとうございます。教えていただいた計算式で間違いがなかったです。
お手数をおかけ致しました。

上述の表に変更があり、条件も少し加わりましたので改めて作表させていただきます。

  A     B     C     D     E
1 果物   状況   受付日  納品日  リードタイム(日)
2 りんご  出荷    12/8   12/10    3
3 りんご  出荷    12/8   12/10    3
4 りんご  出荷                0
5 りんご  未定                0

E列には =NETWORKDAYS(C2,D2,祝日) の計算式が入っています。

求めるもの
 「りんご」のうち「出荷」のもので"リードタイムが0のものを除いた"リードタイムの平均日数を出したい。

 =IFERROR(AVERAGEIFS(E2:E5,A2:A5,"りんご",B2:B5,"出荷"),0)

とすると、出荷が3件あるのですがリードタイム0日を含んだものも入れているため
=(3日+3日+0日)/3件 で、当然ですが答えが「2」と出ます。

本来ならば3日+3日=6日 で該当するりんごは2行目と3行目のりんご(2個)なので、
6日/2=3日 という計算式にしたいです。

3行目のリードタイム0日のりんごを含まないようにするにはどうしたら良いでしょうか。

何度も表が変更して申し訳ございません。。。
(111) 2021/12/14(火) 09:33


  AVERAGEIFS に条件を追加
 =IFERROR(AVERAGEIFS(E2:E5,A2:A5,"りんご",B2:B5,"出荷",E2:E5,">0"),0)
                                                       ~~~~~~~~~~
 または、2021/12/13(月) 14:32 で回答したように
 受付日、納品日が入力されていない場合はE列に日数を出さない(空白にする)

 E2 =IF(COUNT(C2:D2)<2,"",NETWORKDAYS(C2,D2,祝日))
 下コピー

 E列をこうしておけば
 =IFERROR(AVERAGEIFS(E2:E5,A2:A5,"りんご",B2:B5,"出荷"),0)
 この式で「3」になるでしょう。

 あと確認ですけど
 集計表は別シートなんですよね?
 それもセル番地がわかるようにしてください。
 
 それと「未定」の場合でも日付が入ることがあるんですか?

 以上
(笑) 2021/12/14(火) 10:47

(笑)様
ありがとうございます!
集計表は別シートにて作成しています。

 =IFERROR(AVERAGEIFS(E2:E5,A2:A5,"りんご",B2:B5,"出荷",E2:E5,">0"),0)
上記追加していただいたおかげで求めたい数値が出ました!

実際作成している表には
受付日に日付が入力されていて、(進捗状況によって)納品日が空白の状態の場合
E列リードタイムが「-31810」と出るため
0以下のものは0に表記されるよう
E2=IF(NETWORKDAYS(C2,D2,祝日)<0,0,NETWORKDAYS(C2,D2,祝日))
と入れてあります。 

となると、教えていただいた下記計算式
>E2 =IF(COUNT(C2:D2)<2,"",NETWORKDAYS(C2,D2,祝日))だと
また新たに条件を入れないといけないですもんね。。。
ですのでIFERRORの条件追加でもできるのでこちらを使用させていただきます。

ありがとうございました。とても助かりました!

(111) 2021/12/14(火) 11:59


 一応言っておくと・・・

 >=IF(NETWORKDAYS(C2,D2,祝日)<0,0,NETWORKDAYS(C2,D2,祝日))

 上の式は ↓ でも同じことだと思います。

 =MAX(0,NETWORKDAYS(C2,D2,祝日))

 以上、参考まで
(笑) 2021/12/14(火) 15:12

コメント返信:

[ 一覧(最新更新順) ]


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