こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルでの予定表

どなたか教えてください。エクセルで月間予定表を作っていいるのですが週ごとに表示されるようにしたいのですが。12月でしたら第2週は4日~8日、第2週は11日~15日のようにです。月をかえたら自動で入るようにしたいのですが。関数を少し知っている程度です。よろしくお願いします。

投稿日時 - 2006-12-03 10:18:09

QNo.2577368

暇なときに回答ください

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

>月を変えたら
というのが今一解らないのですが

以下の「書式設定→」と書かれているところは
セルを右クリックして現れるメニュー内より「セルの書式設定」を選択し
「セルの書式設定」ウインドウを表示させて
「表示形式」タブ内、左方の「分類」一覧より「ユーザー定義」を選択する
同タブ内、右方にある「種類」下方の入力欄に「→」以降の文字を入れることにより設定を行ってください

ではいきます
A1に
=EOMONTH(TODAY(),B1-1)+1
と入力し
書式設定→[$-411]ggge"年"

A2に
=EOMONTH(A1,0)
と入力し
書式設定→""

B1に
書式設定→""#"ヶ月後";#"ヶ月前";""

B2に
 =EOMONTH(A1,-1)+1
と入力し
書式設定→m"月"

C5をクリックしデータプルダウンメニューから入力規則
開いた「データの入力規則」ウインドー内の設定タブ中程の「入力値の種類」下方のプルダウンメニューより「リスト」を選択
選択することにより現れる「元の値」の下方の入力欄に
「月,火,水,木,金,土,日, 」と入力(注、「」は省く、最後は空白を入力)
最下方の「OK」ボタンを押し確定させる

D5に
 =LOOKUP(MATCH(C5,{0,"","月","火","水","木","金","土","日"},0),{1,2,3,4,5,6,7,8,9},{"","","火","水","木","金","土","日","月"})
と入力し

D5をE5:I5にコピーする

B6に
 =IF(ISNUMBER(I4),I4,"")
と入力し
書式設定→""

C6に
 =IF(B6="",IF(WEEKDAY($B$2)=MAX(COUNTIF(C5,{"日","月","火","水","木","金","土"})*{1,2,3,4,5,6,7}),1,""),IF(B6<DAY($A$2),B6+1,""))
と入力し

C6をD6:I6にコピーする

B6:I6をB7:I16にコピーする

以上です


使い方ですが
C5のセルをクリックするとセルの右に「▼」が現れますので
それを更にクリックします
するとプルダウンメニューが現れますので
その中よりカレンダーとして表示させたい先頭の曜日をお選びください

選ぶとサッ とカレンダーが1行置きに現れると思います

基本は当月表示で
月が変わると自動的にカレンダー表示も変わります

で、
B1のセルに何か数字を入れると…

例えば
1と入れると1ヶ月後のカレンダーが
-1と入れると1ヶ月前のカレンダーが表示されます

数字は正の整数か負の整数なら何でも構いません

カレンダーの奇数行には式が入っていますが
「31以下の正の整数」以外なら何に書き換えても支障ありませんのでご自由にメモ欄としてお使いくさい

如何でしょうか?
こんな感じでよかったでしょうか?

投稿日時 - 2006-12-04 17:40:06

お礼

お礼が遅くなり大変申し訳ありません。便利なカレンダーを教えて頂きました。ぜひ参考にさせてもらいます。ありがとうございました。

投稿日時 - 2007-02-27 00:13:42

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

P・s・
もしEOMONTH関数が使えなかった場合ですが
補足欄に「EOMONTHが使用できません」との旨記載頂ければ
またご説明に来させて頂きますので宜しくお願い致します

投稿日時 - 2006-12-04 17:47:56

ANo.2

(以下はimogasi方式です)
Sheet1のA2:B32に
日付と予定(下記でa,b,c,・・・)が入力されているとします。
B、C、D列を列挿入します(または空き列を3列使います・
2006/11/14414401a
2006/11/24424402b
2006/11/34434403c
2006/11/44444404d
2006/11/54514501e
2006/11/64524502f
2006/11/74534503g
2006/11/84544504h
2006/11/94554505i
2006/11/104564506j
2006/11/114574507k
B列B2は=WEEKNUM(A2)
C列C2は=IF(B1=B2,C1+1,1)
D列D2は=B2*100+C2
と入れてB3:D32まで式を複写します。
結果上記のようになります(上記掲載は一部です)
ーーー
Sheet2に行って
B1に第何週を入力して指定します。第46週とします。
A2に=INDEX(Sheet1!$A$2:$E$32,MATCH($B$1*100+ROW()-1,Sheet1!$D$2:$D$32,0),1)
B2に=INDEX(Sheet1!$A$2:$E$31,MATCH($B$1*100+ROW()-1,Sheet1!$D$2:$D$32,0),5)
と入れて、A2:B2の式を、A8:B8まで複写します。
結果
2006/11/12l
2006/11/13m
2006/11/14n
2006/11/15o
2006/11/16p
2006/11/17q
2006/11/18r
となります。
B1を47に変更すると、即座に
2006/11/19s
2006/11/20t
2006/11/21u
2006/11/22v
2006/11/23w
2006/11/24x
2006/11/25y
と変わります。
月初、月末で7日無いときはエラーがでます。
それは=IF(ISERROR(・・),"",・・)
と・・のところに上で説明した(Sheet2のA2,B2)の式を入れてください。
===
ほかに
どんな指定を人間がするかで、色々なバリエーションがあります。
質問にそれがかいてないので、
年月指定ーー>Sheet1のA列自動作成
月末日ーー>自動作成
第x週をーー>当月の1-5で指定
などありえますが複雑なので略。
本質問はVBAなどでやるのがふさわしいと思います。

投稿日時 - 2006-12-03 14:21:04

お礼

ありがとうございました。私には少し難しいですが頑張ってやってみます。大変助かりました。ありがとうございました。

投稿日時 - 2006-12-03 17:20:05

ANo.1

 
日付がA1セル、今月の月をA2セルに書いてあるとして、
=WEEKNUM(A1)-WEEKNUM(A2)+1

または、今週を代表する日付をA1に書いて
=WEEKNUM(A1)-WEEKNUM("2006/12/1")+1

どうでしょう。

 

投稿日時 - 2006-12-03 10:24:39

お礼

weeknumという関数は知りませんでした。アドインで組み込むのですね。参考にいたします。大変助かりました。ありがとうございました。

投稿日時 - 2006-12-03 17:14:49

あなたにオススメの質問