- ベストアンサー
Excelでの予定表作成で月をまたぐ場合の表示
- Excelで予定表を作成し、月毎に1~31日までの表示欄を作る方法について質問です。
- 基準日から割当て自動で日付が入るようになっていますが、2月の場合に2/28を越えて3/1、3/2、3/3が余白に表示されないようにする方法を教えてください。
- 現在考えている案は、29~31日の条件付き書式を設定して非表示にすることですが、他に良い方法はありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
(A2セルの場合) 上のセル(A1)の+1日をA2に表示するとして =A1+1 これだけだと、月が変わっても出てしまうので A1セルの「月」とA1セル+1日の「月」を比較して =IF(MONTH(A1)=MONTH(A1+1),A1+1,"") これでもまだうまくいかない。 何故なら、たとえば2月の列の3月1日は空白になるが、その次の行がエラーになる そこで、上のセルが空白のときの処理を加える =IF(A1="","",IF(MONTH(A1)=MONTH(A1+1),A1+1,"")) これをA2に記入して下にコピーすれば行ける 「余白となる可能性がある29~31までの3日間だけ」をこの数式(参照元は1日前のセル)にしてもOK
その他の回答 (3)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.2 さんの 3 本目の数式などでオッケー。ベストアンサーは辞退します。 その他のセルには、次式を入力することをお勧めできます。 A1 2013/1/1 ……固定 あるいは =date(year(today()),1,1) ……年が変わってもカレンダーが自動的に追従 B1 =a1 ……入力直後は、曜日ではなく日付が表示されるかも(下の説明を参照) F1 =date(year(a1),month(a1)+1,1) …… 1/1 以外の 11 か月の初日を自動的に表示 曜日の列には、セルの書式設定から、書式記号「aaa」を入力。日付が曜日に変化します。「""」が表示されているセルは文字列であり、そのセルではこの書式記号が無視されるので、問題ありません。 上式では DATE 関数で 1 か月後を求めていますが、前月が 2013 年 12 月という場合でも、その翌月 2013 年 13 月は 2014 年 1 月だと計算してくれるので、問題ありません。
お礼
解決しました!ありがとうございました! ベストアンサー以外の回答も今後の参考にさせて頂きます!
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! すでに適切な回答は出ていますので、参考程度で・・・ ↓の画像のように各月は4列使用・各月の間には必ず1列空白列がある場合の一例です。 一度数式を入れると今後一切手を付けなくても良いようにしてみました。 数式としてはくどくなりますが・・・ A1セルに =IF(MONTH(DATE(YEAR(TODAY()),COLUMN(E1)/5,ROW(A1)))=COLUMN(E1)/5,DATE(YEAR(TODAY()),COLUMN(E1)/5,ROW(A1)),"") という数式を入れ → セルの表示形式は 「日付」に! B1セルに =IF(A1="","",TEXT(A1,"aaa")) という数式を入れA1・B1セルを範囲指定 → B1セルのフィルハンドルで下へコピー! 次にA1・B1セルを選択 → 右クリック → コピー → F1セルを選択 → 右クリック → 貼り付け K1セルを選択 → 右クリック → 貼り付け・・・ これで各月の1日が表示されます。 この操作を12月の列まで行い行方向にオートフィルでコピー! これで何とかご希望の表示にならないでしょうか? ※ 各列にそれぞれ数式を入れなくてもよいように、数式により列合わせしていますので、 列の配置が異なる場合は当然数式も変わってきます。m(_ _)m
お礼
解決しました!ありがとうございました! ベストアンサー以外の回答も今後の参考にさせて頂きます!
- tsubuyuki
- ベストアンサー率45% (699/1545)
> 条件付き書式を設定してフォントを変えて非表示に見せれば良いのではないか 合っているともいえますし、間違っているともいえる発想ですね。 とりあえず、1/1がA1セルに入っているとして、 A1から範囲を指定して、条件付き書式 式が:=MONTH(A1)<>MONTH(A$1) 書式:任意(文字色=背景色 にするとパッと見では見えなくなりますよ。) としてやれば、同じ列で月が変わった日の書式が変わります。 ただ、気になるのが一つ。 (珍しく)リンク先の図も確認させていただきましたが、 どうやら月曜以外は塗りつぶしをかけているようで(逆かな)。 こうなると若干厄介です。 条件付き書式で曜日ごとに塗り潰しているなら、それも考慮しないといけませんね。 AND関数を駆使してやりましょう。 でも、月が変わった分は「塗りつぶし無し、文字色白」としてやれば解決かな、とも思います。 日付をどうやって入力しているのか?にもよります。 日付を直接入力しているのであれば条件付き書式に頼らないと厳しいです。 式でこれを出してみるのも面白いです。 例えば1/1を入れたいセル(どこでも良いですよ)に 式:=IF(MONTH(DATE(2013,COLUMN(A1),ROW(A1)))<>COLUMN(A1),"",DATE(2013,COLUMN(A1),ROW(A1))) ※どこのセルに入力するとしても、1/1についてはA1を指定します。 で、これを縦横にフィル(コピー)してやります。 すると、あら不思議・・と出来上がります。 使っている関数は、IF、MONTH、DATE、COLUMN、ROWの5種類です。 ちょっとややこしいですが、読み解いてくださいね(笑)。 以上、参考まで。
お礼
解決しました!ありがとうございました! ベストアンサー以外の回答も今後の参考にさせて頂きます!
お礼
おかげ様で解決しました!ありがとうございました! シンプルでとても良いですね。