- 締切済み
自動でのカレンダー作成について
エクセルで、シートごとに月別のスケジュール表を作りたいです。 例えば、4月シート 横軸に会議名を記入し、それぞれ当てはまる日付に時間を入れます。 (セルA2/1日)(セルB2/日曜) (セルA3/2日)(セルB3/月曜)とし、土日祝日に塗りつぶしで色を入れる このような表で、月をセルA1に入れた場合、 自動で日付の右セルに曜日を入れること、土日祝日に塗り潰しの色を入れるには、どのようにしたらいいでしょうか? 質問の内容がわかりにくかったら申し訳ありませんが、よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- p-applepie
- ベストアンサー率53% (156/290)
No4です。 >>"2007"の部分は YEAR(Today())と置き換えても構いませんが、 >>年が変わるとブックを開いた時にその年に書き換えられます。 >と、ありますが、これは自動という意味ではなく、 >手で年を変えれば、他が代わるということでしょうか? =WEEKDAY(DATE("2007",$A$1,B1))の場合は、曜日は手入力ではなく 自動で入り、2008年に開いても2009年に開いても、曜日は 2007年の曜日のままということです。 来年もこの数式を使用する場合は、=WEEKDAY(DATE("2008",$A$1,B1))と 手動で書き換える必要があります。 =WEEKDAY(DATE(YEAR(TODAY()),$A$1,B1)) と関数を入れた場合は 上と同じく曜日は自動で入ります。 2007と式内に指定しなくても、自動で今年の2007年が入りますが 2008年に同じファイルを開くと、2008年の曜日に書き変わります。 逆に混乱させてしまったみたいですね・・。 =WEEKDAY(DATE("2007",$A$1,B1)) を使用されて、来年同じフォーマットを 使用する時は =WEEKDAY(DATE("2008",$A$1,B1))と 書き換えられる方がいいかも知れません。
- imogasi
- ベストアンサー率27% (4737/17069)
#3です。 >(4)の、Weekday(A2)=1 ←この「1」と、その後の「7」は、何を表して(指して)いるのでしょうか? WEEKDAY(日付セリアル値)関数は()内の日付の曜日のコードを返します。 WEB照会すれば、すぐ、沢山出てきます。 http://www.pursue.ne.jp/Document_xls/xls0002.htm 1-->日曜 7-->土曜 ただし、上記では省略してますが、第2引数を2,3に指定すると 2-->1(月)-7(日) 3-->0(月)-6(日) というコードで返させることもできます。
- p-applepie
- ベストアンサー率53% (156/290)
>自動で日付の右セルに曜日を入れること A1に月があるということですが、日付はB列でしょうか? 4月と入力されているのであれば、4とだけ入力し、セルの書式設定の 表示設定→ユーザー定義で G/標準"月" として下さい。 B列に1~31が入るのであれば書式設定をG/標準"日"とします。 C列に =WEEKDAY(DATE("2007",$A$1,B1))で自動で曜日が入ります。 "2007"の部分は YEAR(Today())と置き換えても構いませんが、 年が変わるとブックを開いた時にその年に書き換えられます。 どこかのセルに年を入れるなら、そのセルに置き換えて下さい。 祝日の表示には、予定表に関連しない列にその月の土日以外の休日を 日にちだけで表記させます。 例えばS列に休日の日付を入力されたら、先ほどのWeekdayを発展させて =IF(ISERROR(VLOOKUP(B1,$S:$S,1,FALSE))=FALSE,"祝",WEEKDAY(DATE("2007",$A$1,B1))) で 祝日も入ります。 ただし曜日表記ではなく[祝]という形で入ります。 ちなみに月セルはシート名に月名を入れているのであれば、 ちょっと長いですがA1に =VALUE(SUBSTITUTE((RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))),"月","")) と入れる事で シート名の月数を自動取得する事が出来ます >土日祝日に塗り潰しの色 曜日セルを選択してセルの書式設定で 条件1 セルの値が 次の値に等しい時 1 →日曜日の書式設定 条件2 セルの値が 次の値に等しい時 7 →土曜日の書式設定 条件3 セルの値が 次の値に等しい時 "祝" →祝日の書式設定 書式設定は 書式ボタンをクリックすると、セルの色、フォントの色などが 指定出来ます。
- imogasi
- ベストアンサー率27% (4737/17069)
良くある質問ですね。 (1)A2に2007/4/1を入れて、下方向にオートフィルする。31日まで。 (2)B列にも値を複写し、書式-ユーザー定義-aaaまたはaaaaと入れる これで曜日は入る。 (3)来月分を見えなくする A2:B32まで範囲指定 書式ー条件付き書式ー数式が =A2>DATE(YEAR($A$2),MONTH($A$2)+1,DAY($A$2))-1 といれ、フォント書式を白色にする。 (4)書式ー条件付き書式ー数式が で、第2条件に =OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7) と入れてセルのパターン職を赤系の淡い色に設定。 (5)どこかの空き列に祝日・会社休日の日を縦に並べる。 とりあえず4月のLiセルに2007/4/30を入れる 書式ー条件付き書式で追加をクリックし第3条件で 数式がで =A2=VLOOKUP(A2,$L$1:$L$10,1,FALSE) 書式はセルのパターン職を赤系の淡い(4)と同色に設定。
お礼
ありがとうございます。 (1)と(2)の方法で、簡単に出来ました。 (4)の、Weekday(A2)=1 ←この「1」と、その後の「7」は、何を表して(指して)いるのでしょうか? すみませんが、教えて下さい。
- taka0028
- ベストアンサー率33% (19/57)
#1です、補足です =TEXT(CONCATENATE(CONCATENATE($A$1,"/"),$A2),"aaa") は曜日を出す場所に(たとえばc1) =$c1="土" この部分のc1は曜日を出すセルを指定してくださいね
- taka0028
- ベストアンサー率33% (19/57)
まず曜日を出すには下記でできます。 =TEXT(CONCATENATE(CONCATENATE($A$1,"/"),$A2),"aaa") "月” 月曜日と出すならば"aaaa"として下さい。 また、塗りつぶしを行う為には塗りつぶす表全体を選択して[書式]->[条件付書式]より 数式を選択、=$c1="土" を入力し書式で塗りつぶす色たとえば青 また、追加を押下し=or($c1="日",$c1="祝")を入力し書式で塗りつぶす色たとえばピンク ただし”祝”は自動で出ないので手書きにする必要があります。
お礼
ありがとうございます。 やってみたのですが、上手く色が塗れません。 土日の行を、自動で色づけしたかったのですが、それが出来ませんでした。 基本的なことですが、$このマークの意味がわかりません。。。
補足
A1とB1を結合して、月が入っています。 2行目以降のA列に日付、B列に曜日を入れました。 C列に =WEEKDAY(DATE("2007",$A$1,B1))で自動で曜日が入ります。 "2007"の部分は YEAR(Today())と置き換えても構いませんが、 年が変わるとブックを開いた時にその年に書き換えられます。 と、ありますが、これは自動という意味ではなく、手で年を変えれば、他が代わるということでしょうか?