小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2023年8月24日【ID:0】

メンバー限定

【Excel】締め日を考慮したカレンダーの作成方法


締め日を考慮した以下のようなカレンダーを作成していきます。
※こちらのExcelファイルは配布しています。

こちらのカレンダーは、セルB2とB3に年月を入力し、セルD3に締め日を入力することで、自動でセルA6以降にカレンダーが表示される仕組みになっています。
まずは、締め日を15日とした場合の数式を考えていきます。

締め日を15日とした場合、対象期間はひと月前の16日から対象月の15日までになります。
まず、開始日は「ひと月前の16日」で固定になるため、そのような値を数式で求めていきます。

こちらで使用する関数はDATE関数になります。

=DATE(年, 月, 日)
// 指定した年月日の日付を表す値を返す

DATE関数を用いて、ひと月前の16日を求めた数式は以下になります。

=DATE(B2,B3-1,16)

また、DATE関数は、月日の桁上がり桁下がりにも対応しています。
そのため、以下のような月にも対応することができます。


続いて、2行目以降の日付を求めていきます。
17日以降に関しては、基本は前のセルの日付に1日ずつ加算していけばよいのですが、条件として対象月の16日以降は対象外になってしまいます。
そのため、IF関数を用いて1日加算した日付が対象月の16日よりも前の場合は表示、それ以外は非表示という式にする必要があります。

=IF(論理式, [値が真の場合], [値が偽の場合])
// 論理式の条件を満たしている場合は、[値が真の場合]に設定した内容を表示、満たしていない場合は、[値が偽の場合]に設定した内容を表示する

IF関数を用いた数式は以下になります。

=IF(A6+1<DATE($B$2,$B$3,16),A6+1,"")
// 下の行へコピーしても問題ないように、位置を固定する必要のあるセル(B2,B3)に関しては絶対参照にしています

後は、こちらの数式を最大31日分を表示できるようにコピーします。

ただ、この数式をコピーすると、期間が31日ない月(3月など)の場合、エラーが表示されることがあります。

エラーの原因は、空白("")に1を加えているためです。

そのため、IFERROR関数を用いた数式にします。

=IFERROR(値, エラーの場合の値)
// 指定した値(数式)がエラーの場青は、[エラーの場合の値]に設定した内容を表示する

IFERROR関数を用いた数式は以下になります。

=IFERROR(IF(A6+1<DATE($B$2,$B$3,16),A6+1,""),"")

このようにエラーを無くすことができました。

では次に、締め日を自由に変更できるように修正していきます。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。



IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
1分で読める小技集 1分で読める小技集





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

2262801

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