• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel エクセルIF関数の作り方を教えて下さい)

ExcelのIF関数を使用した修正と遅延日数の計算方法

このQ&Aのポイント
  • ExcelのIF関数を使用して、発注納期に修正がある場合、修正最終日と遅延日数を計算する方法を教えてください。
  • IF関数を使用して列B〜列Dの修正日を比較し、一番右側の修正日を選択して遅延日数を計算する方法を教えてください。
  • ExcelのIF関数を使って、発注納期に修正がある場合は一番右側の修正日を選択し、それに対応する遅延日数を計算する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.1

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)
回答No.8

参考までに =IF(B2<>"",DAYS360(A2,IF(D2<>"",D2,IF(C2<>"",C2,B2))),"") 略して =IF(B2,DAYS360(A2,IF(D2,D2,IF(C2,C2,B2))),"")

gegegenokitaro
質問者

お礼

ありがとうございました。参考にさせて頂きます。

  • yhc3594
  • ベストアンサー率27% (25/92)
回答No.7

意図されていることと違うかも知れませんが E4の値が正しくて、記述通りの動作をさせるとE3=50が正しいと思いますが・・・ *だとすれば、以下の方法(最善策か否かは別として)で如何でしょうか? E2=IF(B2="","",IF(C2="",DAYS360(A2,B2),IF(D2="",DAYS360(A2,C2),DAYS360(A2,D2)))) 以上

gegegenokitaro
質問者

お礼

申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、    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)
回答No.6

DAYS360関数式の開始日がA2(3列目ですからA3かな?)になっていれば、当然そうなるのではないでしょうか?なにか、勘違いされているように思えるのですが? 以下蛇足 6月→(30-7=23日)、7月→(30日)、8月→(5日)、⇒23+30+5=58ですよね。

gegegenokitaro
質問者

お礼

申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、    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)
回答No.5

ご質問の内容がいまいちよく分りません。 質問者様が書かれている内容は当然の結果です。そして、私が分らないのは、質問内容である「-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列を基準として考えるしかありません。もしくは、入力されている元の日付データが違っていませんか?

gegegenokitaro
質問者

お礼

申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、    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 でした。たいへん申し訳ございませんでした。

noname#204879
noname#204879
回答No.4

》 列B~列Dのうち一番右側を選択して計算して、 》 E3=-1 》 とするためには・・・ 「一番右側」(D3)の「7/27」とどのセルとの差を「-1」としたいのですか?

gegegenokitaro
質問者

お礼

申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、    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)
回答No.3

=IF(D2<>"",D2-A2,IF(C2<>"",C2-A2,IF(B2<>"",B2-A2)))

gegegenokitaro
質問者

お礼

ありがとうございました。参考にさせて頂きます。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

E3は、=DAYS360(A3,D4) になれば良いんですよね?その場合、-1ではなく50になりませんか? それで良ければ、E2に↓の式を入れて下にコピーして見てください。 =IF(B2="","",DAYS360(A2,LOOKUP(10^10,B2:D2)))

gegegenokitaro
質問者

お礼

申し訳ございません。元のデータが誤っておりました。 ご指摘の通り、    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 でした。たいへん申し訳ございませんでした。

関連するQ&A

専門家に質問してみよう