【先着1,000名様!】1,000円分をプレゼント!

エクセルでカレンダーを作り、予定を入力します。
年月の入力欄をいじれば、その年や月のカレンダーに切り替わる仕様です。
しかし、入力した予定はそのままのセルにあるだけです。
当たり前と言えばあたりまえなのですが。

4月のカレンダーには4月の予定、5月のカレンダーには5月の予定と、切り替えられる仕様にする方法はありませんか。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

カレンダーの形が縦長のものと曜日(日~土)の下に一週間分の日付が入ったものと二通りあります。


予定も決まった日、毎週月曜日、毎月第一月曜日といった周期的なもの色々あります。

一番単純なパターンとして
カレンダーは縦長で添付のように

A列:日付 B列:曜日 C列:予定

予定表は単純に決まった日のみとします(周期的なものも決まった日として入力しておきます。
この予定を少し離れた列(F列:予定日 G列:予定の内容をに配置します。
予定表、カレンダーは3行目から始めるとします。
即ちA3が1日、予定欄は何行必要でしょうか
毎日何かの予定があるとして365行ですのでF3~G367となります。

A1の書式はユーザ設定 ggge"年"m"月"
その他のA列の書式は d"日"
A3=A1-DAY(A1)+1 の式を入れて、A1にTODAY()関数で
自動で月めくりもしてくれます。

B3=TEXT(A3,"aaa")
C3=IF(VLOOKUP(A3,$F$3:$G$367,2,FALSE)=0,"",VLOOKUP(A3,$F$3:$G$367,2,FALSE))
「エクセル カレンダーを作って予定を入力」の回答画像3
    • good
    • 0
この回答へのお礼

こういうカレンダーの作り方もあるんですね。参考になりました。
ありがとうございます。

お礼日時:2013/04/23 19:52

No.4です!


投稿後間違いに気づきました。

A6セルのINDEX関数の範囲が違っています。
=IF(A5="","",INDEX(Sheet2!$B$3:$M$33,DAY(A5),$A$2)&"")

に訂正してください。
どうも失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

訂正、ありがとうございます。
ここに投稿していただいたカレンダーの作り方は、大事に保存しておきます。
ありがとうございます!

お礼日時:2013/04/24 15:22

こんばんは!


一例です。
↓の画像で左側がSheet2で
Sheet2の
(1)B2セル~M2セルまでは「月」の数値だけを1から12までを入力
(2)A3セル~A33セルまでは「日」の数値だけを1から31までを入力
この表に予定を入力していきます。

そしてSheet1の下準備として
(1)A1セルに西暦年を!A2セルに月の数値を!
(2)C1セルに
=DATE(A1,A2,1)
という数式を入れセルの表示形式はユーザー定義から mmm としています。
(C1セルは表示したい月の「1日」のシリアル値にします)

以上の準備ができたら
A5セル(セルの表示形式はユーザー定義から d としておきます)は
=IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1))=$A$2,$C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1),"")

A6セルに
=IF(A5="","",INDEX(Sheet2!$B$3:$G$33,DAY(A5),$A$2)&"")

という数式を入れ、A5・A6セルを範囲指定 → A6セルのフィルハンドルで列方向に土曜日までオートフィルでコピー!
そのまま(2行が選択されている状態)で、下へ2行ずつオートフィルでコピー!

これで画像のような感じになり、Sheet1の黄色セルのみの操作で自動でカレンダー・予定が表示されます。

尚、画像でもお判りかと思いますが、エラーチェックの緑色の三角が表示されてしまいますので、
これが目障りの場合
Excel2007以降だと
ファイルタブ → オプション → 「数式」 → エラーチェック欄 → 「バックグランドでエラーチェックを行う」のチェックを外します。

Excel2003までだと
メニュー → ツール → オプション → 「エラーチェック」タブにあります。

こんな感じではどうでしょうか?m(_ _)m
「エクセル カレンダーを作って予定を入力」の回答画像4
    • good
    • 2
この回答へのお礼

世の中のエクセル使いの方には、本当に感服いたします!
知識もさることながら親切さもあり、ありがたいです。
ありがとうございます!

お礼日時:2013/04/23 23:49

下記のURLでも回答していることですが例えば次のようにすればよいでしょう。



