プロが教えるわが家の防犯対策術!

1年分12カ月の勤務表を作ろうとしていますが、現在日付と曜日を手入力しています。非常に不便を感じていますので質問させていただきます。
添付画像のG3セルからAK3セルに日付とG4セルからAK4セルに曜日を自動入力したい。(F2.H2セルの年月を変更した場合にも反映するように)
日付を自動表示する場合2月末は29日で4月末は30日なのでその場合の29日から31日までの「月末」の表示処理する(2月だったら30,31日を表示しない、閏年も含めて)関数を教えてください。
なお、土日祝日に自動的に色付けする方法も合わせてお願いします。

ExcelのバージョンはExcel2007です。

「1ヶ月分のすべての日付と曜日を自動入力し」の質問画像

A 回答 (5件)

こんにちは



添付画像が小さいので下の画像で説明します。

B2セルに日付を入れます。(入力は、年月と1日まで、セルの表示形式は年月)

B3セルに以下の関数式を入力
=IF(B2="","",B2)

C3セルに以下の関数式を入力し、C3セルを31日分横方向にオートフィル(C3セルをAF3迄)
=IF(B3="","",IF(DAY(B3+1)=1,"",B3+1))

B4セルは、
=B3
同じく横方向にオートフィル

B3セルからAF4セルを選択し、以下の条件付き書式を設定

=WEEKDAY(B$4)=7 (ここには、土曜日の書式を設定)
=WEEKDAY(B$4)=1 (ここには、日曜日の書式を設定)

で下の画像のようになるかと、後は、B2セルの日付を変更することで大の月小の月に関わらず日付と曜日が変化します。

書式設定を5行目以下にの伸ばしたい場合は、設定済のいずれかのセルをコピーし、設定したいセルを選択して、書式設定の貼り付けでいけます。
「1ヶ月分のすべての日付と曜日を自動入力し」の回答画像5
    • good
    • 0

年月、weekday関数、ユーザー定義でできます。



あるセルに○○○○年○月1日と1日~31日のセルを置きます。数式で。
それらの2個のセルを足して、weekday関数を使います。
weekday関数で表示されたセルにユーザー定義で曜日を表示させることができます。

会社で予約表を作る時使いました。
    • good
    • 0

マクロでない省力化入力の方法です。



セル内の日付をオートフィルすると、大小の月や閏年も正しく扱ってくれるので
これを利用します。

この時、セルには年月日の全てが必要なのでこれを1つのセルに入力します。
セルの書式設定でを「ユーザ定義」で dd とすると、表示されるのが日のみになります。
これを必要分オートフィルすると、29,30,31日を正しくフィルしてくれます。
曜日は、
=TEXT(参照セル,"aaa")
と入力しておくと、参照セルの年月日に応じた曜日文字を画面表示します。

>土日祝日に自動的に色付けする方法も

土日に関しては、セルに「条件付き書式設定」で添付図のように設定しておきます。
祝日に関しては自動的に行うアイデアを持ってないので手操作で。

添付図中、B5,B6 の 2セルを選択し右にオートフィルするといいです。

尚、テスト環境と添付図は Excel2000 のものですが、2007も同様に行えると思います。
「1ヶ月分のすべての日付と曜日を自動入力し」の回答画像3
    • good
    • 0

画像が小さくて見えませんが,F2に年,H2に月が記入してあるとすると



1日のセルG3に
=IF(MONTH(DATE($F$2,$H$2,COLUMN(A1)))=$H$2,DATE($F$2,$H$2,COLUMN(A1)),"")
と記入して右クリックしてセルの書式設定の表示形式で
d
とだけ設定して日を表示,右にコピー。

「祝日」をどう用意したい(できている)のか不明なので,次の通りに作成します
シート2のA列に祝祭日並びに会社の休日(年末年始やGW,夏休など)を「年/月/日」で列記

G4に
=IF(COUNTIF(INDIRECT("Sheet2!A:A"),G3),"休",TEXT(G3,"aaa;;;"))
と記入して右にコピー


G3から始めて表範囲を選択,G3セルがアクティブセルになっていることを確認(必須)から条件付き書式を開始
数式を使用して書式設定で
=G$4="休"
で休日祝祭日の書式を設定

条件付き書式を同じ手順で重ね掛けし
=G$4="土"
で土曜日の書式を設定

条件付き書式を同じ手順で重ね掛けし
=G$4="日"
で日曜日の書式を設定。


#補足しておきます
条件付き書式が判らないときは下記を参考に。
http://www.eurus.dti.ne.jp/yoneyama/Excel2007/ex …
    • good
    • 0

最近Excelを使う機会が少なくて冗長さがひどいかもしれませんが。



G3~AK3:=DAY(DATE($F$1,$H$1,1)) のコピー
     29日~30日に限っては、=IF(DAY(DATE($F$1,$H$1,29))<>29,"",DAY(DATE($F$1,$H$1,29))) のコピー

G4~AK4:=WEEKDAY(DATE($F$1,$H$1,G3)) のコピー

G4~AK4のセルの書式設定→表示形式→ユーザー定義で「aaa」と指定。

G3~Gn(必要な行数)の条件付き書式で
 適用先:=$G$3:$G$27
 数式を使用して~を選んで=G$4=7
 書式:塗りつぶしで青色を指定
 と
 適用先:=$G$3:$G$27
 数式を使用して~を選んで=G$4=1
 書式:塗りつぶしで赤色を指定
できたら、コピって、列単位に形式を選択して貼り付けを行い、「書式」で貼り付け。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!