[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数条件でリードタイムの平均日数を出したい ??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.