Formula fields are used to calculate different types of values, including numeric values, text values, date values, etc. Formula fields and their resulting return value have certain data types associated with them and there are specific operators that can be used for each data type. It is necessary to understand the type of fields required for creating formula fields and the compatibility between the data types and the operators. For instance, the operator " * " (for multiplication) is used on numeric values and not on text values.
The following table helps you to understand the type of arguments required for numeric functions along with the type of syntax that needs to be formed.
Function | Description | Usage | Examples |
Abs | Returns the absolute value of the Number. | Abs(number) | Abs(-42) returns 42; Abs(+33) returns 33 |
Ceil | Returns the smallest digit greater than or equal to the input number. | Ceil(number) | Ceil(3.4) returns 4; Ceil(-3.4) returns -3 |
Floor | Returns the largest digit less than or equal to the input number. | Floor(number) | Floor(3.8) returns 3; Floor(-3.4) returns -4 |
Naturallog | Returns the natural logarithm of a number | Naturallog(number) | Naturallog(1) returns 0.69 |
Base10log | Returns the base 10 logarithm of the input number | Base10log(number) | Base10log(10) returns 1.0 |
Max | Returns the maximum value from the specified list of compatible data types. | Max(value1, value2,...) | Max(3,1,5,2) returns 5; Max(0,-4,-3,2) returns 2 |
Min | Returns the minimum value from the specified list of compatible data types. | Min(value1, value2,...) | Min(5,-3,0,1) returns -3; Min(5,0,.01,0.5) returns 0.0 |
Sqrt | Returns the square root of the input number. | Sqrt(number) | Sqrt(4) returns 2; Sqrt(9) returns 3 |
FromTimestamp | Creates date time from timestamp | FromTimestamp(number) | FromTimestamp(1581066895) gives result as Feb 7, 2020 02:44 PM Note: The above example is for the IST timezone. The values will changed based on the timezone of the user. |
IsPositive | Checks if the number is positive | IsPositive(-345) gives result as false | |
IsNegative | Checks if the number is negative | IsNegative(number) | IsNegative(-345) gives result as true |
Round | Rounds the number to the nearest value based on the specified precision. | Round(number); Round(number,number) | Round(3.8) gives result as 4 ; Round(-3.5) gives result as -3 ; Round(3.417,2) gives result as 3.42 |
To create numeric type formula fields
The following table helps you to understand the type of arguments required for formula functions along with the type of syntax that needs to be formed.
Function | Description | Usage | Examples |
Len | Returns the number of characters in a specified text string. | Len(string) | Len('abc') returns 3; Len(' abc ') returns 5 |
Find | Returns the nth occurrence of the text string. | Find('string','search string',number) | Find('greenery','n',1) returns 5 |
Concat | Returns the concatenation of all the strings. | Concat('string','string',...) | Concat('FirstName',' ','LastName') returns FirstName LastName |
Contains | Returns true if search string is found in the other string, otherwise returns false. | Contains('string','search string') | Contains('abcdef','cd') returns true |
Startswith | Returns true if the string begins with the search string, otherwise returns false. | Startswith('string','search string') | Startswith('abcdef','cd') returns false Startswith('abcdef','abc') returns true |
Endswith | Returns true if the string ends with the search string, otherwise returns false. | Endswith('string','search string') | Endswith('abcdef','ab') returns false Endswith('abcdef','ef') returns true |
Lower | Converts all characters in a string to lower case. | Lower('string') | Lower('APPLES') returns "apples" Lower('Apples') returns "apples" |
Upper | Converts all characters in a string to upper case. | Upper('string') | Upper('apples') returns "APPLES" Upper('APPles') returns "APPLES" |
Trim | Returns string with the leading and trailing white space characters removed. | Trim('string') | Trim(' abcd ') returns "abcd" |
Substring | Returns a portion of an input string, from a start position in the string to the specified length. | Substring('string',n1,n2) | Substring('abcdefg',4,7) returns "defg" |
Replace | Replaces each occurrence of the search string in the input string with the corresponding replace string. | Replace('string','search string','replace string') | Replace('abcdefg','abc','xyz') returns "xyzdefg" |
Tostring | Converts any argument to a string data type. | Tostring(generic argument) | Tostring(3.4) returns "3.4" Tostring('') returns < empty > |
CaseInsensitiveEquals | Compares two strings in case insensitive manner. | CaseInsensitiveEquals(string,string) | CaseInsensitiveEquals('asdf','AsDf') gives result as true; CaseInsensitiveEquals('asdf','AsDg')gives result as false |
IsEmpty | Checks whether the value is empty or not. | IsEmpty(generic) | IsEmpty('') gives result as true; IsEmpty('asdf') gives result as false; IsEmpty(${Customer.Score}) gives result as true if Score is not entered. |
DateBetween | Returns the time between two dates where the unit can be years, months, weeks, days, hours, minutes. | DateBetween(date-time,date-time,string) | DateBetween(Newdate(2022,02,10,11,30,'AM'), Newdate(2023,02,19,11,30,'AM'),'years') gives result as 1 |
To create String type formula fields
The following table helps you to understand the type of arguments required for DateTime functions along with the type of syntax that needs to be formed.
Function | Description | Usage | Examples |
Newdate | Creates a date from the year, month, day and time. | Newdate(year,month,day, hour,minute,'string') | Newdate(2007,12,21,06,30,'AM') returns quot;21/12/2007 06:30 AM"1 |
Datepart | Returns the date value for the date time expression. | Datepart(datetime argument) | Datepart(Newdate(2007,12,21,06,30,'AM')) returns "21/12/2007"1 |
Timepart | Returns the time value for the date time expression. | Timepart(datetime argument) | Timepart(Newdate(2007,12,21,06,30,'AM')) returns "06.30 AM" |
Adddate | Returns the date obtained by adding n (year/day/month/hour/min) to the given date. | Adddate(datetime,number, 'string') | Adddate(Newdate(2007,12,21,06,30,'AM'),2,'YEAR' returns "21/12/2009 06:30 AM"2 |
Subdate | Returns the date obtained by subtracting n (year/day/month/hour/min) to the given date. | Subdate(datetime,number, 'string') | Subdate (Newdate(2007,12,21,06,30,'AM'),2,'YEAR' returns "21/12/2005 06:30 AM"2 |
Now | Returns a date/time representing the current moment. | Now() | Now() returns "19/05/2009 10:52 AM" |
Datecomp | Compares two dates and returns the difference of days in minutes. | Datecomp(Datetime, Datetime) | Datecomp(Newdate(2009,05,19,11,30,'AM'), Newdate(2009,05,19,12,30,'AM')) returns 660.0 3 |
Dayofmonth | Returns the day of the month for the given date. | Dayofmonth(Datetime) | Dayofmonth(Newdate(2009,05,19,11,30,'AM')) returns "19.0" |
Hour | Returns the hour corresponding to the given date. | Hour(Datetime) | Hour(Newdate(2009,05,19,11,30,'AM')) returns "11.0" |
Minute | Returns the minute corresponding to the given date. | Minute(Datetime) | Minute(Newdate(2009,05,19,11,30,'AM')) returns "30.0" |
Month | Returns the month corresponding to the given date. | Month(Datetime) | Month(Newdate(2009,05,19,11,30,'AM')) returns "5.0" |
Year | Returns the year corresponding to the given date | Year(Datetime) | Year(Newdate(2009,05,19,11,30,'AM')) returns "2009.0" |
Weekday | Returns the day of the week (1-7) corresponding to the input date, where 1 is Sunday, 2 is Monday and so on. | Weekday(Datetime) | Weekday(Newdate(2009,05,19,11,30,'AM')) returns "3.0". (This is because 19th May is Tuesday)4 |
Dayofweek | Returns the day of the week for the given date. | Dayofweek(date-time) | April 5th 2023 returns "wednesday" |
Dayofmonth | Returns the number corresponding to the day of the month for the given date. | Dayofmonth(date-time) | April 5th returns '5' |
Dayofyear | Returns the number corresponding to day of the year for the given date. | Dayofyear(date-time) | April 5th 2023 returns "95" |
Timestamp | Returns timestamp of the value | Timestamp(date-time) | Timestamp(Newdate(2022,02,10,11,30,'AM')) gives result as 1,171,107,000 Note: The above example is for the IST timezone. The values will changed based on the timezone of the user. |
To create date time type formula fields
The following table helps you to understand the type of arguments required for boolean functions along with the type of syntax that needs to be formed.
Function | Description | Usage | Examples |
If | Returns one of two values, depending on the value of a given logical condition. If the boolean test is true, If() returns the true value, otherwise returns the false value. | If(Boolean,Generic, Generic)* | If(8>7,1,0) returns "1.0" If(8>7,'True','False') returns "True" |
And | Returns a true response if all expressions are true; returns a false value even if one of the expressions is false. | And(boolean,boolean ...) | And(2>1,5>3,7<8) returns "true" And(2>1,5>3,7>8) returns "false" |
Or | Returns true if any one expression is true. Returns false if all expressions are false. | Or(boolean,...) | Or(2>1,3>5,7>8) returns "true" Or(1>2,3>5,7>8) returns "false" |
Not | Returns the logical negation of the given expression(If the expression is true, returns false). | Not(boolean) | Not(false) returns "true" Not(true) returns "false" |
* Generic implies any data type - Number, String, Datetime (including normal date) or Boolean. The return type depends on the selected data type. For instance, if the generic data type is a number, the return type should be Numeric and not string or boolean.
To create boolean type formula fields
The following table displays the functional reference for creating formulae along with their available arguments.
Function Name | No. of Required Arguments | Argument Data Type | Return Type |
Abs | 1 | Number | Number |
Ceil | 1 | Number | number |
Floor | 1 | Number | Number |
Naturallog | 1 | Number | Number |
Base10log | 1 | Number | Number |
Max | Multiple | All Number | Number |
Min | Multiple | All Number | Number |
Sqrt | 1 | Number | Number |
Function Name | No. of Required Arguments | Argument Data Type | >Return Type |
Len | 1 | String | Number |
Find | 3 | String: String: Number | Number |
Concat | Multiple | All String | String |
Contains | 2 | String: String | Boolean |
Startswith | 2 | String: String | Boolean |
Endswith | 2 | String: String | Boolean |
Lower | 1 | String | String |
Upper | 1 | String | String |
Trim | 1 | String | String |
Substring | 3 | String: Number: Number | String |
Replace | 3 | String: String: String | String |
Tostring | 1 | Any data type | String |
Function Name | No. of Required Arguments | Argument Data Type | Return Type |
Newdate | 6 | Number:Number:Number:Number:Number:String | Datetime |
Datepart | 1 | Datetime | String |
Timepart | 1 | Datetime | String |
Adddate | 3 | Datetime: Number: String | Datetime |
Subdate | 3 | Datetime: Number: String | Datetime |
Now | 0 | - | Datetime |
Datecomp | 2 | Datetime: Datetime | Number |
Dayofmonth | 1 | Datetime | Number |
Hour | 1 | Datetime | Number |
Minute | 1 | Datetime | Number |
Month | 1 | Datetime | Number |
Year | 1 | Datetime | Number |
Weekday | 1 | Datetime | Number |
Function Name | No. of Required Arguments | Argument Data Type | Return Type |
If | 3 | Boolean: Generic: Generic | Generic |
And | Multiple | All Boolean | Boolean |
Or | Multiple | All Boolean | Boolean |
Not | 1 | Boolean | Boolean |