こんにちは。
最近、友達が経営しているお店向けのシフト表を改善しています。
今日は、その中の基礎中の基礎!カレンダー管理における祝日の管理の仕方?について実装したいと思っていたのですが、Excelはなーんも手伝ってくれないようです。
Excelを生み出した開発者の祖国には祝日という考え方がないのかもしれませーん💦
よって、外付けで祝日を管理する方法について備忘録します。
■ 動作環境
OS: Windows 8.1(64ビット)
Excel: 2013(32ビット)
■ 自前の祝日リスト方式
どこぞから持ってきた祝日一覧(の情報)をExcel上のどこかへ記載してしまう方式です。Excel上に情報としてもってしまえば、あとは煮るなり焼くなり如何様にも操作できますよね。
今回は、国が管理しているWebサイト(内閣府の「国民の祝日」サイト)から情報を取得しました。
例では専用の単独シートに記載しましたが、場所はほんとにどこでも良いと思います。式やVBAで操作する分には、記載する場所に縛りはないですよね。^^
「祝日リスト」シートを活用して、月別のシフト表にて祝日/曜日を組み合わせて表示することができます。
たとえば図上のJ13(赤枠セル)には、次の式を設定しました!
> COUNTIF(祝日リスト!$B$3:$B$18, J12) > 0
COUNTIF関数にて、該当の日付値(J12)が、祝日リストの「日付」一覧(祝日リスト!$B$3:$B$18)に存在するか確認します(日付が合致するセル個数をカウントしていますので、計算結果が0より大きければ、存在する…という意味になります)。
そしてIF文制御により、祝日リストに存在する場合は、文字列の『祝』を設定しています。
祝日リストをベタに『祝日リスト!$B$3:$B$18』と書いていますが、事前に名前定義をしておけばもう少しスマートに書けます💦
> TEXT(J12, "aaa")
祝日リストに存在しない場合は、通常の曜日文字列を設定したいため、TEXT関数で日付値の表示形式を変更しています("aaa"の場合は、曜日の1文字表記)。
■ まとめ
いかがでしたか?
ネット漁ると本方式が実にたくさん紹介されています💦
ですが、よくよく考えると祝日リストを毎年メンテナンスしないといけないので面倒ですし、他人が使うExcelツールとなると何ともポンコツツールに見えます💦
次回は、自動的に祝日情報を持ってくるような方式ができないか?検討し、備忘録できれば…と考えています。
Comments