年月が変わったら日付や曜日も自動的に月始めから終わりの日までが変わるようにするためには初めに表を作る必要が有ります。
例えばシート1のA1セルに2013/4/1のように入力して、セルの表示形式の「ユーザー定義」で種類の窓にはyyyy"年"m"月" と入力します。これでA1セルには2013年4月のように表示されます。
その月に見合った日付の表示を2行目に行うためにA2セルには次の式を入力して横方向にAE2セルまでドラッグコピーします。

=IF(MONTH(DATE(YEAR($A$1),MONTH($A$1),COLUMN(A1)))<>MONTH($A$1),"",DAY(DATE(YEAR($A$1),MONTH($A$1),COLUMN(A1))))

また曜日を3行目に表示させるためにA3セルには次の式を入力してAE3セルまでドラッグコピーします。

=IF(A$2="","",TEXT(A$2,"aaa"))

http://oshiete.goo.ne.jp/qa/8054729.html
    • good
    • 0
この回答へのお礼

すごい関数の式ですね!!
右にドラッグコピーしたら、本当に日付がちゃんと並んでいくので驚きました。どういう計算なのかわからないのでただただ感心するばかりです。

お礼日時:2013/04/23 19:58

>方法はありませんか。



まぁ、マクロとか駆使すれば、「方法はあります」。が、よっぽどモノ好きがオタク趣味に任せて、ゴリゴリ作るようなシロモノです。ここでちょこっと聞いて、ほら簡単にできましたみたいなモノじゃありませんね。

ふつーにエクセルを使ってる分には、ご自身おっしゃってる通り
>当たり前と言えばあたりまえ

以上のナニモノでもありません。



#簡単な手順
予定記入セルに記入したら自動起動するマクロを使う
 予定が記入(編集・削除)される都度、別シートの「予定一覧」に転記する
 A列に年月日、B列にその日の予定、のように

年と月のセルに記入したら自動起動するマクロを使う
 予定記入セルを一旦クリアする
 予定一覧を調べて予定があったら転記する


#「具体的なマクロ」は、あなたが実際に作成しているカレンダーの詳細なレイアウトとか、そういった具体的な内容が無いととても書けません。ここで聞かれても答えませんので、どうしてもやってみたいなら別途詳しい情報を添えて、新しいご相談として投稿してみては。
    • good
    • 0
この回答へのお礼

やはり、マクロを使用するようなものなのですね。
回答、ありがとうございました。

お礼日時:2013/04/23 19:58

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel2010 リスト型の予定表をカレンダーに反映させたい

Excelにお詳しい方、ご指導お願いいたします。
リスト型のスケジュールをカレンダーに反映したいです。
(Excel2010を使用しています)

sheet1は年月の入力で変化する万年カレンダーです。
このカレンダーにsheet2のリスト型のスケジュールを反映させたいのです。

自分なりに調べてみて、A5のセルには
=IFERROR(INDEX(予定名,MATCH(A$4,日付,0))&"","")と入力して、
フィルハンドルで横に引っ張っています(sheet2のA列を「日付」B列を「予定名」と名前を付けています)。
しかし、この数式では同日に2つ予定があった場合の表示ができず、下にフィルハンドルを引っ張ると同じ予定が並んでしまいます。
同日の予定は最大で4件になりますが、なんとかカレンダーに4件の予定を表示させることはできないでしょうか?
できれば、カレンダーの1日の中に予定名と場所の表示をさせたいです。

リスト型のスケジュールは、予定が増えると随時列を挿入して追加していきます。

勤務先で、毎日多くの会議や研修が開催されており、予定がパッと見て分かるものの作成を任されました。しかし、やりたいことに実力が伴わず悩んでいます。。。
どうかアドバイスをください。よろしくお願いいたします。

Excelにお詳しい方、ご指導お願いいたします。
リスト型のスケジュールをカレンダーに反映したいです。
(Excel2010を使用しています)

sheet1は年月の入力で変化する万年カレンダーです。
このカレンダーにsheet2のリスト型のスケジュールを反映させたいのです。

自分なりに調べてみて、A5のセルには
=IFERROR(INDEX(予定名,MATCH(A$4,日付,0))&"","")と入力して、
フィルハンドルで横に引っ張っています(sheet2のA列を「日付」B列を「予定名」と名前を付けています)。
しかし、この数式では...続きを読む

