首页 > 解决方案 > Salesforce 日期公式未显示正确结果

问题描述

嗨 Salesforce 爱好者!

我需要对我的组织中的现有公式进行故障排除(或创建一个更简单的公式)“合同续订日期”(见下文),它应该显示日期:

Contract_Start_Date__c + Contract_duration__c (月) - Cancellation_Period__c (月)

示例:合同于 2021 年 1 月 1 日开始,期限为 12 个月,取消期限为 3 个月,“合同续订日期”的预期结果为 2021 年 10 月 1 日

问题:

不知何故,这个公式适用于几乎所有机会,除了少数机会(主要是在 2 月合同开始时,并且总是在取消期为 1.5 个月时) - 请参阅屏幕截图中的示例

感谢您的帮助!

Contract_Renewal_Date__c =

日期 (

/ YEAR / YEAR (Contract_Start_Date__c) + FLOOR ((MONTH (Contract_Start_Date__c) + Contract_duration__c - Cancellation_Period__c - 1)/12),

/ MONTH / CASE ( MOD ( MONTH ( Contract_Start_Date__c )+Contract_duration__c - Cancellation_Period__c, 12 ),0,12,MOD ( MONTH ( Contract_Start_Date__c )+Contract_duration__c - Cancellation_Period__c, 12 )),

/ DAY / Contract_Renewal_Date_Day__c)

其中Contract_Renewal_Date_Day__c=

MIN ( DAY ( Contract_Start_Date__c ), CASE ( MOD ( MONTH ( Contract_Start_Date__c )+Contract_duration__c - Cancellation_Period__c,12 ) ,9,30,4,30,6,30,11,30,2,

/* 返回二月的最大天数取决于结束日期是否为闰年 */ IF ( MOD ( YEAR ( Contract_Start_Date__c ) + FLOOR ( (MONTH ( Contract_Start_Date__c ) + Contract_duration__c - Cancellation_Period__c)/12) , 400 ) = 0 || ( MOD ( YEAR ( Contract_Start_Date__c ) + FLOOR ( (MONTH ( Contract_Start_Date__c ) + Contract_duration__c - Cancellation_Period__c)/12) , 4 ) = 0 && MOD ( YEAR ( Contract_Start_Date__c ) + FLOOR ( (MONTH ( Contract_Start_Date__c ) + Contract_duration__c - Cancellation_Period__c)/12) , 100 ) <> 0 ) , 29,28)

,31))

标签: salesforceformula

解决方案


推荐阅读