Tips and Tricks for Salesforce Formulas
Jim Stoltzfus at the
Lancaster, PA Salesforce User Group
July 27th 2024
limitations
^ may need to “stamp a value” to get a flow to run
^ including referenced formulas!
For more details, see Formula Field Limits and Restrictions and Tips for Reducing Formula Size
pros
(vs. “stamp a value” automation)
report formulas
cross-object formulas
…however…
try a “test formula” to break down complexity
example 1: display a date by week
CASE(WEEKDAY(CloseDate),
1,TEXT(CloseDate)&" to "&TEXT(CloseDate+6),
2,TEXT(CloseDate-1)&" to "&TEXT(CloseDate+5),
3,TEXT(CloseDate-2)&" to "&TEXT(CloseDate+4),
4,TEXT(CloseDate-3)&" to "&TEXT(CloseDate+3),
5,TEXT(CloseDate-4)&" to "&TEXT(CloseDate+2),
6,TEXT(CloseDate-5)&" to "&TEXT(CloseDate+1),
7,TEXT(CloseDate-6)&" to "&TEXT(CloseDate),
'')
Example result for an opp closing today (Jan 24th, 2023) or any day this week would be "2023-01-22 to 2023-01-28"
Shipping Street 1
IF( CONTAINS(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"), '|') ,
SUBSTITUTE(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
RIGHT(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
LEN(ShippingStreet)-FIND("|", SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"))), ""),
SUBSTITUTE(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
LEFT(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
FIND("|", SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"))), ""))
Shipping Street 2
IF( CONTAINS(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"), '|') ,
SUBSTITUTE(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
LEFT(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
FIND("|", SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"))), ""),
SUBSTITUTE(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
RIGHT(SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"),
LEN(ShippingStreet)-FIND("|", SUBSTITUTE( ShippingStreet ,SUBSTITUTE($Label.LineBreak, "-", ""),"|"))), ""))
(adapted from ideas like those found here: https://salesforce.stackexchange.com/questions/18909/find-line-break-in-formula-field )
example 2: uses custom labels and special characters to separate “street”
example 3: fixing name prefixing with cloning
'Q-'&QuoteNumber&' - '& PRIORVALUE(Name))
“Q-1235 - Q-1234 - Quote Name”
'Q-'&QuoteNumber&' - '&RIGHT(PRIORVALUE(Name),LEN(PRIORVALUE(Name))-13),
resources
these slides stoltzforce.com/formulas