Aベストアンサー

こんにちは!

画像の配置通りだとすると
日付数値の行はシリアル値になっていて、表示形式がユーザー定義から d となっているとします。

まずA5セルに
=IFERROR(INDEX(Sheet2!$B$1:$B$1000,SMALL(IF(Sheet2!$A$1:$A$1000=A$4,ROW($A$1:$A$1000)),MOD(ROW(A5),5)+1)),"")

配列数式なのでCtrl+Shift+Enterで確定! → A8セルまでフィル&コピー → そのまま右へフィル&コピー!

A5セルを選択 → A5セルの四辺にマウスポインタを移動し上下左右の小さな矢印になったところで
Ctrlキーを押しながらA10セルまでドラッグ
数式バー内の「A$4」を「A$9」に変更 → A13セルまでフィル&コピー → そのまま右へフィル&コピー!

同様にA10セルを選択 → A10セルの四辺にマウスポインタを移動、上下左右の小さな矢印になったところで
Ctrlキーを押しながらA15セルまでドラッグ
数式バー内の「A$9」を「A$14」に変更 → A18セルまでフィル&コピー → そのまま右へフィル&コピー!

この操作を最終週の行まで繰り返します。

こんな感じではどうでしょうか?m(_ _)m

こんにちは!

画像の配置通りだとすると
日付数値の行はシリアル値になっていて、表示形式がユーザー定義から d となっているとします。

まずA5セルに
=IFERROR(INDEX(Sheet2!$B$1:$B$1000,SMALL(IF(Sheet2!$A$1:$A$1000=A$4,ROW($A$1:$A$1000)),MOD(ROW(A5),5)+1)),"")

配列数式なのでCtrl+Shift+Enterで確定! → A8セルまでフィル&コピー → そのまま右へフィル&コピー!

A5セルを選択 → A5セルの四辺にマウスポインタを移動し上下左右の小さな矢印になったところで
Ctrlキーを押しながらA10セル...続きを読む

Qエクセルに入力後、別シートのカレンダーに自動的に記入方法

教えてください。
sheet1には受注管理表があります。
sheet2にはカレンダーを作っております。
sheet1に数量、納期欄を記入するところを作っており、納期欄に○月○日と挿入すると自動的にsheet2にカレンダーの○月○日に数量が入力できる方法があれば、教えてほしく。
宜しくお願いします。

Aベストアンサー

カレンダー側に数式を設定です。
カレンダーの該当するセルの日付と一覧表の日付が一致したら一覧表の同じ行の「数量」(だけでいいの?)を表示させれば良い。
 A  B  C  D
品名 数量 納期 納付先
とSheet1にあれば、
Sheet2のカレンダーのセルに
=INDEX(Sheet1!B:B,MATCH(DATE(年,月,日),Sheet1!C:C,0),0)
(年、月、日にはその値が入力されているセルを指定してください)
これで「日付」に一致したカレンダーのセルに「納期」の列にある値を拾うことができる。
・・・
ただしエラー処理はまったく考えていません。
日付が無い・値が無いなどでエラーが生じる場合は、ISERROR関数などで対処してください。

DATE関数でカレンダーの該当セルの日付を取得してください。
(ほとんどの場合、年、月、日がバラバラに入力されていて、日のセルにシリアル値が振られていない)


MATCH関数で参照先を「品名」や「納付先」の列にする事で「品名」「納付先」をそのまま拾うことができるので、
できればINDEX、MATCH関数を使うことを薦めます。

カレンダー側に数式を設定です。
カレンダーの該当するセルの日付と一覧表の日付が一致したら一覧表の同じ行の「数量」(だけでいいの?)を表示させれば良い。
 A  B  C  D
品名 数量 納期 納付先
とSheet1にあれば、
Sheet2のカレンダーのセルに
=INDEX(Sheet1!B:B,MATCH(DATE(年,月,日),Sheet1!C:C,0),0)
(年、月、日にはその値が入力されているセルを指定してください)
これで「日付」に一致したカレンダーのセルに「納期」の列にある値を拾うことができる。
・・・
ただしエラー処理はまったく...続きを読む

Qエクセル2007 カレンダーに予定を反映したいです

