• ベストアンサー

エクセル カレンダー

エクセルのカレンダーついて教えて下さい。 B1 西暦 C1月日 B9 日 月 火 水 木 金 土 B10 ~ H12 B16~ H12 B18~ H12 B20~ H12 上記4段に日にちの数字のみ(1 2 3 4) 入力になります。 表は一ヶ月単位 表のレイアウトは横 B1 西暦 C1月日 に入力をしたら、日にちが自動で反映されるように、 したいのですが、詳しい方計算式を教えて頂けますでしょうか?  宜しくお願い致します。  

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.2・4です! 何度もごめんなさい。 今、実際に作成してみました。 前回のB10セルの数式で不必要な部分がありました。 ↓の数式に変更してください。 =IF(MONTH($D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A2)/2-1))=$C$1,$D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A2)/2-1),"") そして前回の >フォントすべてが「赤」になってしまいますが は間違いです。 「自動」のままのフォント色だと思います。 (最後にB列のフォントを「赤」・H列のフォントを「青」にします。) 他のセルの数式・条件付き書式・操作方法は前回同様で↓のような感じになります。 確認せずに投稿してごめんなさいね。 何度も失礼しました。m(_ _)m

ryuusyou
質問者

お礼

tom04様 カレンダーの表まで作成して頂き、 ありがとう御座いました。 教えて頂きました方法で実践してみます。 エクセルって奥が深いですね。 もう少しエクセルの勉強をしないといけないと 思いました。 本当にありがとう御座いました。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.2です。 補足を読ませていただきました。 余計なお世話かもしれませんが、おそらく祝日を表示するための行だと思いますので、 ↓の画像のようにSheet2に祝日データを作っておいての方法です。 Sheet2のデータはシリアル値でA1~F25(2016年まで) A列は祝日名としています。 Sheet1の配置は前回同様だとして、11・13・15・17・19・21行に「祝日名」を表示するとします。 B10セル(セルの表示形式はユーザー定義から d )に =IF(MONTH($D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(INT(ROW(A2)/2-1)))=$C$1,$D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(INT(ROW(A2)/2)-1),"") B11セルに =IF(B10="","",IF(COUNTIF(Sheet2!$B$1:$F$25,B10),INDEX(Sheet2!$A$1:$A$25,SUMPRODUCT((Sheet2!$B$1:$F$25=B10)*(ROW(Sheet2!$A$1:$A$25)))),"")) という数式を入れます。 条件付き書式でB10セルは 数式を使用して・・・(2003以前は「数式が」) 数式欄に =B11<>"" として → 書式 → フォント → 「赤」を選択 B11セルの条件付き書式も 数式を使用して・・・ =B11<>"" とし、同様にフォントを「赤」とします。 B10・B11セルを範囲指定 → B11セルのフィルハンドルで2行ずつB21セルまで オーフィルでコピー → そのまま列方向に土曜日のH列までコピー! フォントすべてが「赤」になってしまいますが、月~金の範囲を範囲指定 → フォント色を「自動」 にします。 これで月~金は祝日以外は黒になるはずです。 最後に土曜のセルを範囲指定 → フォント色を「青」などに設定します。 ※ 変に先走っていたらごめんなさいね。m(_ _)m

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

日にちの入る行が週の間で規則性が無い場合では次のようにしてはどうでしょう。 B1セルには例えば2012と数値を入力して右クリックし「セルの書式設定」から「表示形式」の「ユーザー定義」で種類の窓には 0年 と入力してOKします。2012年と表示されます。C1セルには例えば11月でしたら11と入力し、セルの書式設定のユーザー定義で 0月 とすれば11月と表示されます。 そこでカレンダーの作成ですがB9セルにからH9セルに日から土までを入力します。 B10セルには次の式を入力します。 =DATE(B1,C1,1)-(WEEKDAY(DATE(B1,C1,1))-1) B11セルには次の式を入力して下方の例えばB22までドラッグコピーします。 =IF(ROW(A1)=6,B$10+7,IF(ROW(A1)=8,B$10+14,IF(ROW(A1)=10,B$10+21,IF(ROW(A1)=12,B$10+28,"")))) その後にC10セルには次の式を入力してH10セルまで横にドラッグコピーしたのちに下方の22行までドラッグコピーします。 =IF(B10="","",B10+1) その後にB10セルからH22セルを範囲として選択し、右クリックして「セルの書式設定」から「表示形式」の「ユーザー定義」で d と入力してOKします。すべてのデータが日の表示に変わります。 この表では10月や12月の日付も表示されますのでそれらの日付については日付の色を白にするあるいは灰色にするなどの条件付き書式の設定を行うことにします。 次のようにします。B10セルからH22セルを範囲として選択してから「ホーム」タブの「条件付き書式」をクリックし、「新しいルール」を選択します。 表示の画面で「数式を使用して書式設定するセルを決定」を選択してから下の窓には次の式を入力します。 =AND(MONTH(B10)<>$C$1,B10<>"") 同じ画面の「書式」をクリックして「フォント」のタブで「色」から白色や灰色を選択してOKします。 これで月の違った日付には白色などが付くことになります。

ryuusyou
質問者

お礼

KURUMITO様 質問に回答頂きありがとう御座いました。 教えて頂きました計算式ユーザー定義を エクセルの勉強の為一度試してみます。 ありがとう御座いました。 

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 ↓の画像のようにその月の1日のシリアル値をどこかのセルに表示させておきます。 画像ではD1セルにしています。 フォントの色を「白」にして見えなくするか、 セルの表示形式をユーザー定義から mmm としておけばその月の英文頭文字 mmmm としておけば英文表示となります。 そうしたうえで B10セル(セルの表示形式はユーザー定義から d としておきます)に =IF(MONTH($D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A1)-1))=$C$1,$D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A1)-1),"") という数式を入れ列方向・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ 質問では行方向に空白行が何行かあるようにも解釈できますが、 その場合は当然数式も変わってきます。 ※ 空白行が必要な場合、空白行間隔が一定であれば上記数式のアレンジで可能だと思います。 そうでない場合は行ごとに数式を入れ替える必要があるかもしれません。 とりあえず今回はこの程度で・・・m(_ _)m

ryuusyou
質問者

補足

tom04様 丁寧に返答して頂き本当にありがとう御座いました。 画像も拝見させて頂きました。 私の説明不足で申し訳け御座いまでした。空白行が一定の間隔であります。 11 13 15 17 21 行の高さは37.5です。 上記数式のアレンジをどうしたらよいでしょうか? 教えて頂いたので実践してみたのですが、空白行あるので、 ずれていきました。 ご面倒ですが、ご返答お待ちしております

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

カレンダーは、Excel初級操作の卒業課題みないな もので、色々な作り方がWeb上にやまほどあります。 そのうちの一つを挙げておきますが、他にも方法は 山ほどあります。 http://excel-magic.com/blog-entry-16.html ただ、「祝日を含めたカレンダーを作る」には、上記 だけじゃダメで「Exce上級捜査の卒業課題」なみの めんどくささが出てきます。

ryuusyou
質問者

お礼

FEX2053様 質問にご返答頂きありがとう御座いました。 教えて頂きました事を参考にし、 時間があった時に作成してみます。 ありがとう御座いました。           

関連するQ&A