我如何能同步日期在一列公式?

03/17/22
接受

你好,

下面,我将向您解释合同到期前终止通知期的计算以及根据此通知期向责任人发送提醒邮件的方法;

1-在第一步,我每天输入合同的结束日期和通知期限。


image.png

2-“终止通知的截止日期”字段已根据通知期限制定。根据例子中的情况,它会提前6个月向负责人发送提醒邮件。

“终止通知截止日期”栏的公式如下:

=[当前合同终止日期]@行-[终止通知期限(天)]@行


到目前为止一切正常。(通知等)。

如果你注意到的话,合同到期日期是2024年8月5日。由于要求提前6个月通知,预计日期为5.2.22024。

但日期是2024年2月7日。

我试过取消周末来解决这个问题。但随后它粉碎了“终止通知截止日期”一栏的公式。

image.png


如果你能在这件事上支持我,我会很高兴的。


谢谢

最佳答案

  • 凯利摩尔凯利摩尔 ✭✭✭✭✭
    ✓回答

    你好@marcusben

    日期的差异是因为并非所有月份都有30天。

    这里有一种方法可以迫使这一天与合同结束日期相等。如果你是按整个月的增量工作,这是可行的。例如,如果通知提前45天发出,那么这个公式可能就不合理了。我们可以调整它,使它更可靠,但这会使它更复杂,它永远不会100%准确。

    =IF(日期([当前合同终止日期]@行)=日期([当前合同终止日期]@行- 180),[当前合同终止日期]@行- 180,日期(年([当前合同终止日期]@行- 180),月([当前合同终止日期]@行- 180),日期([当前合同终止日期]@行)))

    它观察当天的情况,看减法乘积是否等于当天。ob欧宝娱乐app手机下载如果是,只需做减法。如果否,则重新构造日期值,使其匹配。

    凯利

答案

  • 凯利摩尔凯利摩尔 ✭✭✭✭✭
    ✓回答

    你好@marcusben

    日期的差异是因为并非所有月份都有30天。

    这里有一种方法可以迫使这一天与合同结束日期相等。如果你是按整个月的增量工作,这是可行的。例如,如果通知提前45天发出,那么这个公式可能就不合理了。我们可以调整它,使它更可靠,但这会使它更复杂,它永远不会100%准确。

    =IF(日期([当前合同终止日期]@行)=日期([当前合同终止日期]@行- 180),[当前合同终止日期]@行- 180,日期(年([当前合同终止日期]@行- 180),月([当前合同终止日期]@行- 180),日期([当前合同终止日期]@行)))

    它观察当天的情况,看减法乘积是否等于当天。ob欧宝娱乐app手机下载如果是,只需做减法。如果否,则重新构造日期值,使其匹配。

    凯利

  • 你好@Kelly摩尔

    你说;

    日期的差异是因为并非所有月份都有30天。


    是的,我想过这个问题。我只是没有写。下面的公式试图奏效。所以谢谢你


    我只是做了一个小小的改变;

    我添加了“终止通知期限(天)”,而不是180天。

    因为在某些情况下不是180而是270,320等等。


    祝你过得愉快

  • 你好@Kelly摩尔

    我已经确定了一些情况,我想分享给你的帮助;


    1-当在12月31日合同到期前6个月(180天)提出警告时,将计算7月而不是6月。我想是因为我猜琼不会在这里过31岁。但当这种情况发生时,它会延迟1个月。这意味着提醒邮件会延迟发送。

    image.png


    2-我已经确定了720天的合同终止通知期,该合同将于2024年2月21日到期。我以为它会回到2022年2月21日,但它做到了2022年3月21日。如果我的登录时间是730天(正好是2年),那么它就会给出正确的日期。(不是在周末)

    当我们看例子b时,我看到它在720天内提供了正确的回报。

    一个例子:

    image.png

    例b:

    image.png


    3-在这个例子中,我希望它持续到3月30日。但我不确定是否因为恰逢3月30日周末而推迟了1个月。

    image.png


    谢谢你的帮助

  • 凯利摩尔凯利摩尔 ✭✭✭✭✭

    嘿,马克

    很抱歉耽搁了。这花了一点时间才算出来。有很多关于如何增加月份的帖子——这变得很复杂,因为你必须考虑到年值的变化,当连续的天数被添加到一个日期时,这是自动管理的。我们可以试一试,看看能不能拉近距离。smartsheet有很多功能做得很好,还有一些功能还在开发中。总的来说,在smartsheet中,Time的功能还处于开发阶段。

    我添加了两个新的助手列——也许最后我们可以把这些公式合并成一个公式,但每当我有一个复杂的公式时,我就会尝试把公式分解成步骤,这样我就可以更密切地观察失败的模式。两个helper列就是为此目的。

    (几个月)

    =INT([终止通知期限(天)]@row / 30)

    (年数)

    =INT([月数]+月([开始日期]@row)) / 12)

    INT()函数将接受一个可能包含小数到整数的值。


    添加了帮助器列之后,让我们试试这个公式。这个公式首先要看日期是否跨年。如果是,那么年和月将被调整。如果没有,只是把几个月加在一起。

    =IF(OR(MONTH([Start Date]@row) + [Number of Months]@row > 12, [Number of Months]@row >= 12), Date (YEAR([Start Date]@row) + [Number Years]@row, ((MONTH([Start Date]@row) + [Number Years]@row) - ([Number Years]@row * 12)), Date (YEAR([Start Date]@row)), MONTH([Start Date]@row) + [Number of Months]@row ([Start Date]@row))

    这个行吗?

    凯利

  • @Kelly摩尔


    谢谢你的最后一个配方…我在这里遇到了两个不同的问题;

    1 -

    “终止通知截止日期”字段必须小于“开始日期”字段。应根据“终止通知期限(天)”一栏中输入的数值计算。

    例如,如图所示

    “终止通知期限(天)”= 60天

    所以

    “终止通知截止日期”栏中的日期应显示为60天前。


    image.png


    当我在“终止通知期限(天)”字段中输入240天或更长时间时,公式如下图所示。通常根据合同信息我在这里得到的720、900天等都可以进入。


    image.png


    非常感谢你

    马库斯

  • 凯利摩尔凯利摩尔 ✭✭✭✭✭

    嘿,马库斯

    让我们看看能有多接近你想要的结果。我再提一下,因为我们对一个月的天数和/或一年的天数做了一些假设,我们永远不会完全准确。

    我在给你的年数中发现了一个错误——希望你已经改正了漏掉的括号。

    = INT ([月数]@行+月([开始日期]@行))/ 12)

    一旦这是固定的,这个最初的公式对我所有的日期*

    =IF(OR(MONTH([Start Date]@row) + [Number of Months]@row > 12, [Number of Months]@row = 12), Date (YEAR([Start Date]@row) + [Number of Years]@row, ((MONTH([Start Date]@row) + [Number of Years]@row) - ([YEAR]@row * 12)), Date (YEAR([Start Date]@row)), MONTH([Start Date]@row) + [Number of Months]@row ([Start Date]@row)))

    但是,我想我搞不清楚你要找的日期。*我的公式是在开始日期上加上终止通知天数(终止通知天数)。你的意思是这个值应该从开始日期中减去吗?

    这是我测试你的公式的地方

    image.png

    请为我澄清哪些栏目增加和/或减少,从哪些天。

    凯利

登录注册置评。