1

尝试在 Salesforce 中创建一个公式字段来计算从关闭日期到(其他两个日期中的任何一个)的平均天数。例如

结束日期
电子邮件开始日期 生效日期

我要写的公式是结束日期-(电子邮件开始日期或生效日期中最早的日期)。

帮助将不胜感激。谢谢

4

1 回答 1

0

有一个MAX()可用的函数,但它只接受数字,而不接受日期。所以看看这些,然后选择你觉得更舒服的一个;)

(公式类型必须是数字类型,叫它“寿命(天)”什么的)

IF(Email_Start_Date__c > Live_Date__c, Email_Start_Date__c, Live_Date__c) - Close_Date__c

或者

MAX(Email_Start_Date__c - Close_Date__c, Live_Date__c - Close_Date__c)

编辑以合并来自评论的 Priyanka 的问题:如果您有多个日期要依靠(如果一个为空,请尝试另一个),最好使用BLANKVALUE函数来避免长链 IF 语句:

BLANKVALUE(Over_ride_Date__c, 
    BLANKVALUE(Email_Start_Date__c, 
        BLANKVALUE(Live_Date__c, 
            BLANKVALUE(Estimated_Email_Start_Date__c, Estimated_Go_Live_Date__c)
        )
    )
)

您还可以将其与 IF 的技巧结合使用以选择最低的一个,例如:

BLANKVALUE(Over_ride_Date__c, 
    IF(NOT(ISBLANK(Email_Start_Date__c)) && NOT(ISBLANK(Go_Live_Date__c)), 
        IF(Email_Start_Date__c < Go_Live_Date__c, Email_Start_Date__c , Go_Live_Date__c ),
        BLANKVALUE(Estimated_Email_Start_Date__c, Estimated_Go_Live_Date__c)
    )
)

这将首先检查覆盖日期。如果它为空,但电子邮件开始和上线日期均已设置 - 将选择 2 个中较小的一个。如果其中任何一个为空白 - 将继续检查估计日期,如果所有内容为空,则最终将放弃如果为空。

但我不得不说,如果你真的需要写这么复杂的东西——你做错了什么。强迫您的用户提前开始填写某些日期,这表明数据质量非常差......

于 2012-11-27T13:34:09.533 回答