Notionの数式プロパティで「3営業日前」と「前週のhoge曜日」を表示させる
Notionの数式機能はとても便利ですが、まだchat-GPTの精度も高くなく、求めている数式がGPT頼りでなかなか作れません。
今回、タスク管理をNotionにする上で、「3営業日前」と「前週のhoge曜日」を表示させる数式を作成したので共有したいと思います。
ある日付プロパティの3営業日前の日付を表示する
lets(
closedDays,
["土","日"],
start,
dateSubtract(prop("日付").dateEnd(), 5, "days"),
end,
prop("日付").dateEnd(),
japaneseHolidays,
["01-01","01-09","02-11","02-23","03-21","04-29","05-03","05-04","05-05","07-17","08-11","09-18","09-23","10-09","11-03","11-23"],
days,
dateBetween(end,
start,
"days"
),
dates,
"x".repeat(days + 1).split("").map(
(_, index) = > ! index ? start: start.dateAdd(index, "days")
),
substitutes,
dates.filter(
current = > current.formatDate("EEE") == "日" & & japaneseHolidays.includes(current.formatDate("MM-DD"))
),
substitutesLen,
substitutes.length(),
candidates,
"x".repeat(5).split("").map(
(_, index) = > lets(
add
,
index + 1,
substitutes.map(
current = > current.dateAdd(
add
,
"days"
)
).filter(
current = > ! closedDays.includes(current.formatDate("EEE")) & & ! japaneseHolidays.includes(current.formatDate("MM-DD"))
)
)
),
substitutes,
"x".repeat(substitutesLen).split("").map(
(_, index) = > lets(
subIdx,
index,
candidates.map(current = > current.at(subIdx)).filter(current = > ! empty(current)).first()
)
),
businessDays,
dates.filter(
current = > ! closedDays.includes(current.formatDate("EEE")) & & ! japaneseHolidays.includes(current.formatDate("MM-DD")) & & ! substitutes.includes(current)
).map(current = > current.formatDate("MM月DD日(EEE)")),
businessDays.at(-3)
)
営業日換算は以下を参考にしました。
考え方としては、lets関数を使って、土日・休日・振替休日を抜いた日付の配列の最後から3つ目を選択するというやつですね。
ある日付プロパティの前週のhoge曜日
今回は前週の金曜日を表示しました。
lets(
dayofweek,
day(prop("日付")),
dateSubtract(
prop("IL日付"),
ifs(
dayofweek == 0,
2,
dayofweek == 1,
3,
dayofweek == 2,
4,
dayofweek == 3,
5,
dayofweek == 4,
6,
dayofweek == 5,
7,
dayofweek == 6,
8
),
"days"
)
)
考え方としては、lets関数を使って、指定の曜日だったら、何日前にするというやつですね。
良いNotonLIFEを!