プロが教える店舗&オフィスのセキュリティ対策術

Excel1901の相談、毎月の月末営業日(土、日、
祝祭日は除く)には数字を1(1月末),2(2月末),3(3月末),・・・と表示してくれる数式を教えて下さい、出来れば年間カレンダーなしで出来れば良いのですが・・・、
今はINT(DATEDIF("2020/12/31",WORKDAY(B2+1,-1,B46:B95),"M")/1)にしましたがうまく行きません、(B2=TODAY(),B46:B95は年間祝祭日)よろしくお願いします。

質問者からの補足コメント

  • 申し訳ございません、説明不足でした。私の思いは、今年1月1日よりスタートし、B2(本日)までに月末営業日の当日が来たらカウントし、積算表示するだけです。それぞれ1月は28日(金)、2月は26日(金)、3月31(水)、4月30日(金)が来たらカウント数が増えるだけで良いんです、よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/05/02 23:22

A 回答 (5件)

No.4です。


>ありがとうございます、うまく行きました、B46:B95は無くてもOKでした。

とのことですが、それは偶然です。
たまたま、今年は4月29日が木曜日で月末営業日に影響を与えなかっただけです。
もし、4月29日が金曜日の年なら、ここが祝日になることにより4月28日(木)が最終営業日になるので、4月28日が来たら+1しなくてはいけません。
「B46:B95は無くても」ということは、これを無視することになりますので、お勧めできません。
ちなみに来年(2022年)が、まさしく4月29日が金曜日です。
    • good
    • 0
この回答へのお礼

助かりました

誠にありがとうございました、勝手に早とちりするところでした。実際22年の日付け(4/28~29)を入れてみました、ご指摘の通りでした。

お礼日時:2021/05/05 20:51

No.2さん、No.3さんにより既に答えが出でいますので、数式だけ提示します。



>今年1月1日よりスタートし、B2(本日)までに月末営業日の当日が来たらカ
>ウントし、積算表示するだけです。

ということは、年初は「0」からスタートして、1月末営業日が来たら+1されて「1」になり、以降月末営業日が来るたびに+1されるということだと思います。カウントを表示するセルに以下の数式を記述すればよいと思います。

=IF(B2<WORKDAY(EOMONTH(B2,0)+1,-1,B46:B95),MONTH(B2)-1,MONTH(B2))
    • good
    • 1
この回答へのお礼

助かりました

ありがとうございます、うまく行きました、B46:B95は無くてもOKでした。
感謝申し上げます。

お礼日時:2021/05/05 09:59

今年の1月28日が金曜日?


まぁ、それは置いておいて・・・。

仕様としては、こんな感じです。
「当日が属する月を表示する。ただし、当日が、当日が属する月の月末営業日より前の場合、-1 する」

「当月が属する月」は、Month関数で求めることができます。
「当日が属する月の月末営業日」は、WORKDAY関数とEOMONTH関数を使って求めることができます。こんな感じです。
WORKDAY(EOMONTH(TODAY(),0)+1,-1,B46:B95)
上記を組み合わせて、仕様を実現してみて下さい。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました、おかげさまで解決いたしました。

お礼日時:2021/05/05 10:00

こんばんは



なさりたいことがイマイチよくわかりませんけれど・・・

>年間カレンダーなしで出来れば良いのですが
から推測すると、
『B2セルの日付が月末営業日かどうかを判定し、その月の数字を表示したい』
ということなのでしょうか?

簡単にやるなら、
=IF(MONTH(B2)<>MONTH(WORKDAY(B2,1,B46:B95)),MONTH(B2),"")
上式だと、「月末営業日」以降のその月の日付(土日祝日など)がB2にある場合も、月数が表示されます。

B2が「月末営業日」の場合にだけ、月数を表示したい場合は、
=IF(AND(MONTH(B2)<>MONTH(WORKDAY(B2,1,B46:B95)),WORKDAY(B2-1,1,B46:B95)=B2),MONTH(B2),"")
としておけばよろしいかと。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました、おかげさまで解決いたしました。

お礼日時:2021/05/05 10:02

どうしたいのかイメージが伝わってこないです。


具体的な結果イメージのスクリーンショットをアップしていただけますか?
5月だと最数営業日である「5/31」の隣のセル(?) に「5」と表示するの?

とりあえず、
=WORKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),-1,B46:B95)

で最終営業日(日付)が求められるでしょ。
単純にMONTHで囲めば最終営業日の「月」が出せるし
=MONTH(WORKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),-1,B46:B95))

DAYで囲めば最終営業日の「日」が出せるけど。
=DAY(WORKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),-1,B46:B95))
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました、おかげさまで解決いたしました。

お礼日時:2021/05/05 10:01

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