『予定表を別々のカレンダーに』(K) 年間の予定表を作成しているのですが、カレンダーの種類が縦型と七曜のカレンダー があります。 縦型のカレンダーに内容を入力して、七曜のカレンダーに表示を させたいのですが、どのようにすればよいか分かりません。 シートは,予定.3.4.5.6.7.8.9.10.11.12.1.2などがあります。 予定のシート構成ですが A B C D   E         F G      H          1          2009       3 2 3 4 5 区分 場所 時間  日付            区分    予定 6            =DATE($E$2,$F$2,1) =E6+1  =IF(A6=0,"",A6) 7 =IF(A7=0,"",A7) 8 =E6+1 =E8 =IF(A8=0,"",A8) 9 =IF(A9=0,"",A9) 〜〜 〜〜 742 =E740+1 =E742 =IF(A742=0,"",A742) 743 =IF(A743=0,"",A743) こんなかんじで、一年分あります。 3〜2のシートです A B C D E F G H I J K L M N O P (C2) =IF(MOD(B1,12)=0,INT($B$1/12)-1,INT($B$1/12)) (E3) =IF(MOD($B$1,12)=0,12,MOD($B$1,12)) ( B4) =CHOOSE($B$2,"日","土") (D4) =CHOOSE($B$2,"月","日") (F4) =CHOOSE($B$2,"火","月") (H4) =CHOOSE($B$2,"水","火") (J4) =CHOOSE($B$2,"木","水") (L4) =CHOOSE($B$2,"金","木") (N4) =CHOOSE($B$2,"土","金") (B5) =IF($B$2=1,DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),1,0,-1,-2,-3,-4,-5)),DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),0,-1,-2,-3,-4,-5,1))) (D5)=$B$5+1 F H J L N B6 予定 - N6 B7 時間  -N7  B8 場所 -N8 (B9) =$B$5+7 B10 予定 - N10 B11 時間 -N11 B12 場所 -N12 (B13) =$B$5+14 B14 予定 -N14 B15 時間 -N15 B16 場所 -N16 (B17) =$B$5+14 B18 予定 -N18 B19 時間 -N19 B20 場所 -N20 (B21) =$B$5+28 B22 予定 -N22 B23 時間 -N23 B24 場所 -N24 (B25)=$B$5+35 (D25)=$B$5+36 B26 予定 -N26 B27 時間 -N27 B28 場所 -D28 (B29) =IF($E$2<>12,$C$2,$C$2+1) (C29) =IF($E$2<>12,$E$2+1,1) B30 =CHOOSE($B$2,"火","月")〜C30 D30 E30 F30 G30 H30 B31 =IF($B$2=1,DATE($B$29,$C$29,CHOOSE(WEEKDAY(DATE($B$29,$C$29,1)),1,0,-1,-2,-3,-4,-5)),DATE($B$29,$C$29,CHOOSE(WEEKDAY(DATE($B$29,$C$29,1)),0,-1,-2,-3,-4,-5,1))) B32 予定 -H32 B33 B34 予定 -H34 B35 B36 予定 -H36 B37 B38 予定 -H38 B39 B40 予定 -H40 B41 B42 予定-C42 分かりずらいですが、予定、時間、場所と入る部分を予定のシートに入れた時に3〜2のシートに入るようにしたいのですが、 3〜2のカレンダーは万年なので全てにコピーして月を変えてあります。 宜しくお願いします。 ---- ご説明のカレンダー(月別)を作成しようと思っているのですが・・・ B1,B2,E2 には 何が入っているのですか? また、それらの数式が設定してある場合 どの様に表示されるのか。 予定表にサンプルデータを入れて どの様に表示されるのが良いのか (位置関係の分かりやすいサンプルデータをお願いします。) 載せてみてもらえませんか? (HANA) ---- 説明が足りなくて申し訳ありません。 カレンダーの3〜2 B1に標準で24111  日付で1966/1/4 B2に標準で1  日付で1900/1/1 C2に2009年 E2に3月 ですが、B2は削除して、B1も削除してC2に年・ E2に月を直接入力 (B5)に =IF(DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),1,0,-1,-2,-3,-4,-5)),DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),0,-1,-2,-3,-4,-5,1))) で大丈夫だと思います。 予定のシート A B  C D E F G      H     5 区分 場所  時間    日  付  区分   予定 6 A 体育館  9:00   A     練習 3月1日(日) 7 B グランド 9:00 B 試合 〜〜 76 A グランド 9:00         A 試合 4月5日 (日) 77 B 体育館 9:00 B     練習 すいませんカレンダーシート2枚ずつありました。 カレンダーシート3-A A B C D E F G  H I J K L M   N O 1 2 2009 3   3 4 日  月  火  水   木  金   土 5 1 2 3 4 5 6 7 6 練習(予定H6に入力したもの) 7  9:00(C6) 8 体育館(B6) 29 2009 4 30 日 月 火 水 木 金 土 31 試合(H76) カレンダーシート3-B A B C D E F G  H I J K L M   N O 1 2 2009 3 3 4 日  月  火  水   木  金   土 5 1 2 3 4 5 6 7 6 試合(H7) 7  9:00(C7) 8 グランド(B7) 29 2009 4 30 日 月 火 水 木 金 土 31 練習(H77) 説明が上手く出来ませんが予定のシートの3月1日に入力したものが、カレンダーの 3月1日に入るようにできればと思います。 宜しくお願いします。(K) ---- そのようになっているなら、単純に 各カレンダーシートの該当の日付を 予定のシートで検索し、参照すれば良いと思います。 たとえば、B6には =IF(INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0))="","", INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0))) ~~~↑~~~~~~ B7セルには、ここを(上の行の該当箇所もですが) 予定(H列)ではなく、時間(C列)を参照した式に変更。 予定セルに入力がない限り、他のセルの入力がない また、予定のセルに入力があるなら、他のセルには入力がある のなら条件式を変えて =IF(B6="","",INDEX(予定!$C$6:$C$742,MATCH(予定!$E$6:$E$742,B5,0))) の式をいれる。 ~~~~~~~~~~~ここの参照先の列番号が違うだけです。 たとえば、予定のセルに入力があっても、時間のセルに入力が 必ずあるとは限らない なんて場合は やはり、INDEX関数の戻り値で分岐してください。 もうひとつ、場所(B列)を参照する式をつくり、B8セルに入力。 B6:B8をコピーして、その他のセルに貼り付け。 このままでは、最初の月と最後の月のシートで 予定表にない日付が入力されている部分にはエラー値が表示されますが、 いずれにしても カレンダー月以外の月の日付欄は 条件付き書式による非表示処理をされると思いますので、 問題ないと思っています。 上の3つの式は、予定表の上側の行を参照するものです。 下側を参照するためには、INDEX関数の参照先を一つ下にずらして下さい。 =INDEX(予定!$H$7:$H$743,MATCH(予定!$E$6:$E$742,B5,0)) ~~~~~~~~~~~ここだけそれぞれ 一つ下の行を参照。 ちなみに、6行目から始まった場合 一日2行ずつ使用するとすると、最後の行は 735行目になると思うのですが 742行目まで使用しているのは、一日2行ずつが固定ではない ってことなんですかね? 12*2枚のシートの該当セルに数式をセットし 条件付き書式も設定すると 計算に時間がかかるようになるかもしれません。 もしかしたら、月ごとのシートは2枚  上の行を参照するカレンダーと、  下の行を参照するカレンダー だけにして、C2,E2セルの値を変えることで 各月の予定を確認する と言った方法を採った方が良いかもしれません。 (HANA) ---- 仰る通りです。 その場合、どのようにすればよろしいですか? 宜しくお願いします。(K) ---- ・・・何が「仰る通り」なんですか? どこが、どのようになっている場合 ですか? (HANA) ---- 何度も申しわけありません。 (月ごとのシートは2枚上の行を参照するカレンダーと、下の行を参照するカレンダー 下の行を参照するカレンダーだけにして、C2,E2セルの値を変えることで 各月の予定を確認する) と言った方法をお願いします。 あと、行数は、意味は無いのですが、10日分多く入れてあるからだと思います。(K)     ---- ひとまず、出来ているシートに数式をセットしてください。 数式は 上に書いてある通りです。 完全に書いてあるのは、上側の行を参照する時の B6用の式ですが、他のセルへの数式は変更部分が書いてありますので 該当部分を変更してやってみてください。 うまく参照できない場合は、各6つのセルに入れた式 その式で、期待しないどのセルを参照してしまうのか その他の問題がある場合は どの様な問題があるのかご説明ください。 (HANA) ---- 下の式を入れてみました。 =IF(INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0))="","", INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0))) 3/1の予定だけ参照します。4/1に何か入れてカレンダーを変えても 駄目みたいです。3/2に3/1の場所が出てきます。2月にして、小さいカレンダー の3/26に3/1の予定が出ています。(K) ---- その式は、どのセルに入れましたか? ご提示の式はB5セルの日付を探して その行のH列のデータを返します。 それぞれ、セル番地とその時の各セルの値をセットにして 説明してください。 >カレンダーを変えても駄目みたいです。 何年何月にしましたか? >3/2に3/1の場所が出てきます。 3/2になっているのはどのセルですか? 3/2のデータを参照したいセルにはどんな式が入っていますか? その式のうち、3/2を参照するセルは 正しく3/2のセルを参照していますか? >2月にして、小さいカレンダーの3/26に3/1の予定が出ています。 3/26のセル とは、どこのセルのことですか? その際、そのセルに入れた式は何ですか? まさか、すべてのセルにご説明の式を入れたわけではないですよね? B6セルに式を入れたら、このセルをコピーして D6,F6,H6,J6,L6,N6 ~~~~ に貼り付けてください。 (HANA) ---- その式は、どのセルに入れましたか? B6に =IF(INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0))="","", INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,B5,0)))   何年何月にしましたか? 2009/3 >3/2に3/1の場所が出てきます。 3/2になっているのはどのセルですか? 3/2のデータを参照したいセルにはどんな式が入っていますか? D8 =IF(INDEX(予定!$B$6:$B$742,MATCH(予定!$E$6:$E$742,D5,0))="","",INDEX(予定!$B$6:$B$742,MATCH(予定!$E$6:$E$742,D5,0))) その式のうち、3/2を参照するセルは 正しく3/2のセルを参照していますか? D6に =IF(INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,D5,0))="","",INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,D5,0))) >2月にして、小さいカレンダーの3/26に3/1の予定が出ています。 3/26のセル とは、どこのセルのことですか? F56 =IF(INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,F55,0))="","",INDEX(予定!$H$6:$H$742,MATCH(予定!$E$6:$E$742,F55,0))) (K) ---- まず最初に白状しておきますが ご提示3-Aシートの状態はB5セルが「1」になっています。 確かに、2009年3月1日は日曜日なのすが・・・ご説明のように C2に「2009」E2に「3」B5にご提示の式を入れると B5セルは 2/28 を示します。 ですので、そちらのシートと 私が作ったシートは 何かが違うのだと思います。 私はKさんの見ているシートを見れていないので 【セル番地】も含め どのセルに何が表示されているのか 教えて下さい。 >3/2になっているのはどのセルですか? の一連のお答えの中に、D6の式があります。 つまり、  D5セルに「3/2」と表示されていて  D6セルにその式を入れると、    予定表シートの3/1のデータを参照する ということですか? そうであれば =MATCH(予定!$E$6:$E$742,B5,0) =MATCH(予定!$E$6:$E$742,D5,0) 二つの数式の戻り値を教えて下さい。 (HANA) ---- 状況の共有のために、次の設定と 設定の確認をしてください。 1.計算方法  計算方法が「自動」になっているか確認してください。  メニュー・ツール→オプション 計算方法タブ で確認できます。    計算方法が手動になっていて、計算が行われず違った結果が返される    という事が有りますので、それをなくすためです。 2.日付セルの表示形式  日付のセル(予定シートのE列 と、3-Aシートの5行目)の表示形式を  yyyy/m/d にしてください。    現在3-Aシートの5行目は表示形式が「d」になっていると思いますが    思いがけず違う年月の日付が返されていないかを確認するためです。 以上2点です。 まずは2009年3月のカレンダーで D6セルに入れた式が 3/2(D5セルの日付)の予定(予定シートのH列)を、 正しく参照できる様にしたいと思っていますので、 そのお心構えで よろしくお願いします。 (HANA) ---- KさんとHANAさんのカレンダーが違うのでは? B1 24111 (1966/1/4) B2 1 (1900/1/1) を、削除したのと、削除しないのと。 ---- HANAさん >3/2になっているのはどのセルですか? D5です >D5セルに「3/2」と表示されていて  D6セルにその式を入れると、    予定表シートの3/1のデータを参照する D8に3/1の場所が表示されます。 あと、↑の方の指摘のように、B2を削除すると日にちがずれます。でも、3/1の予定は参照 しています。(K) ---- う〜ん、なんでしょうねぇ。 >B2を削除すると日にちがずれます。 日にちがずれるのは、たとえばB5のことですよね。 B5には =IF(DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),1,0,-1,-2,-3,-4,-5)),DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),0,-1,-2,-3,-4,-5,1))) の式が入っていますね。 でも、この式はB2セルを参照していませんね。 でしたら、B2セルの値に左右されるのはおかしいのですが。 現在B5セルに「2009/3/1」が、D5セルに「2009/3/2」が表示されていますね。 その状態で、その他の質問にも答えて下さい。 (HANA) ---- B2を参照する所が曜日の式にあるのでずれるみたいです。 >=MATCH(予定!$E$6:$E$742,B5,0) =MATCH(予定!$E$6:$E$742,D5,0) 二つの数式の戻り値を教えて下さい。 戻り値の見方がわかりません。(K) ---- 確かに、曜日はずれると思いますが B5の日付はかわりませんよね。 こちらでは、B5には 2009/2/28 の日付が 表示されています。 計算方法は、自動になっていましたか? 「戻り値」とは、計算結果の事なので どこかのセルにその式を入力し 出た結果を教えて下さい。 (HANA) ---- =MATCH(予定!$E$6:$E$742,B5,0) B6に入れると1 D6〜N6は #N/A =MATCH(予定!$E$6:$E$742,D5,0) 何処に入れても#N/Aです。 (K) ---- #N/Aが出るということは、D5セルの値が 予定シートのE6:E742の範囲に無い ということです。 D5セルは「2009/3/2」となっていますね? 予定シートのE6:E742のなかに「2009/3/2」の日付がありますか? 有る場合は、どこのセルにありますか?セル番地を教えて下さい。 (HANA) ---- E8が3/2です。(K) ---- カレンダーですが、 B5 =IF(DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),1,0,-1,-2,-3,-4,-5)),DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),0,-1,-2,-3,-4,-5,1))) これだと、B5は2/28を表示します。 =IF($B$2=1,DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),1,0,-1,-2,-3,-4,-5)),DATE($C$2,$E$2,CHOOSE(WEEKDAY(DATE($C$2,$E$2,1)),0,-1,-2,-3,-4,-5,1))) これだと、3/1です。 ---- あっっ、分かりました。済みません。 MATCH関数の引数の設定を間違えてました。 =MATCH(予定!$E$6:$E$742,D5,0) 範囲~~~~~~~~~~~~~~~~ ==検索値 ではなく、正しくは =MATCH(D5,予定!$E$6:$E$742,0) 検索値== ~~~~~~~~~~~~~~~~範囲 ですね。 これで「3」が返されるように成ると思います。 ただ、INDEX関数の中でエラー値を使用すると エラー値が返されるハズなんですが、 どうして3/1を参照するのですかね。。。 これは疑問が残ったままです。 もう一つ外側に月の確認を含めた MATCH関数部分を訂正済みの式を載せておきます。 正しく参照出来るか、確認をお願いします。 B6に =IF(MONTH(B5)<>$E$2,"",IF(INDEX(予定!$H$6:$H$742,MATCH(B5,予定!$E$6:$E$742,0))="","", INDEX(予定!$H$6:$H$742,MATCH(B5,予定!$E$6:$E$742,0)))) (HANA) ---- HANA先生、凄いです。完璧です。 長い時間、大変お世話になりました。 また、何かありましたら宜しくお願いします.(K)