すたらブログ

文系Webプログラマの備忘録

Excel: 1月分で1ページの簡単な年度予定表を作りました

OneDriveでは元号が表示されずに西暦年に、そして曜日の表示が英語になってしまっていますが、ダウンロードしてExcelや互換ソフトのLibreOfficeCalcで開けば正常に表示されます。

特徴

  • A4サイズ
  • 年度始めの4月のワークシートのA1セルの西暦年を変更するだけで、全ての日付と曜日が連動して変更される。

経緯

来月から1年間、父が町内会長を務めることになりました。
まあ、母も手伝うと思いますが。
それで、経験者の方から「活動予定表と記録を作っておくと便利だし、是非それを次の人に引き継がせてほしい」と勧められたそうです。
過去の活動記録はB5ノートに手書きされていましたが、PCできれいに用紙を作ってほしいと母に頼まれました。

関数

どうせなら来年度だけでなくずっと使えるテンプレートを作ろうと思ったので、1箇所で年を指定するだけでブック全体の日付と曜日が変更されるようにしました。
目的に合う関数がないかを調べながら、2~3時間かけて苦心して作成。

4月のシートの見出し

単純なDATE関数です。

// 関数
=DATE(2015,4,1)

// セルの書式
yyyy"年 ("ggge"年) "m"月"

日付

現在の行番号 - 1がその月の末日の数値以内ならば日付を表示し、超えているならば空白にします。

=IF(
    ROW()-1<=DAY(EOMONTH($A$1,0)),
    ROW()-1,
    ""
)

曜日

日付とほぼ同じですが、TRUEの戻り値は数値ではなく日付です。
そしてその曜日だけを表示するようにセルの書式で設定しています。

// 関数
=IF(
    ROW()-1<=DAY(EOMONTH($A$1,0)),
    DATE(YEAR($A$1),MONTH($A$1),ROW()-1),
    ""
)

// セルの書式
AAA

他の月の見出し

別のシートである4月のA1セルの値を利用しています。

// 4月と同年の月 (例: 2015年5月)
=DATE(YEAR('4月(基準)'!A1:E1),5,1)

// 翌年の月 (例: 2016年1月)
=DATE(YEAR('4月(基準)'!A1:E1)+1,1,1)

感想

Excelはほとんど扱わないのですが、プログラミングの勘が役に立ってくれて楽しく関数を組むことができました。
ただ、2013年2月にMOS: Excel 2010を取得したのですが、重要な操作をいくつも忘れていました (^ ^;)
そして、たかが予定表に時間をかけすぎました…orz