「excel 関数 第一土曜日」
といった検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。
Excelで、ある年月の第1土曜日を取得するには、どのような関数を使えばいいのか探していた方による検索です。
CEILING関数を使って第1土曜日を計算する
いろいろな考え方がありますが、CEILING(シーリング)関数を使うと、シンプルな数式で済みます。
※A1セルに年、B1セルに月を表す整数が入力されているときにC1セルに第1土曜日を表示する例
C1セルに
=CEILING(DATE(A1, B1, 1), 7)
と入力
↓
C1セルに日付書式を設定する
CEILING関数とは
CEILING関数は、第1引数に指定した数値を、第2引数で指定した基準値の倍数になるように、切り上げてくれる関数です。
例えば、
=CEILING(1, 7)
=CEILING(6, 7)
=CEILING(7, 7)
とした場合には、いずれも「7」が出力されます。
=CEILING(8, 7)
=CEILING(14, 7)
とした場合には、いずれも「14」が出力されます。
土曜日は必ず7で割り切れる
そもそも日付データの実体は、1900年1月1日を「1」として1日経過するごとに「1」が加算される、シリアル値と呼ばれる整数です。
そして土曜日は、必ず7で割り切れる整数、7の倍数になっています。
ということは第1土曜日は、ある月の1日以降で、最初の7で割り切れる整数、7の倍数になっている日と言い換えられます。
この考え方をベースにして、DATE関数を使って取得したある年月の1日を、CEILING関数の第1引数に、
=CEILING(DATE(A1, B1, 1), 7)
第2引数に7を、
=CEILING(DATE(A1, B1, 1), 7)
それぞれ指定しているわけです。
表示形式を日付に設定
初期状態のセルで、上述の、
=CEILING(DATE(A1, B1, 1), 7)
という数式を入力しただけでは、
44170
のようなシリアル値がそのまま表示されてしまうので、
[セルの書式設定]ダイアログなどで、日付書式を適宜設定してください。
第n土曜日を計算する
第2土曜日を取得したい場合は、8日以降で最初の7で割り切れる日、7の倍数の日が第2土曜に該当しますから、
=CEILING(DATE(A1, B1, 8), 7)
=CEILING(DATE(A1, B1, 1) + 7, 7)
などとしてください。
同様に、第3土曜日の場合は、15日以降で最初の7で割り切れる日ですから、
=CEILING(DATE(A1, B1, 15), 7)
=CEILING(DATE(A1, B1, 1) + 14, 7)
などとしてください。
もちろん第4土曜日なら、
=CEILING(DATE(A1, B1, 22), 7)
=CEILING(DATE(A1, B1, 1) + 21, 7)
です。
最終更新日時:2021-08-11 16:09
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 第1土曜日を取得する-CEILING関数