現在セルB1には『A1に入力した日の月末日付+月末休日の場合は前日』が出るようにしてあります。
セルA1 = 日付
セルB1 = IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=1,(DATE(YEAR(A1),MONTH(A1)+1,0))-2,IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=7,(DATE(YEAR(A1),MONTH(A1)+1,0))-1,DATE(YEAR(A1),MONTH(A1)+1,0)))
ここに『A1が25日以降の場合は翌月20日+翌月20日が休日の場合は後日』という設定を加えたいのですが、可能でしょうか?
・A1 = 2011/07/10 → (結果) B1 = 2011/07/29(金)
・A1 = 2011/07/25 → (結果) B1 = 2011/08/22(月)
どうしても不可能であれば別セル(C1など)でも構いません。
No.1ベストアンサー
- 回答日時:
こんにちは!
休日は土日だけで祝日は考慮しなくて良いわけですよね?
一例です。
せっかく数式をお考えですが、
表示したいセルに
=IF(DAY(A1)>24,WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,20)-1,1),WORKDAY(EOMONTH(A1,0)+1,-1))
(エラー処理はしていません)
としてみてはどうでしょうか?
尚、WORKDAY関数・EOMONTH関数を使用するにあたり、当方使用のExcel2003以前のバージョンでは
メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。
以上、参考になれば良いのですが
他に良い方法があればごめんなさいね。m(_ _)m
ご回答ありがとうございました。
できました!!
当方のExcel2000でも「分析ツール」にチェックを入れておかないといけないようです。
「WORKDAY」「EOMONTH」はどちらも使い方が分からない関数なので提示していただいた数式は理解できませんが、非常にシンプルな数式で良いですね。
No.2
- 回答日時:
=IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0)-IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)>5,WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)-5),DATE(YEAR(A1),MONTH(A1)+1,20)+IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2)>5,8-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2),0))
1つのセルで計算しようとすると、こんな感じですかね。
ただ、長すぎて、他の人がメンテナンスするときに困りそうですね。
作業セル(隠しセル)を使ったほうが、解りやすいかもしれませんね。
C1で、休日を無視した日付を計算して、
=IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0),DATE(YEAR(A1),MONTH(A1)+1,20))
B1に、休日の条件も踏まえた日付を表示するとか。
=IF(WEEKDAY(C1,2)<=5,C1,IF(DAY(A1)<25,C1-(WEEKDAY(C1,2)-5),C1+(8-WEEKDAY(C1,2))))
そうすれば、セルの数は増えますが、入力する式の長さは半分くらいに減ります。その上、他の人にも(あなた自身にも)解りやすくメンテナンスしやすいと思います。
C1は別のセルでも良いです。
目に付かないセルにするなり、文字を白くするなりしても良いでしょう。
ご回答ありがとうございました。
できました!!
やはり1つのセルで処理しようとすると長~い式になってしまいますね。
>長すぎて、他の人がメンテナンスするときに困りそうですね
確かに・・・
作業セル(隠しセル)を使った方の数式では、はじめ見た時はB1が理解できませんでしたが、調べたら1=月曜日から始まる場合もあるなんて初めて知りました。勉強になりました。
初心者の当方にはこちらの数式が分かりやすいと思いましたが1番の方の数式がシンプルなので、大変申し訳ありませんが1番の方をベストアンサーとさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで月末、月初の判定をしたい。 4 2022/05/18 23:22
- Excel(エクセル) Excel ある日の45日後の計算 及び 3か月後の計算 6 2022/04/05 13:44
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Excel(エクセル) エクセルで期間に入っているかどうかの判定 4 2022/10/04 22:17
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
Excelのチェックボックスの使い...
-
エクセル オートフィルタで絞...
-
Excelで住所を2つ(町名迄と番...
-
セルに特定の色が付いていたら...
-
枠に収まらない文字を非表示に...
-
Excel:指定セル以下全てのセル...
-
貼り付けで複数セルに貼り付けたい
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルの一つのセルに複数の...
-
Excelで、「特定のセル」に入力...
-
Excelでのコメント表示位置
-
【Excel】 セルの色での判断は...
-
エクセルで縦に1112223...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報