- 締切済み
Excelで出欠簿を作成する際に自動で特定の日付を入れたい
Excelで出欠簿を作成する際に自動で特定の日付を入れたいと思っています。 参加者はA列のA3~A10にあるとして、A1に2009年とし、B1に月を入力すると、 2行目のB2にその月の月曜日の日付、B2に木曜日の日付、C2に土曜日の日付を自動で入れることが出来ないかと悩んでおります。 検索しましたが、 このような抜き出した形でのやり方が見つけられませんでした。 お手数ですか、 ご経験やお分かりになる方がいらっしゃったらご教授いただけると助かります。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- BrueBreeze
- ベストアンサー率52% (83/159)
A2セルに =DATE(A1,B1,1)+MOD(2-WEEKDAY(DATE(A1,B1,1)),7)
- gyouda1114
- ベストアンサー率37% (499/1320)
回答番号:No.4は、取り消して下さい。 うまく表示されません
お礼
いろいろと骨をおってくださり、 ありがとうございます。
- gyouda1114
- ベストアンサー率37% (499/1320)
回答番号:No.1です No.1の式では、2009年6月のように(第1月曜日が1日)のとき、1日と表示されません。 ちょっと長い式になりますが修正です。 A2に 第1月曜日 =IF(DATE($A$1,$B$1,1)+7-WEEKDAY(DATE($A$1,$B$1,1),3)>=8,DATE($A$1,$B$1,1)-WEEKDAY(DATE($A$1,$B$1,1),3),DATE($A$1,$B$1,1)+7-WEEKDAY(DATE($A$1,$B$1,1),3))
- DOUGLAS_
- ベストアンサー率74% (397/534)
お示しの条件と少し異なりますが、こんなことでもよいのでは? Sub Macro1() Dim i As Byte Range("C1:P2").Clear For i = 1 To Day(DateSerial(Range("A1"), Range("B1") + 1, 0)) Select Case Weekday(DateSerial(Range("A1"), Range("B1"), i)) Case 2, 5, 7 With Range("A1").End(xlToRight) .Offset(0, 1) = i .Offset(1, 1) = Format(DateSerial(Range("A1"), Range("B1"), i), "AAA") End With End Select Next End Sub
- marbin
- ベストアンサー率27% (636/2290)
>2行目のB2にその月の月曜日の日付 たとえば、今年の3月ですと、 3/2、3/9、3/16、3/23、3/30 がありますが、これをB2に全部入れたい、ということですか?
補足
すみません。 私の記入ミスです。 回答番号No.1の方がお答えいただいたように、 A2に第1月曜日、 B2にその週の木曜日、 C2にその週の土曜日という形で考えています。 よろしくお願いいたします。
- gyouda1114
- ベストアンサー率37% (499/1320)
お礼
先程の件ですが、 セルの書式設定から表示形式をユーザー設定にして、 種類を"d"としてみました。 とりあえずこれでやってみようと思います。 他にやり方があれば、 よろしくお願いいたします。
補足
ありがとうございます。 A2セルに無事に表示されるのですが、 2009/3/2 となります。 可能であれば日にちだけを表示できると助かりますが、 お手すきの時にご教授いただければと思います。 よろしくお願いいたします。