Overview
Formulas by UnifyApps are expressions used to perform calculations, manipulate data, and automate tasks. They enable users to process numerical data, text, dates, and logical conditions to derive results efficiently.
Why Do We Need Formulas?
- Automation: Repeated manual calculations are tedious and error-prone. Formulas help automate these tasks, ensuring accuracy and consistency.
- Data Analysis: Formulas allow users to analyze large datasets by calculating averages, sums, percentages, and more to derive insights.
- Efficiency: Formulas offer speed for complex calculations, accuracy by reducing human error, scalability to handle large datasets, and flexibility with a wide range of mathematical, statistical, and logical functions.
- Logical Operations: Excel formulas allow for conditional evaluations, such as checking if values meet certain criteria (IF()
, AND()
, OR()
).
How to use formulas in automation ?
A formula can be invoked by using an equals sign (=) and may contain:
Operators like
+
,-
,*
,/
for mathematical operations.Node field references to work with values from specific automation nodes.
Functions like
SUM()
,LEN()
,NOW()
to perform predefined calculations.
Example
In this use case, we are sending messages to our internal Slack channel for all Zendesk support tickets that have not yet been acknowledged.
Workflow Overview:
Hourly Scheduler: A scheduler runs every hour, fetching all ticket IDs from the object that were created in the last hour.
Comment Check: For each ticket, the system checks whether any comments are present.
Slack Notification: If a ticket has no comments, a message is posted to our internal Slack channel.
Formulas Used:
NOW()
: Retrieves the current date and time to identify tickets created in the last hour.INT()
: Converts numeric values into integers as ticket id is stored in string format in object.LEN()
: Checks the length of comments to verify if any comment is posted on ticket or notCONCAT()
: Combines different text elements, such as ticket details, to form the message for Slack.
Supported Formulae
Formula | Description | Supported data types | Syntax |
| Returns the length of the string, array | text/array | LEN( 📦 Order ID ) |
| Returns the absolute value of a number | number | ABS( 💰 Amount ) |
| Returns the arccosine of a number | number | ACOS( 📊 Cosine Value ) |
| Returns the inverse hyperbolic cosine of a number | number | ACOSH( 📈 Hyperbolic Cosine ) |
| Returns a cell reference as text | row column | ADDRESS( 🔢 Row 🔠 Column ) |
| Returns TRUE if all arguments are TRUE | logical1, [logical2, ...] | AND( ✅ Condition 1, ✅ Condition 2 ) |
| Returns the number of areas in a reference | reference | AREAS( 📍 Cell Range ) |
| Returns the arcsine of a number | number | ASIN( 📊 Sine Value ) |
| Returns the inverse hyperbolic sine of a number | number | ASINH( 📈 Hyperbolic Sine ) |
| Returns the arctangent of a number | number | ATAN( 📊 Tangent Value ) |
| Returns the arctangent from x- and y-coordinates | list of numbers | ATAN2( 📏 X-Coordinate 📐 Y-Coordinate ) |
| Returns the inverse hyperbolic tangent of a number | number | ATANH( 📈 Hyperbolic Tangent ) |
| Returns the average of the absolute deviations of data points from their mean | number1, [number2, ...] | AVEDEV( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Returns the average of its arguments | number1, [number2, ...] | AVERAGE( 💯 Score 1 💯 Score 2 💯 Score 3 ) |
| Returns the average of its arguments including numbers text and logical values | value1, [value2, ...] | AVERAGEA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Rounds a number up to the nearest integer or multiple of significance | number | CEILING( 🔢 Number ) |
| Returns the character specified by a number | number | CHAR( 🔢 ASCII Code ) |
| Chooses a value from a list of values | index_num, value1, [value2, ...] | CHOOSE( 🔢 Index 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Removes all non-printable characters from text | text | CLEAN( 📝 Text ) |
| Returns a numeric code for the first character in a text string | text | CODE( 🔤 Character ) |
| Returns the column number of a reference | [reference] | COLUMN( 📍 Cell Reference ) |
| Returns the number of columns in a reference | array | COLUMNS( 📊 Array ) |
| Returns the number of combinations for a given number of objects | number, number_chosen | COMBIN( 🔢 Total 🔢 Chosen ) |
| Joins several text items into one text item | text1, [text2, ...] | CONCATENATE( 📝 Text 1 📝 Text 2 ) |
| Returns the correlation coefficient between two data sets | array1, array2 | CORREL( 📊 Array 1 📊 Array 2 ) |
| Returns the cosine of a number | number | COS( 📐 Angle ) |
| Returns the hyperbolic cosine of a number | number | COSH( 🔢 Number ) |
| Counts how many numbers are in the list of arguments | value1, [value2, ...] | COUNT( 🔢 Value 1 🔢 Value 2 🔢 Value 3 ) |
| Counts how many values are in the list of arguments | value1, [value2, ...] | COUNTA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Counts the number of blank cells within a range | range | COUNTBLANK( 📍 Range ) |
| Counts the number of cells within a range that meet the given criteria | range, criteria | COUNTIF( 📍 Range 📌 Criteria ) |
| Returns covariance the average of the products of paired deviations | array1, array2 | COVAR( 📊 Array 1 📊 Array 2 ) |
| Returns the serial number of a particular date | year, month, day | DATE( 📅 Year 📅 Month 📅 Day ) |
| Converts a date in the form of text to a serial number | date_text | DATEVALUE( 📝 Date Text ) |
| Averages the values in a column of a list or database that match conditions you specify | database, field, criteria | DAVERAGE( 📊 Database 🏷️ Field 📌 Criteria ) |
| Converts a serial number to a day of the month | serial_number | DAY( 📅 Date ) |
| Calculates the number of days between two dates based on a 360-day year | start_date, end_date, [method] | DAYS360( 📅 Start Date 📅 End Date ) |
| Counts the cells containing numbers in a column of a list or database that match conditions that you specify | database, field, criteria | DCOUNT( 📊 Database 🏷️ Field 📌 Criteria ) |
| Counts nonblank cells in a column of a list or database that match conditions that you specify | database, field, criteria | DCOUNTA( 📊 Database 🏷️ Field 📌 Criteria ) |
| Converts radians to degrees | angle | DEGREES( 📐 Angle ) |
| Returns the sum of squares of deviations | number1, [number2, ...] | DEVSQ( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Extracts from a database a single record that matches the specified criteria | database, field, criteria | DGET( 📊 Database 🏷️ Field 📌 Criteria ) |
| Returns the maximum value from selected database entries | database, field, criteria | DMAX( 📊 Database 🏷️ Field 📌 Criteria ) |
| Returns the minimum value from selected database entries | database, field, criteria | DMIN( 📊 Database 🏷️ Field 📌 Criteria ) |
| Converts a number to text using currency format | number, [decimals] | DOLLAR( 💰 Amount 🔢 Decimals ) |
| Multiplies the values in a column of a list or database that match conditions that you specify | database, field, criteria | DPRODUCT( 📊 Database 🏷️ Field 📌 Criteria ) |
| Estimates the standard deviation based on a sample from selected database entries | database, field, criteria | DSTDEV( 📊 Database 🏷️ Field 📌 Criteria ) |
| Calculates the standard deviation based on the entire population of selected database entries | database, field, criteria | DSTDEVP( 📊 Database 🏷️ Field 📌 Criteria ) |
| Adds the numbers in a column of a list or database that match conditions that you specify | database, field, criteria | DSUM( 📊 Database 🏷️ Field 📌 Criteria ) |
| Estimates variance based on a sample from selected database entries | database, field, criteria | DVAR( 📊 Database 🏷️ Field 📌 Criteria ) |
| Calculates variance based on the entire population of selected database entries | database, field, criteria | DVARP( 📊 Database 🏷️ Field 📌 Criteria ) |
| Returns a number corresponding to an error type | error_val | ERROR.TYPE( ❌ Error Value ) |
| Rounds a number up to the nearest even integer | number | EVEN( 🔢 Number ) |
| Checks to see if two text values are identical | text1, text2 | EXACT( 📝 Text 1 📝 Text 2 ) |
| Returns e raised to the power of a given number | number | EXP( 🔢 Power ) |
| Returns the factorial of a number | number | FACT( 🔢 Number ) |
| Returns the logical value FALSE | FALSE() | |
| Finds one text value within another (case-sensitive) | find_text, within_text, [start_num] | FIND( 🔍 Find Text 📝 Within Text 🔢 Start Position ) |
| Formats a number as text with a fixed number of decimals | number, [decimals], [no_commas] | FIXED( 🔢 Number 🔢 Decimals ) |
| Rounds a number down to the nearest multiple of significance | number, significance | FLOOR( 🔢 Number 🔢 Significance ) |
| Calculates a future value using existing values | x, known_y's, known_x's | FORECAST( 🔢 X Value 📊 Known Y's 📊 Known X's ) |
| Calculates how often values occur within a range of values | data_array, bins_array | FREQUENCY( 📊 Data Array 📊 Bins Array ) |
| Returns the future value of an investment | rate, nper, pmt, [pv], [type] | FV( 📊 Rate 🔢 Periods 💰 Payment 💰 Present Value ) |
| Returns the geometric mean | number1, [number2, ...] | GEOMEAN( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Looks for a value in the top row of a table or an array and returns the value in the same column from a row you specify | lookup_value, table_array, row_index_num, [range_lookup] | HLOOKUP( 🔍 Lookup Value 📊 Table Array 🔢 Row Index ) |
| Converts a serial number to an hour | serial_number | HOUR( 🕒 Time ) |
| Creates a shortcut or jump that opens a document stored on your hard drive network server or on the Internet | link_location, [friendly_name] | HYPERLINK( 🔗 URL 📝 Display Text ) |
| Specifies a logical test to perform | logical_test, [value_if_true], [value_if_false] | IF( ❓ Condition 📊 True Result 📊 False Result ) |
| Returns a value or the reference to a value from within a table or range | array, row_num, [column_num] | INDEX( 📊 Array 🔢 Row 🔢 Column ) |
| Returns a reference specified by a text string | ref_text | INDIRECT( 📝 Reference Text ) |
| Rounds a number down to the nearest integer | number | INT( 🔢 Number ) |
| Returns the intercept of the linear regression line | known_x's, known_y's | INTERCEPT( 📊 Known X's 📊 Known Y's ) |
| Returns the interest payment for an investment for a given period | rate, per, nper, pv, [fv], [type] | IPMT( 📊 Rate 🔢 Period 🔢 Num Periods 💰 Present Value ) |
| Returns the internal rate of return for a series of cash flows | values, [guess] | IRR( 💰 Cash Flows 🔢 Guess ) |
| Returns TRUE if the value is blank | value | ISBLANK( 📊 Value ) |
| Returns TRUE if the value is any error value except #N/A | value | ISERR( 📊 Value ) |
| Returns TRUE if the value is any error value | value | ISERROR( 📊 Value ) |
| Returns TRUE if the value is a logical value | value | ISLOGICAL( 📊 Value ) |
| Returns TRUE if the value is the #N/A error value | value | ISNA( 📊 Value ) |
| Returns TRUE if the value is not text | value | ISNONTEXT( 📊 Value ) |
| Returns TRUE if the value is a number | value | ISNUMBER( 📊 Value ) |
| Returns TRUE if the value is a reference | value | ISREF( 📊 Value ) |
| Returns TRUE if the value is text | value | ISTEXT( 📊 Value ) |
| Returns the k-th largest value in a data set | array, k | LARGE( 📊 Array 🔢 K ) |
| Returns the leftmost characters from a text value | text, [num_chars] | LEFT( 📝 Text 🔢 Num Chars ) |
| Returns the natural logarithm of a number | number | LN( 🔢 Number ) |
| Returns the logarithm of a number to a specified base | number, [base] | LOG( 🔢 Number 🔢 Base ) |
| Returns the base-10 logarithm of a number | number | LOG10( 🔢 Number ) |
| Looks up values in a vector or array | lookup_value, lookup_vector, [result_vector] | LOOKUP( 🔍 Lookup Value 📊 Lookup Vector 📊 Result Vector ) |
| Converts text to lowercase | text | LOWER( 📝 Text ) |
| Looks up values in a reference or array | lookup_value, lookup_array, [match_type] | MATCH( 🔍 Lookup Value 📊 Lookup Array 🔢 Match Type ) |
| Returns the maximum value in a list of arguments | number1, [number2, ...] | MAX( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Returns the maximum value in a list of arguments including numbers text and logical values | value1, [value2, ...] | MAXA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Returns the matrix determinant of an array | array | MDETERM( 📊 Array ) |
| Returns the median of the given numbers | number1, [number2, ...] | MEDIAN( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Returns a specific number of characters from a text string starting at the position you specify | text, start_num, num_chars | MID( 📝 Text 🔢 Start 🔢 Num Chars ) |
| Returns the minimum value in a list of arguments | number1, [number2, ...] | MIN( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Returns the smallest value in a list of arguments including numbers text and logical values | value1, [value2, ...] | MINA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Converts a serial number to a minute | serial_number | MINUTE( 🕒 Time ) |
| Returns the matrix inverse of an array | array | MINVERSE( 📊 Array ) |
| Returns the modified internal rate of return for a series of periodic cash flows | values, finance_rate, reinvest_rate | MIRR( 💰 Cash Flows 📊 Finance Rate 📊 Reinvest Rate ) |
| Returns the matrix product of two arrays | array1, array2 | MMULT( 📊 Array 1 📊 Array 2 ) |
| Returns the remainder from division | number, divisor | MOD( 🔢 Number 🔢 Divisor ) |
| Returns the most common value in a data set | number1, [number2, ...] | MODE( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Converts a serial number to a month | serial_number | MONTH( 📅 Date ) |
| Returns the normal distribution | x, mean, standard_dev, cumulative | NORMDIST( 🔢 X 📊 Mean 📊 Standard Dev 📊 Cumulative ) |
| Returns the inverse of the normal cumulative distribution | probability, mean, standard_dev | NORMINV( 📊 Probability 📊 Mean 📊 Standard Dev ) |
| Returns the standard normal cumulative distribution | number | NORMSDIST( 🔢 Z ) |
| Returns the inverse of the standard normal cumulative distribution | probability | NORMSINV( 📊 Probability ) |
| Reverses the logic of its argument | logical | NOT( ❓ Logical ) |
| Returns the serial number of the current date and time | - | NOW() |
| Returns the number of periods for an investment | rate, pmt, pv, [fv], [type] | NPER( 📊 Rate 💰 Payment 💰 Present Value ) |
| Returns the net present value of an investment based on a series of periodic cash flows and a discount rate | rate, value1, [value2, ...] | NPV( 📊 Rate 💰 Value 1 💰 Value 2 ) |
| Rounds a number up to the nearest odd integer | number | ODD( 🔢 Number ) |
| Returns a reference offset from a given reference | reference, rows, cols, [height], [width] | OFFSET( 📍 Reference 🔢 Rows 🔢 Columns ) |
| Returns TRUE if any argument is TRUE | logical1, [logical2, ...] | OR( ❓ Logical 1 ❓ Logical 2 ) |
| Returns the Pearson product moment correlation coefficient | array1, array2 | PEARSON( 📊 Array 1 📊 Array 2 ) |
| Returns the k-th percentile of values in a range | array, k | PERCENTILE( 📊 Array 🔢 K ) |
| Returns the percentage rank of a value in a data set | array, x, [significance] | PERCENTRANK( 📊 Array 🔢 X ) |
| Returns the value of pi | PI() | |
| Returns the periodic payment for an annuity | rate, nper, pv, [fv], [type] | PMT( 📊 Rate 🔢 Num Periods 💰 Present Value ) |
| Returns the Poisson distribution | x, mean, cumulative | POISSON( 🔢 X 📊 Mean ❓ Cumulative ) |
| Returns the result of a number raised to a power | number, power | POWER( 🔢 Base 🔢 Exponent ) |
| Returns the payment on the principal for an investment for a given period | rate, per, nper, pv, [fv], [type] | PPMT( 📊 Rate 🔢 Period 🔢 Num Periods 💰 Present Value ) |
| Multiplies its arguments | number1, [number2, ...] | PRODUCT( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Capitalizes the first letter in each word of a text value | text | PROPER( 📝 Text ) |
| Returns the present value of an investment | rate, nper, pmt, [fv], [type] | PV( 📊 Rate 🔢 Num Periods 💰 Payment ) |
| Converts degrees to radians | angle | RADIANS( 📐 Angle ) |
| Returns a random number between 0 and 1 | RAND() | |
| Returns the rank of a number in a list of numbers | number, ref, [order] | RANK( 🔢 Number 📊 Reference ) |
| Returns the interest rate per period of an annuity | nper, pmt, pv, [fv], [type], [guess] | RATE( 🔢 Num Periods 💰 Payment 💰 Present Value ) |
| Replaces characters within text | old_text, start_num, num_chars, new_text | REPLACE( 📝 Old Text 🔢 Start 🔢 Num Chars 📝 New Text ) |
| Repeats text a given number of times | text, number_times | REPT( 📝 Text 🔢 Times ) |
| Returns the rightmost characters from a text value | text, [num_chars] | RIGHT( 📝 Text 🔢 Num Chars ) |
| Converts an arabic numeral to roman as text | number, [form] | ROMAN( 🔢 Number ) |
| Rounds a number to a specified number of digits | number, num_digits | ROUND( 🔢 Number 🔢 Digits ) |
| Rounds a number down toward zero | number, num_digits | ROUNDDOWN( 🔢 Number 🔢 Digits ) |
| Rounds a number up away from zero | number, num_digits | ROUNDUP( 🔢 Number 🔢 Digits ) |
| Returns the row number of a reference | [reference] | ROW( 📍 Reference ) |
| Returns the number of rows in a reference | array | ROWS( 📊 Array ) |
| Finds one text value within another (not case-sensitive) | find_text, within_text, [start_num] | SEARCH( 🔍 Find Text 📝 Within Text 🔢 Start ) |
| Converts a serial number to a second | serial_number | SECOND( 🕒 Time ) |
| Returns the sign of a number | number | SIGN( 🔢 Number ) |
| Returns the sine of the given angle | number | SIN( 📐 Angle ) |
| Returns the hyperbolic sine of a number | number | SINH( 🔢 Number ) |
| Returns the slope of the linear regression line | known_y's, known_x's | SLOPE( 📊 Known Y's 📊 Known X's ) |
| Returns the k-th smallest value in a data set | array, k | SMALL( 📊 Array 🔢 K ) |
| Returns a positive square root | number | SQRT( 🔢 Number ) |
| Returns a normalized value | x, mean, standard_dev | STANDARDIZE( 🔢 X 📊 Mean 📊 Standard Dev ) |
| Estimates standard deviation based on a sample | number1, [number2, ...] | STDEV( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Estimates standard deviation based on a sample including numbers text and logical values | value1, [value2, ...] | STDEVA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Calculates standard deviation based on the entire population | number1, [number2, ...] | STDEVP( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Calculates standard deviation based on the entire population including numbers text and logical values | value1, [value2, ...] | STDEVPA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Substitutes new text for old text in a text string | text, old_text, new_text, [instance_num] | SUBSTITUTE( 📝 Text 📝 Old Text 📝 New Text ) |
| Returns a subtotal in a list or database | function_num, ref1, [ref2, ...] | SUBTOTAL( 🔢 Function Num 📍 Ref 1 📍 Ref 2 ) |
| Adds its arguments | number1, [number2, ...] | SUM( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Adds the cells specified by a given criteria | range, criteria, [sum_range] | SUMIF( 📍 Range 📌 Criteria 📍 Sum Range ) |
| Returns the sum of the products of corresponding array components | array1, [array2, ...] | SUMPRODUCT( 📊 Array 1 📊 Array 2 ) |
| Returns the sum of the squares of the arguments | number1, [number2, ...] | SUMSQ( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Returns the sum of the difference of squares of corresponding values in two arrays | array_x, array_y | SUMX2MY2( 📊 Array X 📊 Array Y ) |
| Returns the sum of the sum of squares of corresponding values in two arrays | array_x, array_y | SUMX2PY2( 📊 Array X 📊 Array Y ) |
| Returns the sum of squares of differences of corresponding values in two arrays | array_x, array_y | SUMXMY2( 📊 Array X 📊 Array Y ) |
| Converts its arguments to text | value | T( 📊 Value ) |
| Returns the tangent of a number | number | TAN( 📐 Angle ) |
| Returns the hyperbolic tangent of a number | number | TANH( 🔢 Number ) |
| Returns the Student's t-distribution | x, deg_freedom, tails | TDIST( 🔢 X 🔢 Degrees of Freedom 🔢 Tails ) |
| Formats a number and converts it to text | value, format_text | TEXT( 🔢 Value 📝 Format Text ) |
| Returns the serial number of a particular time | hour, minute, second | TIME( 🕒 Hour 🕒 Minute 🕒 Second ) |
| Converts a text time to a serial number | time_text | TIMEVALUE( 📝 Time Text ) |
| Returns the serial number of today's date | TODAY() | |
| Returns the transpose of an array | array | TRANSPOSE( 📊 Array ) |
| Returns values along a linear trend | known_y's, [known_x's], [new_x's], [const] | TREND( 📊 Known Y's 📊 Known X's 📊 New X's ) |
| Removes spaces from text | text | TRIM( 📝 Text ) |
| Returns the logical value TRUE | TRUE() | |
| Truncates a number to an integer | number, [num_digits] | TRUNC( 🔢 Number 🔢 Digits ) |
| Converts text to uppercase | text | UPPER( 📝 Text ) |
| Converts a text argument to a number | text | VALUE( 📝 Text ) |
| Estimates variance based on a sample | number1, [number2, ...] | VAR( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Estimates variance based on a sample including numbers text and logical values | value1, [value2, ...] | VARA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Calculates variance based on the entire population | number1, [number2, ...] | VARP( 🔢 Number 1 🔢 Number 2 🔢 Number 3 ) |
| Calculates variance based on the entire population including numbers text and logical values | value1, [value2, ...] | VARPA( 📊 Value 1 📊 Value 2 📊 Value 3 ) |
| Looks for a value in the leftmost column of a table and returns a value in the same row from a column you specify | lookup_value, table_array, col_index_num, [range_lookup] | VLOOKUP( 🔍 Lookup Value 📊 Table Array 🔢 Column Index ) |
| Converts a serial number to a day of the week | serial_number, [return_type] | WEEKDAY( 📅 Date ) |
| Converts a serial number to a year | serial_number | YEAR( 📅 Date ) |