好的 - 通过组合来自其他各种类似请求的位来设法解决这个问题:
给定日期后一个日历月的公式:
=DATE(YEAR([@[Date of Request]]),MONTH([@[Date of Request]])+1,MIN(DAY([@[Date of Request]]),DAY(DATE(YEAR([@[Date of Request]]),MONTH([@[Date of Request]])+2,0))))
给定日期之后的一个日历月的公式:
=DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0))))
GDPR 截止日期的公式(如上,但如果是周末,则向后移动):
=IF(WEEKDAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0)))))=7,DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0))))+2,IF(WEEKDAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0)))))=1,DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0))))+1,DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+1,MIN(DAY([@[Date of Request]]+1),DAY(DATE(YEAR([@[Date of Request]]+1),MONTH([@[Date of Request]]+1)+2,0))))))
上面的答案并不优雅,哈哈,但它确实有效,并且根据请求日期正确计算了 GDPR 响应截止日期。它唯一不做的就是检查银行假期,如果截止日期是一天,则添加一天。