エクセルに詳しい方、得意な方、ご回答をお願いいたします。
エクセル2007で、予定表とカレンダーを作成しております。
エクセルの予定表シートG列(G14~下の列)のイベント(予定)内容を、1月シートA12:H41の各日付に合致した場所(1/1の場合A13~A17(日にちが入力されているセル(A12)は除く)へ反映させたいのですが、その場合のマクロコードもしくは数式を教えて下さい。
なお、添付資料では、カレンダーシートは1月のみ表示となりますが、実際は、月ごとに分かれた1月~12月までのシートがあります。
ご回答いただくのに、大変お手間になると思いますが、どうぞよろしくお願いいたします。

Aベストアンサー

No.4です。

条件付き書式の設定について・・・
この際ですので、日・祝日・土曜の色付けも条件付き書式でやってしまった方が簡単だと思います。
前回回答した最後の日・土曜の塗りつぶしは「なし」にしておいてください。
そして祝日データに関しては「祝日」と名前定義してあるとします。

画像の配置だとA11~A14セルすべてに同じ条件付き書式の設定を行います。
(数式はすべて同じです)
一つのセルに条件付き書式を二つ設定します。
① 日・祝日の設定
A11を選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=OR(WEEKDAY(A11)=1,COUNTIF(祝日,A11))
として → 書式 → 塗りつぶしから「赤」を選択しOK
この操作をA14セルまで行う。

② 土曜の設定
同様にA11セルを選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=WEEKDAY(A11)=7
という数式を入れ → 書式 → 塗りつぶしから「青」を選択しOK
この操作をA14セルまで行う。

複数の条件付き書式を設定すると優先順位がありますので、
↓の画像のように「赤」の条件付き書式が上になるように赤丸部分の▲・▼をクリックし優先順位を入れ替えます。

最後にA11~A14セルを範囲指定 → A14セルのフィルハンドルで右へコピー → そのまま4行ずつ下へコピー!

これでなんとかお望みどおりにならないでしょうか?m(_ _)m

No.4です。

条件付き書式の設定について・・・
この際ですので、日・祝日・土曜の色付けも条件付き書式でやってしまった方が簡単だと思います。
前回回答した最後の日・土曜の塗りつぶしは「なし」にしておいてください。
そして祝日データに関しては「祝日」と名前定義してあるとします。

画像の配置だとA11~A14セルすべてに同じ条件付き書式の設定を行います。
(数式はすべて同じです)
一つのセルに条件付き書式を二つ設定します。
① 日・祝日の設定
A11を選択 → 条件付き書式 → ・・・中略・・・ →...続きを読む

Qエクセルで作ったカレンダーの一日のセルに複数の予定を入れ、どんな種類の

エクセルで作ったカレンダーの一日のセルに複数の予定を入れ、どんな種類の予定が入っているか視覚的に把握したいです。

例えば9月5日に打ち合わせ、原稿締切、納品というタイプの違う予定が3つ入っていることをカレンダーを開けた瞬間に視覚的に一発で把握できるようにしたいのです。
打ち合わせを赤、原稿締切を青、納品を黄色と自分で決めておいて、カレンダーを開いて9月5日の欄を見ると赤、青、黄の三色が表示されているような。


そして9月5日にカーソルを打合わせたりクリックしたりすると、誰と打ち合わせなのか、誰の原稿の締め切りなのか、どこへ納品するのかという詳細がわかるようにしたいです。

そういうことは可能なのでしょうか?
可能だとすればどうすればできるでしょうか。

Aベストアンサー

No.2です!
再びお邪魔します。
↓のような感じでやってみました。
当方使用のExcel2003の場合です。
万一特定日に3つの条件が重なっても良いように、1日当たりのセルは4行使うようにしています。

日~土の曜日はあらかじめ入力しておきます。
尚、祝日は考慮していません。

すべてをシリアル値でやった方が月が変わっても同じカレンダーを使用できますので、
画像では年・月を入力するセルとその月の初日(1日)を表示するセルを作っておきます。
D1セルは
=DATE(A1,A2,1)
としておいて、A1に「年」・A2に「月」の数値を入力します。

B6セルに
=IF(MONTH($D$1-WEEKDAY($D$1)+7*((ROW(A1)+3)/4-1)+COLUMN(A1))=$A$2,$D$1-WEEKDAY($D$1)+7*(((ROW(A1)+3)/4)-1)+COLUMN(A1),"")
という数式を入れ、B6セルの表示形式はユーザー定義から d とだけしておきます。

B7~B9セルを範囲指定 → 書式 → 条件付書式 →
「条件1」→ 「セルの値が」 → 「次の値に等しい」 → 「打ち合わせ」 → 書式 → 「ピンク」を選択
同様に、「条件2」で「原稿締切」 → 書式 → 「うすい青」
「条件3」で「納品」 → 書式 → 「黄色」を選択

B6~B9を範囲指定し、B9セルのフィルハンドルで土曜の列までオートフィルでコピー
最後に今オートフィルでコピーしたB6~H9セルを範囲指定したまま
H9セルのフィルハンドルで下へ4行ずつまとめてコピーすると画像のような感じになります。

尚、9月5日のコメントは5日のセル上で右クリック → コメントの挿入 で適当に編集しています。
これで5日のセルをポイントすればコメントが表示されます。

以上、長々と書いてしまいました。
参考になればよいのですが・・・m(__)m

No.2です!
再びお邪魔します。
↓のような感じでやってみました。
当方使用のExcel2003の場合です。
万一特定日に3つの条件が重なっても良いように、1日当たりのセルは4行使うようにしています。

日~土の曜日はあらかじめ入力しておきます。
尚、祝日は考慮していません。

すべてをシリアル値でやった方が月が変わっても同じカレンダーを使用できますので、
画像では年・月を入力するセルとその月の初日(1日)を表示するセルを作っておきます。
D1セルは
=DATE(A1,A2,1)
としておいて、A1に「年」・A2に「月」...続きを読む

Qカレンダー作成 別シートよりデータ反映

目的は仕事で何日に誰が休むむかを一目で知りたくてエクセルで作成したカレンダーを作りました(縦型日付表示) 現在は届けの用紙が来たらカレンダーに手打ちしてます。

(シート1) 種類は名前に色分けをしたかったので種類を入れてます。
      (上手く作成できたら種類によって名前に色わけとかしたくて種類を作りました)
       横に名前が出るようにしてます。同じ日に休みの人が増えれば HIJKと横に続きます。
  A      B    C      D     E      F     G
1 日付   曜日  名前   種類  名前   種類
2 1日         桃    有給  (みかん)   (休み)
3 2日
4 3日
以下日にちは月末まであります。
別のシート(シート2)で作成したデータを反映させたいのですが同じ日付でデータがある場合
どうすれば反映されるのでしょうか?ためしにD3にカウント式(=COUNTIF($A$3:$A3,$A3))を入れて
順番をつけてみました。
  A      B    C      D
1 日付  名前  種類  カウント
2 5/1  桃    有給   1
3 5/3  奈々   半日   1
4 5/1  みかん 休み   2
以下休み届けなどが出されたら随時追加します。

わからないなりにネットで見て数式を入れてみました。
シート1のC2に
=IF(ISERROR(VLOOKUP(A2,シート2!$A:$C,2,0)),"",VLOOKUP(A2,シート2!$A:$C,2,0))
C3に
=IF(ISERROR(VLOOKUP(A2,休み!$A:$D,3,0)),"",VLOOKUP(A2,休み!$A:$D,3,0))
入力すると始めの 5/1 桃 有給はカレンダーにあがるのですが5/1 みかん 休みを出せません
あまりエクセルなどに詳しくなく、他の数式なども活用できるのかこういう表がそもそもエクセルでできるのかも勉強不足でわかりません。なんだかマネて作成したらあまりに長くて引数が足りませんみたいな表示がでました。
お手数をおかけしますが、教えていただけたら嬉しいです。よろしくお願い致します。

目的は仕事で何日に誰が休むむかを一目で知りたくてエクセルで作成したカレンダーを作りました(縦型日付表示) 現在は届けの用紙が来たらカレンダーに手打ちしてます。

(シート1) 種類は名前に色分けをしたかったので種類を入れてます。
      (上手く作成できたら種類によって名前に色わけとかしたくて種類を作りました)
       横に名前が出るようにしてます。同じ日に休みの人が増えれば HIJKと横に続きます。
  A      B    C      D     E      F     G...続きを読む

Aベストアンサー

こんばんは!
お望みの方法とは異なるかもしれませんが、手っ取り早くVBAでやってみました。
まずSheet1にカレンダーを作成します。
↓の画像で上側がSheet1、下側がSheet2とします。
(お手元のSheetは画像通りの配置にしてください)

まずSheet1のA1セルに西暦年を、C1セルに表示させたい月の数値を入力します。
A4セル(セルの表示形式はユーザー定義から d日 としておく)に
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")
という数式を入れます。
B4セル(セルの表示形式はユーザー定義から aaa としておく)に
=IF(A4="","",A4)
という数式を入れ → A4・B4セルを範囲指定 → B4セルのフィルハンドルで月末の34行目までコピー!
これでA1・C1セルの数値を入れ替えるだけでカレンダーができます。

次にAlt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト

Dim i As Long, j As Long, lastRow As Long, lastCol As Long, wS As Worksheet 'この行から
Sub 表示()
Set wS = Worksheets("Sheet1")
lastCol = wS.Cells(3, Columns.Count).End(xlToLeft).Column
With Worksheets("Sheet2")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "C")).ClearContents
End If
For i = 4 To 34
For j = 3 To lastCol Step 2
If wS.Cells(i, j) <> "" Then
With .Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = wS.Cells(i, "A")
.Offset(, 1) = wS.Cells(i, j)
.Offset(, 2) = wS.Cells(i, j + 1)
End With
End If
Next j
Next i
End With
End Sub 'この行まで

