- ベストアンサー
Excelで第一〇曜日を求める方法がわかりません
- Excelファイルで次月作業日程(何月何日何曜日)を載せるための数式がわかりません。
- 現在は手入力でカレンダーを確認しながら日程を入力していますが、自動表示したいです。
- 調査した結果、特定の日を求めるために=DATE(YEAR(B2),MONTH(B2)+1,1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+1の数式が使えることが分かりましたが、第一週の始まりが日曜日に限定されているようです。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
質問の式を使うのはやめます。 これ、全部一般的にうまくいくように関数で表現するのは、面倒です。たとえば、5週目の曜日はうまく出ない。これを避けるのはできないこともないが、関数でやるのは生産的ではないでしょう。 で、第4週分、28曜日(4週目土曜日)までを出すことにして、それ以上は、保証しないとすれば、次式ではどうでしょう。 =IF(WEEKDAY(EOMONTH(B2,0)+1)>IF(MOD($C$1,7)=0,7,MOD($C$1,7)),EOMONTH(B2,0)+1-WEEKDAY(EOMONTH(B2,0)+1)+7+$C$1,EOMONTH(B2,0)+1-WEEKDAY(EOMONTH(B2,0)+1)+$C$1) $C$1に曜日の数値を入れます。どこでも適当に決めるか、直接曜日を表す数値を入れても構わないが、4つありますね。 第1週 1~7 第2週 8~14 第3週 15~21 第4週 22~28 第5週 29~ やめといたほうがいい
その他の回答 (10)
- jk7343tfg
- ベストアンサー率16% (2/12)
他の回答を読まずに回答してすみませんでした。 第n曜日は =DATE(YEAR(B2),MONTH(B2)+1,8+(n-1)*7-WEEKDAY((YEAR(B2),MONTH(B2),A))) 但しAは 日曜日の時 7 月曜日の時 6 火曜日の時 5 水曜日の時 4 木曜日の時 3 金曜日の時 2 土曜日の時 1
お礼
jk7343tfgさん ありがとうございます。 こんなにたくさんの方々に回答いただけると思いませんでした。 皆さん詳しいですね。羨ましい。 こちらの回答でもやりたい事ができました。 ありがとうございました!
- jk7343tfg
- ベストアンサー率16% (2/12)
来月の日程が第一土曜日の場合 =DATE(YEAR(B2),MONTH(B2)+1,8-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1)))
- minosennin
- ベストアンサー率71% (1366/1910)
#3です。 曜日の指定をフレキシブルに行うため、B3に曜日の番号を入力しておくものとします。例:日曜="1" =DATE(YEAR(B2),MONTH(B2)+1,1) +IF(WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)<=B3, B3-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1),B3+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1))
お礼
何度もありがとうございました! こちらでも出来ました。 ベストアンサーは二つ付けられないのですね。。。 同じくらいベストアンサーなのですが。。。 minosenninさんまた何かありましたら宜しくお願い致します!
- kagakusuki
- ベストアンサー率51% (2610/5101)
B2セルに 2012/10/8 と入力されている場合において、2012/10/8は2012年10月の第2月曜日ですから、翌月の第2月曜日である2012/11/12を求める関数は次の様なものとなります。 =IF(ISNUMBER(1/DAY(B2)),DATE(YEAR(B2),MONTH(B2)+1,1)+MOD(WEEKDAY(B2,3)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),3),7)+INT((DAY(B2)-1)/7)*7,"") 尚、この関数では、B2セルに第5○曜日の日付を入力した場合で、且つ、翌月に5週目のその曜日の日が存在しない場合には、翌々月の第1○曜日が表示される事になります。 また、例えば、2012年10月の第2月曜日を求める際に、 B1セルに「2012」といった西暦年数、 C1セルに「10」といった月を表す数、 D1セルに「2」といった第何番目の曜日かを表す数、 E1セルに「月」といった曜日 を入力するとしますと、目的の日付を求める関数は次の様なものとなります。 =IF(ISNUMBER((B1&"/"&C1&"/"&FIND(E1,"月火水木金土日"))+0),DATE(B1,C1,1)+MOD(FIND(E1,"月火水木金土日")-1-WEEKDAY(DATE(B1,C1,1),3),7)+(D1*7-7),"") 尚、上記の関数で、第5○曜日を求めようとした際に、その月には第5○曜日が無い場合には、翌月の第1○曜日が表示される事になります。
お礼
ありがとうございます。 こちらもすごい関数ですね。上手く利用できれば一番便利かもです。。。 ただ現状B2のセルには前月の作業日程日は入れていません。 送付状を送るお客様ごとの締日が入力されているため、その日付から年・月を読み取って来月の日程を自動で表示させたいです。 ただ、この関数も上手く使えるように検討してみます。 ありがとうございました。
- minosennin
- ベストアンサー率71% (1366/1910)
#3です。第一水曜日の表示はこんな感じでいかがでしょうか。 =DATE(YEAR(B2),MONTH(B2)+1,1) +IF(WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)<=4, 4-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1),11-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1))
お礼
素晴らしいい! ありがとうございます! 凄い知識ですね。。。 第一水曜日と第一土曜日の関数の違いの法則がわからないため、他の曜日の出し方が分かりません。。。 他の曜日はどのように出せば良いですか? お忙しい中大変恐縮ですが、宜しくお願いします。
- minosennin
- ベストアンサー率71% (1366/1910)
#3です。 曜日の形式を日曜始まりに変更すれば、もっと簡単になります。 =DATE(YEAR(B2),MONTH(B2)+1,1) +7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)
お礼
minosenninさん ありがとうございます! 第一土曜日は出来ました! ただ、第一水曜日などに応用するため、 =DATE(YEAR(B2),MONTH(B2)+1,1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)+4で試した所 B2のセルに2011/10/1と入れてみた所、11月9日の第2水曜日が表示されてしまいました。 種類を変えればいいのかと思い以下の式を入れてみましたが、=DATE(YEAR(B2),MONTH(B2)+1,1) +7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),13)+1 B2のセルに2011/05/01と入れた所2011年06月08日と表示されてしまいました。 何かうまい方法はございますでしょうか。 何度もすいません宜しくお願いします。
- okormazd
- ベストアンサー率50% (1224/2412)
#1です。 たびたびすみません。B列にどのようなデータがあるのかわからないので。 土曜日でしたね。たぶん、 =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)+7 ですかね。
お礼
okormazdさん 何度も返答ありがとうございます! 試した所出来ました。 ただ、これを第一月曜日などに応用する場合は =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)+2ですかね。 試した所、前の月の末日が出てしまう場合があります。 どのような式を入れればいいですか? たびたびすいません。
- minosennin
- ベストアンサー率71% (1366/1910)
式を、1日が土曜日以前の場合と日曜日に分けて対応すればよいようです。 =DATE(YEAR(B2),MONTH(B2)+1,1) +IF(WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)<7, 6-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2),6)
- okormazd
- ベストアンサー率50% (1224/2412)
#1です。 ごめんなさい。 確認したら、ちょっとまずいところがあります。修正しなければだめですね。
- okormazd
- ベストアンサー率50% (1224/2412)
ほかの式もあるが質問の式を使いたいなら、 +7で第2をとっている。 第1を欲しかったら+0、第3なら+14という具合だから、 =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+6 でどうだ?
お礼
okormazdさん ありがとうございました! こんなに短時間で解決できるとは。。。 皆さんのおかげです! 分かり易い回答ありがとうございました。 また何かありましたら、どうぞよろしくお願いいたします。