やまものブログ

メモ書きブログです (^_^;A

LibreOffice Calc 土曜日を列挙

スプレッドシート(LibreOffice Calc)で、ある年の土曜日を列挙してみました。
セル A1 に 2016 を入力すると、B 列に 2016年の土曜日の日付が列挙されます。
イメージ 1


使った関数は DATEWEEKDAY の2つ。LibreOffice のヘルプの一部を抜粋します。

DATE
年、月、日で指定された日付を計算し、それをセルの書式設定に従って表示します。

WEEKDAY
タイプがないまたはタイプ = 1 が指定されている場合、日付は 1 (日曜) から 7 (土曜) の間の整数として返されます。

WEEKDAY の戻り値、それが表す曜日を具体的に列挙してみます。
1 …  日
2 …  月
3 …  火
4 …  水
5 …  木
6 …  金
7 …  土

これを使うと、元旦の曜日は以下で表せます。
WEEKDAY(DATE(A1,1,1))

この元旦の曜日、そこから最初の土曜日、経過日数は以下の通り。
日 … 1/7 … 6
月 … 1/6 … 5
火 … 1/5 … 4
水 … 1/4 … 3
木 … 1/3 … 2
金 … 1/2 … 1
土 … 1/1 … 0

この経過日数は WEEKDAY で表せます。
7 - WEEKDAY(元旦の曜日)

よって、最初の土曜日の日付はこうなります。
その年の元旦 + 7 - WEEKDAY(元旦の曜日)

具体的には下記スクリーンショットのとおり。
イメージ 2

次の土曜日は一週間後なので +7 していけば求まります。
イメージ 3


ブログは毎週土曜日にアップデートしたい
と思ったので、とりあえず、土曜日を列挙してみました