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

ご回答者様

いつもお世話になっております。
A2のセルに今日の日付が入っています。
B2に納品日が入っています。(数式で今日の日付+2日等)
C2にテキスト関数でB2のセルの曜日を記載しております。
土日は納品ができないので土曜日の場合は+2日して月曜日、日曜日の場合は
+1日して月曜日にした納品日をD2に記載したいと考えております。
下記まで数式を組みました。

=IFS(C2="土",B2+2,C2="日",B2+1)
土日以外の場合はB2のままと数式をD2に記載したいですがどなたかご存じではないでしょうか。
                                                                              

本来であればB2のセルに曜日が土日でなければ数式の日にちのまま、土日の場合は日付を変えるようにしたいです。

また、もしも機能として祝日も納品ができないので祝日の場合もプラス1日するなどの数式があればより助かります(ここは優先度低いです)

お手数をおかけしますが何卒宜しくお願い致します。

A 回答 (3件)

No.1、2です。



>具体的にこの機能はどのような際に利用されているのでしょうか。
>選択した範囲が今回ですと祝日とエクセルが認識するのでしょうか。

エクセルが祝日と認識するというと何だか「人口知能」みたいで大げさですが、一定のルールのもとで、「利用する側からみると休日と認識したように見える」ということです。

まず、WORKDAY関数ですが、この関数の書式の仕様として 、WORKDAY(開始日, 日数, [祝日])というふうに記述するルールです。
ここで、日数が正の数であれば開始日より後の営業日、負の数であれば開始日より前の営業日を返します。
ところが、判定日当日の翌営業日を取得するため、開始日を「判定日当日」とし日数を「0」とすると、「0」は、正の数でも負の数でもないので、WORKDAY関数は、前述のとおり開始日の前の営業日を返すのか開始日の後の営業日を返すのかわからなくなり、「判定日当日」を返してしまい意味がありません。
そこで敢えて、開始日を判定日の前日、つまり「判定日-1」とし、日数を「1」とすることで、「判定日前日の翌日の翌営業日」即ち「判定日当日の翌営業日」を取得することになります。
それが、

=WORKDAY(B2-1,1,祝日)

という数式の前半の意味です。
お尋ねの「祝日」の部分ですが、ここは実は前回回答の画像の例で言えば、「祝日」という名前を使わずに

=WORKDAY(B2-1,1,$G$2:$G$17)

と記述してもOKです。
WORKDAY関数は$G$2:$G$17にリストアップされた日付を検索して前半の「B2-1,1」つまり「判定日当日の翌営業日」を決定づけるのにこのリストに記載された日付が影響を与えるかを計算し、この日付を避けて最短直近の営業日を算出することになります。
ということで、EXCELは「祝日」を「名前の定義」に従って「$G$2:$G$17」と翻訳しているだけで祝日という意味を理解しているわけではありません。
EXCEL利用者側からみると「$G$2:$G$17」と書かれたものを見ても何のことかわかりませんが、これを「祝日」という名前を付けておけば「$G$2:$G$17という範囲に祝日の一覧がある」とわかるというわけです。

余談
名前の定義を初めてお使いになったということで、次々とあらたな疑問が浮かんでくるのはやむを得ないことだと思います。
わからないことを質問するのは構わないのですが、そうは言っても、一つの質問の「お礼」(あるいは「補足説明」)に新たなご質問をされるのはマナーとしては感心できないと思います。
まず、最初の質問で解決できたことはクローズして、新たな疑問については別のご質問としてお尋ねになる方がよろしいのではないかと思います。
    • good
    • 0

No.1です。


>祝日の設定以外はうまくできました。
>範囲に「祝日」という名前をつけておくものとします。
>ですが具体的にリストとはどういうイメージで作成すればよろしいでしょうか。

添付画像をごらんください。D2に
=WORKDAY(B2-1,1,祝日)
という数式を記述しています。
この例は同じシートに休日一覧を作成し、その範囲に祝日という名前を付けています。複数年分作成しておくこともできます。
別シートに作成しても「祝日」という名前をつければOKです。
「ISF関数 特定の条件以外 エクセル 数」の回答画像2
    • good
    • 0
この回答へのお礼

お世話になっております。
ありがとうございます。
意図していたことができました。
お手数をおかけしました。
初めて名前というものを使いました。
数式タブからクリックしましたが具体的にこの機能はどのような際に利用されているのでしょうか。
選択した範囲が今回ですと祝日とエクセルが認識するのでしょうか。

お礼日時:2021/05/26 23:15

ご質問者のご希望を実現するためには、一般的にはWORKDAY関数を使います。


該当日が土日祝日にあたる場合、翌営業日を返す関数です。
「祝日」も考慮するとなると、まず、祝日の一覧が必要です。カレンダーによる法定休日のほか、自社の独自のお休みがあればこれも含めて「2021/●●/●●」という形で、リストを作成し、その範囲に「祝日」という名前をつけておくものとします。
C2に
=WORKDAY(B2-1,1,祝日)
という数式を記述すれば、当日がお休みの場合翌営業日を返しますので、ご質問者のご希望が叶うと思います。
    • good
    • 0
この回答へのお礼

お世話になっております。
祝日の設定以外はうまくできました。

範囲に「祝日」という名前をつけておくものとします。

ですが具体的にリストとはどういうイメージで作成すればよろしいでしょうか。
何卒宜しくお願い致します。

お礼日時:2021/05/26 21:36

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