- ベストアンサー
ExcelのIF関数を使用した修正と遅延日数の計算方法
- ExcelのIF関数を使用して、発注納期に修正がある場合、修正最終日と遅延日数を計算する方法を教えてください。
- IF関数を使用して列B〜列Dの修正日を比較し、一番右側の修正日を選択して遅延日数を計算する方法を教えてください。
- ExcelのIF関数を使って、発注納期に修正がある場合は一番右側の修正日を選択し、それに対応する遅延日数を計算する方法を教えてください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
IFをネストして、検査順番をD列からやれば良いと思いますよ。 E3=IF(D3<>"",DAYS360(A3,D3),IF(C3<>"",DAYS360(A3,C3),IF(B3<>"",DAYS360(A3,B3),0))) 上記の式だと、 D3が空欄以外の場合はDAYS360(A3,D3) D3が空欄でC3が空欄以外の場合はDAYS360(A3,C3) D3とC3が空欄でB3が空欄以外の場合はDAYS360(A3,B3) D3、C3、B3全部が空欄の場合は、0を表示するという式になっています。 ご参考まで。
その他の回答 (7)
- sige1701
- ベストアンサー率28% (74/260)
参考までに =IF(B2<>"",DAYS360(A2,IF(D2<>"",D2,IF(C2<>"",C2,B2))),"") 略して =IF(B2,DAYS360(A2,IF(D2,D2,IF(C2,C2,B2))),"")
- yhc3594
- ベストアンサー率27% (25/92)
意図されていることと違うかも知れませんが E4の値が正しくて、記述通りの動作をさせるとE3=50が正しいと思いますが・・・ *だとすれば、以下の方法(最善策か否かは別として)で如何でしょうか? E2=IF(B2="","",IF(C2="",DAYS360(A2,B2),IF(D2="",DAYS360(A2,C2),DAYS360(A2,D2)))) 以上
お礼
申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、 A B C D E 1 発注納期 修正(1) 修正(2) 修正(3) 遅延日数 2 7/9 7/21 8/4 25 3 6/7 7/28 8/5 7/27 50 4 6/22 7/28 8/7 8/9 47 でした。たいへん申し訳ございませんでした。
- mi7443
- ベストアンサー率56% (74/131)
DAYS360関数式の開始日がA2(3列目ですからA3かな?)になっていれば、当然そうなるのではないでしょうか?なにか、勘違いされているように思えるのですが? 以下蛇足 6月→(30-7=23日)、7月→(30日)、8月→(5日)、⇒23+30+5=58ですよね。
お礼
申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、 A B C D E 1 発注納期 修正(1) 修正(2) 修正(3) 遅延日数 2 7/9 7/21 8/4 25 3 6/7 7/28 8/5 7/27 50 4 6/22 7/28 8/7 8/9 47 でした。たいへん申し訳ございませんでした。
- 522923
- ベストアンサー率31% (66/212)
ご質問の内容がいまいちよく分りません。 質問者様が書かれている内容は当然の結果です。そして、私が分らないのは、質問内容である「-1」となる意味です。 質問者様が最初に書かれている、 >>A列:発注納期)に対して ↑ これは、A列の発注納期に対してどれだけの遅延日数があるのか?という事ですよね? それに対して、1つ目の修正がB列。更に修正をしたのがC列。更に更に修正をしたのがD列ですよね。 だとすると、今回の質問は 初期納期6/7に対して、3度の修正を加え遅延した最終納期は7/27となっています。 A列に対してという事は、基準が6/7に対してとなります。そしてB~Dの一番右側を選択してとなると、7/27が対象となります。普通に考えても『-1』という結果が出ること自体がおかしいです。 6/7の納期が7/27になった。その遅延日数が『-1』っておかしくないですか? 唯一考えられるのが、1回目の修正の7/28に対してであれば『-1』が出ます。 しかしこの方法だと、E2とE3の結果が変わってしまいますよ? 質問者様が、求めたい結果と、その基準、が一律で無い為に、回答のしようがありません。 E3に『-1』を出したいのであれば、A列を基準とするのではなく、B列を基準として考えるしかありません。もしくは、入力されている元の日付データが違っていませんか?
お礼
申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、 A B C D E 1 発注納期 修正(1) 修正(2) 修正(3) 遅延日数 2 7/9 7/21 8/4 25 3 6/7 7/28 8/5 7/27 50 4 6/22 7/28 8/7 8/9 47 でした。たいへん申し訳ございませんでした。
》 列B~列Dのうち一番右側を選択して計算して、 》 E3=-1 》 とするためには・・・ 「一番右側」(D3)の「7/27」とどのセルとの差を「-1」としたいのですか?
お礼
申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、 A B C D E 1 発注納期 修正(1) 修正(2) 修正(3) 遅延日数 2 7/9 7/21 8/4 25 3 6/7 7/28 8/5 7/27 50 4 6/22 7/28 8/7 8/9 47 でした。たいへん申し訳ございませんでした。
- aokii
- ベストアンサー率23% (5210/22062)
=IF(D2<>"",D2-A2,IF(C2<>"",C2-A2,IF(B2<>"",B2-A2)))
お礼
ありがとうございました。参考にさせて頂きます。
- mt2008
- ベストアンサー率52% (885/1701)
E3は、=DAYS360(A3,D4) になれば良いんですよね?その場合、-1ではなく50になりませんか? それで良ければ、E2に↓の式を入れて下にコピーして見てください。 =IF(B2="","",DAYS360(A2,LOOKUP(10^10,B2:D2)))
お礼
申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、 A B C D E 1 発注納期 修正(1) 修正(2) 修正(3) 遅延日数 2 7/9 7/21 8/4 25 3 6/7 7/28 8/5 7/27 50 4 6/22 7/28 8/7 8/9 47 でした。たいへん申し訳ございませんでした。
お礼
ありがとうございました。参考にさせて頂きます。