• ベストアンサー

Excelで指定の曜日の日付を表示する。

Excelで、第1、2、3火曜日の日付を表示させたいのですが、便利な関数はありますか? 教えてください! また、第1、2、3火曜日と第3木曜日の日付を表示させるこおもできればなお良いのですが。。 よろしくお願い致します。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.5

  A  B  C   D 1 年 2008   該当日 2 月   8   2008/08/21 3 第   3 4 曜 木 D2: =DATE(B1,B2,B3*7-WEEKDAY(DATE(B1,B2,-FIND(B4,"月火水木金土日")+1),3)) 上の該当日は 2008年8月の第3木曜の日付を表示しています。 セル D2 を“ユーザー定義”で d に書式設定すれば 21 が表示されます。

その他の回答 (4)

回答No.4

x年y月の第z火曜日を求めるために、まずweekday(date(x,y,1),2)を 考えます。各月の1日が月曜から日曜まで変動すると、上記の式の値 は1~7まで変動し、それぞれ第一火曜日の日付は2,1,7,6,5,4.3と変 動します。これをじっと眺めると、 =7-mod(weekday(date(x,y,1),2)+4, 7) という式を思いつきます。これで第一火曜日が計算できたので、第 二火曜日はその7日後、第三火曜日は14日後ということで、 =z*7-mod(weekday(date(x,y,1),2)+4, 7) でオッケー。昔、万年カレンダーの祝日表を作った時の遺産です。 応用として、+5が月曜日、+3が水曜日で、当然木曜日は+2になりま す。

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.3

A1に年、A2に月があるとすると 第1火曜日 =IF(WEEKDAY(DATE(A1,B1,1))>2,10-WEEKDAY(DATE(A1,B1,1)),3-WEEKDAY(DATE(A1,B1,1))) あとは簡単にC1に第1火曜日の数式を入れているとすると 第2火曜日 =C1+7 第3火曜日 =C1+14 第1木曜日 =C1+2 第2木曜日 =C1+9 第3木曜日 =C1+16 第1火曜日以外の数式を単独で出したいときはC1に足している数字を式にある数字に加えたらいいです。たとえば第2火曜日は「C1+7」なので =IF(WEEKDAY(DATE(A1,B1,1))>2,17-WEEKDAY(DATE(A1,B1,1)),10-WEEKDAY(DATE(A1,B1,1))) となります。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 A1に年月(表示形式がyyyy"年"m"月")が入力されているとします。 ■第1,2,3火曜日 B1に=IF(WEEKDAY($A1,2)>2,$A1+9-WEEKDAY($A1,2),IF(WEEKDAY($A1,2)<2,$A1+2-WEEKDAY($A1,2),$A1)) C1に=B1+7 D1に=C1+7 ■第3木曜日 E1に=IF(WEEKDAY($A1,2)>4,$A1+11-WEEKDAY($A1,2),IF(WEEKDAY($A1,2)<4,$A1+4-WEEKDAY($A1,2),$A1))+14

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

ほかにもっとスマートな方法があるのではないかと思いますが、とりあえず今月の第1火曜日を求める式です。 =DATE(YEAR(TODAY()),MONTH(TODAY()),1)+CHOOSE(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY()),1)),2,1,0,6,5,4,3) 第2火曜日なら2,1,0,6,5,4,3の部分を、 9,8,7,13,12,11,10 第3火曜日なら2,1,0,6,5,4,3の部分を、 16,15,14,20,19,18,17 に変えてください。 まず当月(本日の属する月)の1日が何曜日か調べ、それによって当月1日に必要な数を加える式です。

関連するQ&A

専門家に質問してみよう