@ -27,41 +27,26 @@ menuTitle: "Formulas"
## Available Formula Features
### Functions
| Name | Syntax | Sample | Output | Minimum arguments |
| ------- | -------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- | ----------------- |
| AVG | `AVG(value1, [value2,...])` | `AVG(Column1, Column1)` | Average of input parameters | 1 |
| ADD | `ADD(value1, [value2,...])` | `ADD(Column1, Column1)` | Sum of input parameters | 1 |
| CONCAT | `CONCAT(value1, [value2,...])` | `CONCAT(FirstName, ' ', LastName)` | Concatenated string of input parameters | 2
| TRIM | `TRIM(value)` | `TRIM(Title)` | Removes trailing and leading whitespaces from input parameter | 1
| UPPER | `UPPER(value)` | `UPPER(Title)` | Upper case converted string of input parameter | 1
| LOWER | `LOWER(value)` | `LOWER(Title)` | Lower case converted string of input parameter | 1
| LEN | `LEN(value)` | `LEN(Title)` | Input parameter charachter length | 1
| MIN | `MIN(value1, [value2,...])` | `MIN(Column1, Column2, Column3)` | Minimum value amongst input parameters | 1
| MAX | `MAX(value1, [value2,...])` | `MAX(Column1, Column2, Column3)` | Maximum value amongst input parameters | 1
| CEILING | `CEILING(value)` | `CEILING(Column)` | Rounded next largest integer value of input parameter | 1
| FLOOR | `FLOOR(value)` | `FLOOR(Column)` | Rounded largest integer less than or equal to input parameter | 1
| ROUND | `ROUND(value)` | `ROUND(Column)` | Nearest integer to the input parameter | 1
| MOD | `MOD(value1, value2)` | `MOD(Column, 2)` | Remainder after integer division of input parameters | 2 |
| REPEAT | `REPEAT(value1, count)` | `REPEAT(Column, 2)` | Specified copies of the input parameter string concatenated together | 2
| LOG | `LOG(value1, [base])` | `LOG(Column)` | Logarithm of input parameter to the base specified | 1
| EXP | `EXP(value)` | `EXP(Column)` | Exponential value of input parameter (`e^x`) | 1
| POWER | `POWER(base, exponent)` | `POWER(Column, 3)` | `base` to the `exponent` power, as in `base^exponent` | 2
| SQRT | `SQRT(value)` | `SQRT(Column)` | Square root of the input parameter | 1
| ABS | `ABS(value)` | `ABS(Column)` | Absolute value of the input parameter | 1
| NOW | `NOW()` | `NOW()` | Current date time | 0
| REPLACE | `REPLACE(value, old_str,new_str)` | `REPLACE(Column, old_string, new_String)` | String, after replacing all occurrences of `old_string` with `new_String` | 3
| SEARCH | `SEARCH(value, search_val)` | `SEARCH(Column, 'str')` | Index of sub-string specified if found, 0 otherwise | 2
| INT | `INT(value)` | `INT(Column)` | Integer value of input parameter | 1
| RIGHT | `RIGHT(value, count)` | `RIGHT(Column, 3)` | `n` characters from the end of input parameter | 2
| LEFT | `LEFT(value1, [value2,...])` | `LEFT(Column, 3)` | `n` characters from the beginning of input parameter | 2
| SUBSTR | `SUBTR(value, position, [count])` | `SUBSTR(Column, 3, 2)` | Substring of length 'count' of input string, from the postition specified | 3
| MID | `SUBTR(value, position, [count])` | `MID(Column, 3, 2)` | Alias for `SUBSTR` | 3
| IF | `IF(expression, success_case, [else_case])` | `IF(Column > 1, Value1, Value2)` | success_case if expression evaluates to TRUE, else_case otherwise | 2
| SWITCH | `SWITCH(expression, [pattern,value,..., default_value])` | `SWITCH(Column1, 1, 'One', 2, 'Two', '--')` | Switch case value based on expression output | 3
| AND | `AND(expression1, [expression2,...])` | `AND(Column > 2, Column < 10)` | TRUE if all expressions evaluate to TRUE | 1
| OR | `OR(expression1, [expression2,...])` | `OR(Column > 2, Column < 10)` | TRUE if at least one expression evaluates to TRUE | 1
### Numeric Functions
| Name | Syntax | Sample | Output |
| ----------- | ------------------------------------------- | ----------------------------------------- | ---------------------------------------------- |
| **ABS** | `ABS(value)` | `ABS(Column)` | Absolute value of the input parameter |
| **ADD** | `ADD(value1,[value2,...])` | `ADD(Column1, Column1)` | Sum of input parameters |
| **AVG** | `AVG(value1,[value2,...])` | `AVG(Column1, Column1)` | Average of input parameters |
| **CEILING** | `CEILING(value)` | `CEILING(Column)` | Rounded next largest integer value of input parameter |
| **EXP** | `EXP(value)` | `EXP(Column)` | Exponential value of input parameter (`e^x`) |
| **FLOOR** | `FLOOR(value)` | `FLOOR(Column)` | Rounded largest integer less than or equal to input parameter |
| **INT** | `INT(value)` | `INT(Column)` | Integer value of input parameter |
| **LOG** | `LOG([base], value)` | `LOG(10, Column)` | Logarithm of input parameter to the base (default = e) specified |
| **MAX** | `MAX(value1,[value2,...])` | `MAX(Column1, Column2, Column3)` | Maximum value amongst input parameters |
| **MIN** | `MIN(value1,[value2,...])` | `MIN(Column1, Column2, Column3)` | Minimum value amongst input parameters |
| **MOD** | `MOD(value1, value2)` | `MOD(Column, 2)` | Remainder after integer division of input parameters |
| **POWER** | `POWER(base, exponent)` | `POWER(Column, 3)` | `base` to the `exponent` power, as in `base^exponent` |
| **ROUND** | `ROUND(value)` | `ROUND(Column)` | Nearest integer to the input parameter |
| **SQRT** | `SQRT(value)` | `SQRT(Column)` | Square root of the input parameter |
| | | | |
### Numeric Operators
@ -72,7 +57,29 @@ menuTitle: "Formulas"
| `*` | `column1 * column2` | Multiplication of numeric values |
| `-` | `column1 / column2` | Division of numeric values |
### Logical operators
> To change order of arithmetic operation, use round bracket parantheses `()`
> Example: `(column1 + (column2 * column3) / (3 - column4 ))`
### String Functions
| Name | Syntax | Sample | Output |
| ------- | --------------------------------| ----------------------------------| ------------------------------------------------------------------------- |
| **CONCAT** | `CONCAT(str1, [str2,...])` | `CONCAT(fName, ' ', lName)` | Concatenated string of input parameters |
| **LEFT** | `LEFT(str1, [str2,...])` | `LEFT(Column, 3)` | `n` characters from the beginning of input parameter |
| **LEN** | `LEN(str)` | `LEN(Title)` | Input parameter charachter length |
| **LOWER** | `LOWER(str)` | `LOWER(Title)` | Lower case converted string of input parameter |
| **MID** | `SUBTR(str, position, [count])` | `MID(Column, 3, 2)` | Alias for `SUBSTR` |
| **REPEAT** | `REPEAT(str, count)` | `REPEAT(Column, 2)` | Specified copies of the input parameter string concatenated together |
| **REPLACE** | `REPLACE(str, srchStr, rplcStr)` | `REPLACE(Column, 'int', 'num')` | String, after replacing all occurrences of `srchStr` with `rplcStr` |
| **RIGHT** | `RIGHT(str, count)` | `RIGHT(Column, 3)` | `n` characters from the end of input parameter |
| **SEARCH** | `SEARCH(str, srchStr)` | `SEARCH(Column, 'str')` | Index of `srchStr` specified if found, 0 otherwise |
| **SUBSTR** | `SUBTR(str, position, [count])` | `SUBSTR(Column, 3, 2)` | Substring of length 'count' of input string, from the postition specified |
| **TRIM** | `TRIM(str)` | `TRIM(Title)` | Remove trailing and leading whitespaces from input parameter |
| **UPPER** | `UPPER(str)` | `UPPER(Title)` | Upper case converted string of input parameter |
| | | | |
### Logical Operators
| Operator | Sample | Description |
| -------- | -------------------- | ------------------------ |
@ -82,3 +89,26 @@ menuTitle: "Formulas"
| `>=` | `column1 >= column2` | Greater than or equal to |
| `==` | `column1 == column2` | Equal to |
| `!=` | `column1 != column2` | Not equal to |
### Conditional Expressions
| Name | Syntax | Sample | Output |
| ------- | -----------------------------------------------| --------------------------------------------| ------------------------------------------------------------- |
| **IF** | `IF(expr, successCase, [failCase])` | `IF(Column > 1, Value1, Value2)` | successCase if `expr` evaluates to TRUE, elseCase otherwise |
| **SWITCH** | `SWITCH(expr, [pattern, value, ..., default])` | `SWITCH(Column1, 1, 'One', 2, 'Two', '--')` | Switch case value based on `expr` output |
| **AND** | `AND(expr1, [expr2,...])` | `AND(Column > 2, Column < 10)` | TRUE if all `expr` evaluate to TRUE |
| **OR** | `OR(expr1, [expr2,...])` | `OR(Column > 2, Column < 10)` | TRUE if at least one `expr` evaluates to TRUE |
| | | | |
> Logical operators, along with Numerical operators can be used to build conditional `expressions` .
>
> Example:
> **IF** (marksSecured > 80, "GradeA", "GradeB")
> **SWITCH** (quarterNumber,
> 1, 'Jan-Mar',
> 2, 'Apr-Jun',
> 3, 'Jul-Sep',
> 4, 'Oct-Dec',
> 'INVALID')