Twitterでお題が出てた
WEEKDAY関数やWORKDAY関数でもいけるけど、他列に曜日を表示してあげると実用上便利かも、と思ってtext()関数使ってRTしました。
こういうお題大好きで職場でちょくちょく「はい喜んで~」ムーブしてます。
わかりやすい手順
1行目にヘッダを入れる。
- A1 日付
- B1 曜日
- C1 もし日曜なら次の日を表示
A2に以下の関数を入れて下にコピーしていく。
=EDATE(TODAY(),ROW()-2)
すると、今日の日付から始まり、翌月の同じ日を連続で表示してくれます。
EDATE関数の中に入っているROW()関数は、入力した行の位置(2行目なら2)を返すので、
下方向にコピーして引数を動的に設定したいときに便利です。
曜日をわかりやすくするように、B2セルに以下の関数を入れて曜日を表示させます。
=TEXT(A2,"aaa")
これを下にコピーしていくと、A列の日付の曜日が漢字1文字(日、月、火、水、木、金、土)で表示されます。
最後、C2セルに、以下の式を入力して、下にコピーして行ってください。
=IF(B2="日",EDATE(A2,0)+1,EDATE(A2,0))
分かりやすくるため、条件付き書式でB列の曜日が[日]になっている行を赤白抜きにしましょう。
🚩数式を使用して、書式設定するセルを決定
以下図のように、数式を入力してください。
=$B1="日"
するとこうなります。
B列が日の行だけ、赤塗り白抜き文字に変わりました。
C,D列は翌日の日付と月を表示していますね。
段階を踏んで説明するために4列使用しましたが、各列に入れた式をネストしていくと
1列だけで完結させることもできます。
以下の数式をA2セルに入れて、下にコピーして行ってみてください。
=IF(TEXT(EDATE(TODAY(),ROW()-2),"aaa")="日",EDATE(TODAY(),ROW()-2)+1,EDATE(TODAY(),ROW()-2))
毎月24日を表示して、8行目の12月24日は日曜日なのでが2023年12月25日になってますね!
開始の日を固定したいときはtoday()の箇所をDATE(year,month,day)関数で日付にしてあげると良いです。
※数値の表示設定を日付にしておかないと5桁の数字が出てくるので注意!