プロが教えるわが家の防犯対策術!

こんにちわ
エクセル365 を使用しています。

WORKDAY関数かな?とは思うのですが、中々うまく結果が表示されないので教えてください。

  Aセル  Bセル  Cセル   Dセル
1 リンゴ  東京  2023/6/5 23/6/7
2 みかん  東京  2023/6/1 23/6/5
3 梨    東京  (空白)   23/6/10
4 メロン (空白)  2023/6/1 23/6/2
5 リンゴ (空白)  (空白)   23/6/9

E1セル 2023/6/8(当日の日付)

といった表があるのですが
①Bセル・Cセル=入力あり だったら、DセルはCセル+2日後の日付
②Bセル=入力あり、Cセル=入力なし だったら、Dセルは当日の日付(E1)+2日後の日付
③Bセル=入力なし、Cセル=入力あり だったら、DセルはCセル+1日後の日付
④Bセル・Cセル=入力なし だったら、Dセルは当日の日付(E1)+1日後の日付
(①~④全部、土日祝日は除く)

という結果をDセルに出したいのですが、どのような式を組んだらいいか教えてください。


=IF(C1="",WORKDAY(E1,1),IF(C1<>"",WORKDAY(C1,1),IF(AND(B1<>"",C2=""),WORKDAY(E1,2),IF(AND(B1<>"",C1<>""),WORKDAY(C1,2),""))))
一応、こんな式を作ってはみたのですが、全然違う結果がでてしまいます・・・。

よろしくお願いします。

A 回答 (4件)

IF関数を用いなくても数式が書けるという意味での投稿です。



今迄回答された数式には祝日の考慮がもれている気がします。

祝日リストは同一シート(別シートでも可)に祝日日付(シリアル値で入力)の一覧表を作成して当該日付のセル範囲に「祝日」という名前を付けておくものとします。

D1セルに

=WORKDAY(C1+E$1*(C1=""),1+(B1<>""),祝日)

という数式を記述して、下方向へコピーでも、今までのみなさんの回答と同じ結果が得られると思います。

但し、ご質問者のいう「入力なし」(空白)は数式で表示されたもの(例えば="")ではなく、完全な未入力を指すものとします。
    • good
    • 0

=IF(


  C1=""
  ,WORKDAY(E1,1)    ← B列の値に関係なく「+1」が決定
  ,IF(
    C1<>""
    ,WORKDAY(C1,1),   ← B列の値に関係なく「+1」が決定
    IF(          ← そのため、ここまで来ない
      AND(B1<>"",C2="")
      ,WORKDAY(E1,2)
      ,IF(
        AND(B1<>"",C1<>"")
        ,WORKDAY(C1,2)
        ,""
        )
      )
    )
  )
    • good
    • 0
この回答へのお礼

早々の回答をありがとうございます。

こちらの式でも結果が出ました。
ありがとうございます。

お礼日時:2023/06/08 15:30

1、


 IF( AND(B<>"",C<>"") , C+2 , False)

2、
 IF( AND(B<>"",C="") , E1+2 , False)

3、
 IF( AND(B="",C<>"") , C+1 , False)

4、
 IF( AND(B="",C="") , E1+1 , False)

まあ見た感じ、
 B列の値で 加える日数が決まり、
 C列の値で E1の値を使うか C列の値を使うかが決まる、
って感じのようです。

 =IF(B1="",1,2)+IF(C1="",E1,C1)

こんなんでも良いんじゃないのかな。
土日祭日を考慮してWORKDAY関数を使うなら

 =WORKDAY( IF(C1="",E1,C1) , IF(B1="",1,2) )

こんな感じになる。
 ※ WORKDAY関数の2つ目のパラメータをIF関数で返すのは、前述の条件を統一し、視覚的に分かりやすくするためで、
  No.1の回答者さんのような処理をしても大丈夫。

……というように条件をまとめることを覚えてみましょう。
意外と簡単な数式に置き換えることができたりします。
    • good
    • 0
この回答へのお礼

早々の回答をありがとうございます。

教えて頂いた式で結果が出ました!
ありがとうございました。

お礼日時:2023/06/08 15:29

こんにちは



説明の文章を元に作成してみました。
D1セルに
 =WORKDAY(IF(C1="",E$1,C1),1+(B1<>""))
ではいかがでしょうか?

※ D3セルの結果は、ご提示の値(2023/6/10)とは異なり、2023/6/12 となってしまいますが、ご説明の文章には合っていると思いますけれど・・
    • good
    • 0
この回答へのお礼

早々の回答をありがとうございました。

無事に結果が出ました!!
ありがとうございます。

>ご提示の値(2023/6/10)とは異なり、2023/6/12
土日祝を除く・・・なので6/12で合っていますね。
すみませんでした。
ありがとうございます。

お礼日時:2023/06/08 15:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!