1
0

More than 1 year has passed since last update.

rex0220 計算式プラグイン テーブルに月カレンダー

Last updated at Posted at 2023-02-27

rex0220 計算式プラグインで、テーブルに指定月のカレンダーを作ってみます。

概要

指定月の日数分のテーブル行を作成して、各行に日付を設定します。

  • 月の日数分のテーブル行
  • 月~金のみのテーブル行

2023-02-27_18h45_29.png

操作例(月~金の曜日のテーブル行)

2023-02-27_18h53_28.gif

プラグイン設定(月の日数分のテーブル行)

  • 年月: 月の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)

2023-02-27_18h58_47.png

プラグイン設定(月~金のみのテーブル行)

  • 年月: 月の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)

2023-02-27_19h07_00.png

月の始まりの曜日と土日の日数

※土曜日始まりで30日の月は、土日の日数が 10 日
image.png

※ 各曜日の始まりと土日の日数
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0