そしてExcel画面に戻り、画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim lastCol As Long
lastCol = Cells(3, Columns.Count).End(xlToLeft).Column
If Intersect(Target, Range(Cells(4, "C"), Cells(34, lastCol))) Is Nothing Then Exit Sub
Call 表示
End Sub 'この行まで

最後にExcel画面に戻り、Sheet2のA列の表示形式を「日付」にしておきます。

これでSheet1のデータ変更があるたびにSheet2に画像のような感じで表示されます。m(_ _)m

こんばんは!
お望みの方法とは異なるかもしれませんが、手っ取り早くVBAでやってみました。
まずSheet1にカレンダーを作成します。
↓の画像で上側がSheet1、下側がSheet2とします。
(お手元のSheetは画像通りの配置にしてください)

まずSheet1のA1セルに西暦年を、C1セルに表示させたい月の数値を入力します。
A4セル(セルの表示形式はユーザー定義から d日 としておく)に
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")
という数式を入れます。
B4セル(セルの表示形式はユーザー定義...続きを読む

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

QEXCEL 条件付き書式 3つの条件を適用させる

ある施設の入館数のデータ管理をしたいと思います。
表で曜日、入館数を別の列にしてます。

例えば、月曜という表示をA1、月曜日の入館数をA2に。
火曜はB1、火曜日の入館数をB2に入力していきます。

条件付き書式で、
「平日の入館数が500以下だったら赤で入館数の文字を変えて、土日祝日は1000以下だったら赤く変える」

という風に平日と土日祝日では条件を変えたいのですが、月が替わった時にシートを再利用したいのでできればシート作成時にその都度平日の所だけに条件設定して土日にも条件設定してではなく1日から31日まで一列で設定できないのでしょうか?

教えてください。よろしくお願いします。

Aベストアンサー

一例です。

1.曜日を文字で入力するのではなく、日付を入力して、セルの書式設定で「ユーザー定義」に「aaaa」と
 入力して曜日を表示させます。
 例えば、A1に4/1と入力し、書式設定を変更すると「月曜日」となります。
 「月曜」と表示したければ、「aaa"曜"」としてください。
 次の月も使うことを考えて、B1には=A1+1として、あとはそのセルを右にドラックして式をコピー。

2.A2セル(入館数を入力するセル)には、以下のような条件付き書式を設定します。
 条件1:=AND(WEEKDAY(A$1,2)<6,A$2<=500)
 条件2:=AND(WEEKDAY(A$1,2)>=6,A$2<=1000)
 WEEKDAY関数は、該当するシリアル値に対応する曜日を数字で返します。
 種類を2にすると、月曜=1~日曜=7の数字が返ります。
 平日は6より小さくなるので、AND関数でその条件と500以下、という条件を合わせます。
 祝日に関しては、別シートにでも祝日表を作り、MATCH関数での条件を追加してください。

 あとは、その条件付き書式を設定したセルを、書式コピーすればOK。

以下のURLが参考になると思います。

参考URL:http://www.eurus.dti.ne.jp/yoneyama/Excel/jyo-syo.html

一例です。

1.曜日を文字で入力するのではなく、日付を入力して、セルの書式設定で「ユーザー定義」に「aaaa」と
 入力して曜日を表示させます。
 例えば、A1に4/1と入力し、書式設定を変更すると「月曜日」となります。
 「月曜」と表示したければ、「aaa"曜"」としてください。
 次の月も使うことを考えて、B1には=A1+1として、あとはそのセルを右にドラックして式をコピー。

2.A2セル(入館数を入力するセル)には、以下のような条件付き書式を設定します。
 条件1:=AND(WEEKDAY(A$1,2)<6,A$2<=500)
 ...続きを読む

Q1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成

1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成したい。

2.別シートの月間予定表(1年分を横に並べている)では、月毎に
(1)当月分の左端に年間予定表の当月分、
(2)その右に、年間予定表の予定項目ごとに[列を与えて]整理して予定を書いている。

3.月間予定表の(1)を年間予定表と連動させたい。
即ち、年間予定表の予定項目を追加、書き換え、削除したとき、月間予定表の(1)が自動的に訂正されるようにしたい。

4.年間予定表は6月分をA4横1ページに、月間予定表は一月分をA4縦1ページにプリントアウトしている。画面で見るだけではなく、プリントも利用している。

 年間予定が時々変更になり、それに合わせて月間予定を書き変えねばならないので、連動すれば大変助かります。よろしくお願いします。






以下は多くの人にとって読む必要はないと思います。

ご助言の参考になればと思い、今使っている年間予定表・月間予定表の実態を示したものです。

☆年間予定表は1行目に月(1月から12月)
2行目以下は月ごとに、最左端(1月の場合A列)に日付、その次の列(1月の場合B列)に曜日 その次の列(1月の場合C列)に年間予定項目(例:箱根ドライブ、九州ドライブ、自治会総会…)を記入する。

☆別シートの月間予定表:
ア:各月ごと(例えば1月)の最初の3列は年間予定表(例えば1月)の月名、日付、曜日、年間予定項目をカット&コピーで張り付ける。
 又は、=関数を使う。即ち月間予定表のa列1行目に=を使って、年間予定表のa列1行目をもってくる。月間予定表のa列1行目を31日までドラッグして年間予定表に同期させる。同様のことを、残りの2列についても実行する。(この方法は1月分に3回、1年分で36回繰り返さなければならない。もっと楽な方法、ありません?)

イ:各月ごとの4列目から概ね10列目に年間予定項目ごとの詳細計画を記入する。
例えば、
4列目の1行目(タイトル行)箱根ドライブ
4列目の2行目以下の該当する日ごとに、(例えば4日)箱根の情報収集、(6日)旅館決定、(15日)ドライブ実施 
5列目の1行目(タイトル行)九州ドライブ
5列目の2行目以下の該当する日ごとに、(例えば8日)九州の情報収集、(10日)旅館決定、(11日)友人に連絡 (25日)ドライブ実施

以上です。

1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成したい。

2.別シートの月間予定表(1年分を横に並べている)では、月毎に
(1)当月分の左端に年間予定表の当月分、
(2)その右に、年間予定表の予定項目ごとに[列を与えて]整理して予定を書いている。

3.月間予定表の(1)を年間予定表と連動させたい。
即ち、年間予定表の予定項目を追加、書き換え、削除したとき、月間予定表の(1)が自動的に訂正されるようにしたい。

4.年間予定表は6月分をA4横1ページに、月間予定表は一月分をA4縦1ペー...続きを読む

Aベストアンサー

>(2)I2セルに  =1*("2010年"&J$1&ROW()-1&"日")
=1*("2010年"&J$1&"1日")
で良いですねm(_ _)m
にしてください。1* を取ると 例として4月なら「2010年4月1日」になるはず。
1をかけることによって、シリアル値(数値)になります。

>I3セルに  =IF(DAY(I2)+1=DAY(I2+1),I2+1,"")
はI2セルがシリアル値なら計算されます。
単純に29日以降の処理なので 28日までは =I2+1だけでも同じ。

>(3)ただし、I2:I32セルの書式設定
問題なし。日付ではなく数値が出てくるので、見た目の問題だけ。
>(4)J2セルに  =IF(I2="","",INDEX(B2:G2,MATCH($J$1,$B$1:$G$1,0))&"")
これがメイン。
J1セル文字列で「4月」、 B1:G1セル文字列で 1月、2月、・・・
「4月」がどこにあるかをMATCH関数で探し、何番目かを数値で返す。
返された値をもとに、B2:G2セルの値を返します
「4月」が全角の「4月」になっていたり、空白が紛れていたりするなど、
完全一致していない可能性もありますので確認してください。

>(5)なお、「J1セルに月を入力すると、予定が切り替わる」ことが一番の望みなので上記のテストをしてみました。
良いと思います。

>ご指摘の「レイアウトが重要な気もしますが?」はその通りです。
レイアウトは、上記回答のレイアウトで目的が達成できそうなら不要です。
どのセルに何を入れているか。がわかれば、それに沿った回答をする。
そのほうが間違いな少なく、効率が良いじゃないですか。

>(2)I2セルに  =1*("2010年"&J$1&ROW()-1&"日")
=1*("2010年"&J$1&"1日")
で良いですねm(_ _)m
にしてください。1* を取ると 例として4月なら「2010年4月1日」になるはず。
1をかけることによって、シリアル値(数値)になります。

>I3セルに  =IF(DAY(I2)+1=DAY(I2+1),I2+1,"")
はI2セルがシリアル値なら計算されます。
単純に29日以降の処理なので 28日までは =I2+1だけでも同じ。

>(3)ただし、I2:I32セルの書式設定
問題なし。日付ではなく数値が出てくるので、見た目の問題だけ。
>(4)J2セルに  =IF(I2="...続きを読む

Qエクセルのスケジュール表からカレンダーをつくりたい

エクセルで11日から翌月10日までの横方向のスケジュール表があります。
この表を日曜から始まるカレンダー形式にする方法を教えてください。

エクセルのA1に数字で11、B1に12、C1に13と日付が入力されています。今月は30日でT1が30、AD1が10となりますので同じ数字は入らないことになります。日付の数字だけで月の数字はありません。
A2は曜日で土、以降B2が日、C2が月・・・・の文字列
A3からは予定事項(A)が入力されており、空欄もあります
A4からは予定事項(B)が入力されており空欄はありません。

日曜から始まるカレンダー表になるように手作業で作っていますが、関数か、マクロで簡単に作る方法を教えてください。
曜日を基準にして配置すればいいのだろうと思っていますが、丸投げのようになって恐縮ですが、よろしくお願いします。
サンプルではカレンダーに罫線が入っていますが、これは後から手作業でもいいです。

Aベストアンサー

No.2です。
たびたびごめんなさい。

投稿後思ったのですが、アップした画像を見ると各行にわざわざ「曜日」を入れる必要はないように思います。
↓の画像のように1行目(7行目)に曜日を入力しておけばその列は○曜日というのは判断できますので、
各週は3行使用するだけで良いのではないでしょうか?

↓の画像の場合の数式を載せておきます。
1行目~3行目は前回と同じです。

B8セルに
=IF(COUNTIF($2:$2,DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A3)/3-1)),DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A3)/3-1),"")

B9セルに
=IF(B8="","",INDEX($4:$4,,MATCH(B8,$2:$2,0))&"")

B10セルに
=IF(B8="","",INDEX($5:$5,,MATCH(B8,$2:$2,0))&"")

と数式を各々入れておき、B8~B10セルを範囲指定 → B10セルのフィルハンドルでH列までコピー!
そのまま(3行が範囲指定されている状態で)H10セルのフィルハンドルで下へ3行ずつコピー!

これで画像のような感じになります。

※ あくまで私的感覚ですが、
こちらの方が少しすっきりしているように思われます。m(_ _)m

No.2です。
たびたびごめんなさい。

投稿後思ったのですが、アップした画像を見ると各行にわざわざ「曜日」を入れる必要はないように思います。
↓の画像のように1行目(7行目)に曜日を入力しておけばその列は○曜日というのは判断できますので、
各週は3行使用するだけで良いのではないでしょうか?

↓の画像の場合の数式を載せておきます。
1行目~3行目は前回と同じです。

B8セルに
=IF(COUNTIF($2:$2,DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A3)/...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング