• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで第一〇曜日を求める方法がわかりません)

Excelで第一〇曜日を求める方法がわかりません

このQ&Aのポイント
  • Excelファイルで次月作業日程(何月何日何曜日)を載せるための数式がわかりません。
  • 現在は手入力でカレンダーを確認しながら日程を入力していますが、自動表示したいです。
  • 調査した結果、特定の日を求めるために=DATE(YEAR(B2),MONTH(B2)+1,1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+1の数式が使えることが分かりましたが、第一週の始まりが日曜日に限定されているようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.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~ やめといたほうがいい

yura20060403
質問者

お礼

okormazdさん ありがとうございました! こんなに短時間で解決できるとは。。。 皆さんのおかげです! 分かり易い回答ありがとうございました。 また何かありましたら、どうぞよろしくお願いいたします。

その他の回答 (10)

  • jk7343tfg
  • ベストアンサー率16% (2/12)
回答No.10

他の回答を読まずに回答してすみませんでした。 第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

yura20060403
質問者

お礼

jk7343tfgさん ありがとうございます。 こんなにたくさんの方々に回答いただけると思いませんでした。 皆さん詳しいですね。羨ましい。 こちらの回答でもやりたい事ができました。 ありがとうございました!

  • jk7343tfg
  • ベストアンサー率16% (2/12)
回答No.9

来月の日程が第一土曜日の場合 =DATE(YEAR(B2),MONTH(B2)+1,8-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1)))

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.8

#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))

yura20060403
質問者

お礼

何度もありがとうございました! こちらでも出来ました。 ベストアンサーは二つ付けられないのですね。。。 同じくらいベストアンサーなのですが。。。 minosenninさんまた何かありましたら宜しくお願い致します!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

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○曜日が表示される事になります。

yura20060403
質問者

お礼

ありがとうございます。 こちらもすごい関数ですね。上手く利用できれば一番便利かもです。。。 ただ現状B2のセルには前月の作業日程日は入れていません。 送付状を送るお客様ごとの締日が入力されているため、その日付から年・月を読み取って来月の日程を自動で表示させたいです。 ただ、この関数も上手く使えるように検討してみます。 ありがとうございました。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.6

#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))

yura20060403
質問者

お礼

素晴らしいい! ありがとうございます! 凄い知識ですね。。。 第一水曜日と第一土曜日の関数の違いの法則がわからないため、他の曜日の出し方が分かりません。。。 他の曜日はどのように出せば良いですか? お忙しい中大変恐縮ですが、宜しくお願いします。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.5

#3です。 曜日の形式を日曜始まりに変更すれば、もっと簡単になります。 =DATE(YEAR(B2),MONTH(B2)+1,1) +7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)

yura20060403
質問者

お礼

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)
回答No.4

#1です。 たびたびすみません。B列にどのようなデータがあるのかわからないので。 土曜日でしたね。たぶん、 =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)+7 ですかね。

yura20060403
質問者

お礼

okormazdさん 何度も返答ありがとうございます! 試した所出来ました。 ただ、これを第一月曜日などに応用する場合は =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),1)+2ですかね。 試した所、前の月の末日が出てしまう場合があります。 どのような式を入れればいいですか? たびたびすいません。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.3

式を、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)
回答No.2

#1です。 ごめんなさい。 確認したら、ちょっとまずいところがあります。修正しなければだめですね。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

ほかの式もあるが質問の式を使いたいなら、 +7で第2をとっている。 第1を欲しかったら+0、第3なら+14という具合だから、 =DATE(YEAR(B2),MONTH(B2)+1,1)-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+6 でどうだ?