『関数を教えてください。』(りんご) A B  C   D    E 1 区分 工期  作業日  工期超過 超過日数 2 至急 23/01/01 23/01/01 3 至急 23/01/01 23/01/02    1 4 至急 23/01/01    11 5 急 23/01/10 23/01/09 6 急 23/01/10 23/01/11    1 7 急 23/01/10    2 8 準急 23/01/10 23/01/09 9 準急 23/01/10 23/01/11    1 10 準急 23/01/10    2 下記の条件の関数をE列に設定したいのですが条件が難しくてIF関数とか どうやって組み合わせたらよいのかわからないので教えて頂けませんか? 1. A列が至急の場合、B列の工期の日付とC列の作業日の日付が同日であれば E列の超過日数は空白 C列の作業日の日付がB列の工期の日付を超過した場合は超過日数を表示 ただしC列の作業日の日付が空白でB列の工期を超過していた時は本日までの 超過日数を表示 2. A列が急の場合、C列の作業日の日付がB列の工期の日付内であればE列の超過日数は空白 C列の作業日の日付がB列の工期の日付を超過した場合は超過日数を表示 さらにC列の作業日の日付が空白でB列の工期を超過していた時は本日までの超過日数を表示 3. A列が準急の場合、C列の作業日の日付がB列の工期の日付内であればE列の超過日数は空白 C列の作業日の日付がB列の工期の日付を超過した場合は超過日数を表示 さらにC列の作業日の日付が空白でB列の工期を超過していた時は本日までの超過日数を表示 よろしくお願いします。 < 使用 Excel:Excel2010、使用 OS:Windows10 > ---- 至急、急、準急 やりたいことの違いは何なんですか? 以上、確認だけ (笑) 2023/01/12(木) 12:32:08 ---- 笑さま コメントありがとうございます。 作業の完了までの日数が決まっておりまして 至急⇒当日作業完了 急 ⇒6日以内に作業完了 準急⇒半年以内に作業完了 という感じです。 ちなみに工期は受付日からの上記のルールに基づいた工期が 表示されている状態です。 質問させて頂くのに必要な部分のみサンプルデータとして 載せて頂きました。 (りんご) 2023/01/12(木) 12:49:53 ---- 条件の違いを聞いてるんですけど・・・ 3つとも ↓ では? >C列の作業日の日付がB列の工期の日付を超過した場合は超過日数を表示 >ただしC列の作業日の日付が空白でB列の工期を超過していた時は本日までの超過日数を表示 それと・・・ 至急の場合 >B列の工期の日付とC列の作業日の日付が同日であれば 急と準急 >C列の作業日の日付がB列の工期の日付内であれば この2つはどう違うんですか? 同日と日付内? 以上 (笑) 2023/01/12(木) 13:02:17 ---- 笑さま うまく説明が出来ていなくてすみません。 >3つとも ↓ では? >C列の作業日の日付がB列の工期の日付を超過した場合は超過日数を表示 >ただしC列の作業日の日付が空白でB列の工期を超過していた時は本日までの超過日数を表示 ⇒はいそうです。 >至急の場合 >B列の工期の日付とC列の作業日の日付が同日であれば・・・ ⇒基本、至急は工期の日付に作業するので"同日"という表現をしました。 >急と準急 >C列の作業日の日付がB列の工期の日付内であれば・・・ ⇒急と準急に関しては、工期の日付よりも早い日付で作業を完了するときもあるので "日付内"という表現で質問させて頂きました。 (りんご) 2023/01/12(木) 13:28:15 ---- 笑さま すみません。伝わりましたでしょうか? (◞‸◟) (りんご) 2023/01/12(木) 13:31:01 ---- 至急の場合 ↓ なケースはない、ということ? >工期の日付よりも早い日付で作業を完了 だとしたら、A列の区分が何であろうと、やることは全部同じですよね。 E2 =IF(OR(B2="",B2>=IF(C2="",TODAY(),C2)),"",IF(C2="",TODAY(),C2)-B2) または E2 =IF(B2="","",IFERROR(TEXT(IF(C2="",TODAY(),C2)-B2,"0;;")*1,"")) 下コピー こういうこと? 少なくとも例示通りにはなります。 以上 (笑) 2023/01/12(木) 14:07:19 ---- 笑さま テストデータで希望する結果が表示されました。 分かりにくい説明でご指示頂きありがとうございました。 (>_<) (りんご) 2023/01/12(木) 14:22:24