【问题标题】:Excel formula for "one calendar month" to calculate deadline for GDPR responses“一个日历月”的 Excel 公式计算 GDPR 响应的截止日期
【发布时间】:2018-07-12 12:59:30
【问题描述】:

我一直在尝试在 Excel 中创建一个公式,以根据请求日期计算 GDPR 主题访问响应的截止日期。听起来很简单?? ICO如何计算的说明是:-

您应计算从收到请求后的第二天(无论该天是否为工作日)到下个月相应日历日期的时限。如果由于下个月较短(并且没有相应的日历日期)而无法做到这一点,则回复日期为下个月的最后一天。如果相应日期是周末或公共假期,您必须在下一个工作日之前回复。这意味着您必须遵守请求的确切天数会有所不同,具体取决于提出请求的月份。”

我只是不知道如何将其转换为 Excel 公式,除非有人可以帮助我,否则我可能只会满足于 [日期]+28 吗?

最好的祝愿, 托尼

【问题讨论】:

    标签: excel-formula calendar


    【解决方案1】:

    好的 - 通过组合来自其他各种类似请求的位来设法解决这个问题:

    给定日期后一个日历月的公式:

    =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 响应截止日期。它唯一不做的就是检查银行假期,如果截止日期是一天,则添加一天。

    【讨论】:

      【解决方案2】:

      如果您能够将日历月重新定义为 20 个工作日,那么您可以像这样使用WORKDAY([date],[number of working days],{[holidays]}) 函数:

      =WORKDAY([@[Date of Request]],20,BankHolidays) - 其中 BankHolidays 是一个包含银行假日的命名范围...

      编辑-

      我猜你总是可以使用EDATE() 来添加你的月份,减去一天,然后使用WORKDAY() 以上述方式添加一天:

      =WORKDAY(EDATE([@[Date of Request]],1)-1,1,BankHolidays)

      【讨论】:

        猜你喜欢
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        相关资源
        最近更新 更多