rex0220 計算式プラグインで、テーブルに指定月のカレンダーを作ってみます。
概要
指定月の日数分のテーブル行を作成して、各行に日付を設定します。
- 月の日数分のテーブル行
- 月~金のみのテーブル行
操作例(月~金の曜日のテーブル行)
プラグイン設定(月の日数分のテーブル行)
- 年月: 月の1日目に自動変換
- テーブル: 年月の最終日で、テーブル行数を指定
- 日付: 年月にテーブル行位置を加算
- 曜日: 日付を 0 ~ 6 の曜日に変換後、"日月火水木金土"の位置で曜日に変換
.js
// 年月
DATE_FORMAT(年月,"YYYY-MM-01")
// テーブル
DATE_ENDOF(年月, "month", "DD")
// 番号
ROWNO(テーブル)+1
// 日付
DATE_ADD(年月,ROWNO(テーブル),"day")
// 曜日
MID("日月火水木金土",DATE_FORMAT(日付,"e")+1,1)
プラグイン設定(月~金のみのテーブル行)
- 年月: 月の1日目に自動変換
- テーブル: 年月の最終日から土日の日数を引いて、行数を算出
- 日付: 前行が金曜の場合、+2。
- 曜日: 日付を 0 ~ 6 の曜日に変換後、"日月火水木金土"の位置で曜日に変換
.js
// 年月
DATE_FORMAT(年月,"YYYY-MM-01")
// テーブル
LET(x,DATE_FORMAT(年月,"e"),
y,DATE_ENDOF(年月, "month", "DD"),
y-SWITCH(y,
29,SWITCH(x,0,9,6,9,8),
30,SWITCH(x,0,9,5,9,6,10,8),
31,SWITCH(x,0,9,4,9,5,10,6,10,8),
8)
)
// 番号
ROWNO(テーブル)+1
// 日付
LET(r,ROWNO(テーブル),
IF(r=0,
DATE_ADD(年月,TR_SUM(r,SWITCH(DATE_FORMAT(年月,"e"),0,1,6,2,0)),"day"),
DATE_ADD(SUBTABLE(日付,r-1),
IF(DATE_FORMAT(SUBTABLE(日付,r-1),"e")=5,3,1),"day")
)
)
// 曜日
MID("日月火水木金土",DATE_FORMAT(日付,"e")+1,1)