小技集

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



2023年8月24日【ID:0】

メンバー限定

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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


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

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


15日を締め日とした場合(1行目)

まずは、締め日を15日とした場合の数式を考えていきます。

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

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

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

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

=DATE(B2,B3-1,16)

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


15日を締め日とした場合(2行目以降)

続いて、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,""),"")

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

ExcelVBAレベル確認

締め日を自由に変更できるようにする

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


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

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




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

メンバーとは


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

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


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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





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

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


- 人気の記事 -



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



サイト累計閲覧数

7174590

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

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】VBAとOfficeスクリプトのコードを比較(対象行の削除)

【ExcelVBA】チェックボックスを動的に入力(一括チェック)

【Excel】各担当ごとにシートを分割

【Excel】「Ctrl+A」の別の活用例

【Excel】シートの増減に対応した串刺し演算

【Excel】文章から特定の値を表形式で抽出

【Excel】各商品の最終購入日を表から抽出する

【Excel】スケジュール表の今日の日付を自動で色付け

【Excel】テスト用の数値データを瞬時に入力

【ExcelVBA】表の先頭にデータを追加する機能(ノーコード)

【Excel】VLOOKUPより便利なINDEX・MATCH

【Excel】分表記を時刻表記(時:分)に変換

【Excel】オンライン会議で使える拡大機能

【Excel】セル内でスクロール!?

【ExcelVBA】表の絞り込みと並べ替えを一瞬でリセット

【Word】文頭のアルファベットが自動で大文字になる

【Excel】複数シートの表から検索して値を抽出

【Excel】自由入力もできるドロップダウンリスト

【ExcelVBA】選択した値の関連データを自動で抽出

【Excel】INT関数とROUNDDOWN関数の違い

【Excel】入力確定後の移動先

【ExcelVBA】複数のExcelファイルから必要なデータのみを自動抽出

【Excel】テーブルを使わずに自動で拡張する範囲設定

【ExcelVBA】省略した項目を自動で入力

【Excel】グラフにデータを瞬時に追加(離れている範囲でもOK)





一覧ページへ

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