Excel~カレンダー作成2日以降。翌月の日付を表示しない処理も:IF,MONTH関数

2021/7/22 随分古いExcelファイルなもので、自分でも記憶が定かではなくなっております。 完成形を公開しますので、ご自由にお使いくださいませ。

直接ダウンロード→予約状況管理表
とりあえず見てみる→GoogleDrive
 

だんだん、疲れてきました、、、
普通に作ってる方が簡単で~す・・・・・Σ( ̄⊥ ̄lll)・・・・・

まず、出来上がり図。
予約状況管理表出来上がり

前回は、IF関数とOR関数を使い、もし年(D1)も月(N1)も入力されていなかった場合のエラー回避をした数式を立てました。
Excel~カレンダー作成、エラー処理:IF,OR関数 

ポイント:

1.年と月を入力すると自動で切り替わるカレンダー(土日色つき)
2.年と月を入力すると自動で稼働日数計算
3.名前を入力すると自動で入る項目(ここでは介護度)
4.入所日と退所日を入力すると自動でカレンダーがうまる(色分け)
5.毎日の入所者と退所者を自動で把握
6.部屋別の利用状況を自動計算
7.一日あたりの利用者及び一人あたりの利用日数を自動計算
予約状況管理表自動カレンダー表示6

カレンダー2日以降の数式作成

今回は2日以降のセルの数式を作ります。

K3セルに”1”を足せばまずはオッケーです。
=K3+1
そしてこの数式を横方向にコピーします。
予約状況管理表自動カレンダー表示3

そうすると・・・
予約状況管理表翌月分が表示されてしまう

月末の部分。
31日ある月は問題ないのですが、30日や28日の月は翌月分の1~3日が表示されてしまいます。
ちょっとこれはいただけない、、、

このように、一見単純な数式でオッケーといえばオッケーですがなんとかしたい。

翌月の日付が表示されてしまうのをなんとかしたい

そこで、「もし計算した結果の値がN1(4月)であれば、計算結果を表示。
そうでなければ、空白にせよ。」という数式を立てます。
再び、IF関数ですね。
予約状況管理表自動カレンダー表示5

=IF(MONTH(K3+1)=$N$1,K3+1,””)
=もし、K3セルに1日足した日付がN1(4月)ならば、K3+1を表示。
そうでなければ(翌月(5月))ならば空白を表示。
ってことですね。
ポイントは、数式を横にコピーすることを考慮して”MONTH(K3+1)=$N$1”のN1が絶対参照になっていること。
絶対参照:Excel豆知識6-1:エクセル:絶対参照・相対参照

*数式のコピーは・・・
予約状況管理表数式のコピー

上図のように、セルの右端にマウスを持っていくと「+」の形にカーソルの形が変わります。
そのままクリックしたまま右方向にドラッグすると数式がコピーされます。

ここまでで、カレンダーの日付表示は概ね出来上がりましたね。

もし、年と月のセルが未入力だったら

しかし、もうひとつ。
前回対処した、もし、年(D1)と月(N1)のセルが未入力だったら・・・?

この処理で、1日が空白になった場合、2日以降がエラーになります。

予約状況管理表VALUEエラー

#VALUE!エラーとなってるので回避します。

今度は下図のように
=IF(K3=””,””,IF(MONTH(K3+1)=$N$1,K3+1,””))
もし、K3が空白なら空白を返す。
そうでなければ計算結果「IF(MONTH(K3+1)=$N$1,K3+1,””)」を返せ。
前回、年と月どちらかが未入力ならK3セルは空白にするという数式を立てました。
ですので、年(D1)と月(N1)、どちらかが未入力ならK3セルは空白のはずですね。
予約状況管理表エラー回避

末日の翌月表示の対処のIF文と上記の#VALUE!エラー回避のIF文とで、IF文が二つ重なってますが意味をよく見極めれば簡単で単純です。

※エラー回避にはIFERRORやISERRORも使えますが、それはまたいずれいつかどこかで・・・?
予約状況管理表日付表示まで

それでは次回は今回の結果を元に稼働日数を計算します。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA