diff --git a/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue b/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue
index 54412182bd..bb9191caf2 100644
--- a/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue
+++ b/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue
@@ -321,7 +321,7 @@ onMounted(() => {
- View in Docs
diff --git a/packages/nocodb-sdk/src/lib/formulaHelpers.ts b/packages/nocodb-sdk/src/lib/formulaHelpers.ts
index 7dd4680cd9..cda0be6a04 100644
--- a/packages/nocodb-sdk/src/lib/formulaHelpers.ts
+++ b/packages/nocodb-sdk/src/lib/formulaHelpers.ts
@@ -358,9 +358,9 @@ export const formulas: Record = {
}
},
},
- description: 'Adds a "count" units to Datetime.',
+ description: 'Adds "count" units to Datetime.',
syntax:
- 'DATEADD(date | datetime, value, ["day" | "week" | "month" | "year"])',
+ 'DATEADD(date | datetime, count, ["day" | "week" | "month" | "year"])',
examples: [
'DATEADD({column1}, 2, "day")',
'DATEADD({column1}, -2, "day")',
@@ -379,7 +379,8 @@ export const formulas: Record = {
rqd: 1,
},
},
- description: 'Formats a datetime into a string (YYYY-MM-DD)',
+ syntax: 'DATESTR(date | datetime)',
+ description: 'Formats input field into a string in "YYYY-MM-DD" format',
examples: ['DATESTR({column1})'],
returnType: FormulaDataTypes.STRING,
},
@@ -389,7 +390,8 @@ export const formulas: Record = {
rqd: 1,
},
},
- description: 'Extract day from a date(1-31)',
+ syntax: 'DAY(date | datetime)',
+ description: 'Extract day from a date field (1-31)',
examples: ['DAY({column1})'],
returnType: FormulaDataTypes.STRING,
},
@@ -399,7 +401,8 @@ export const formulas: Record = {
rqd: 1,
},
},
- description: 'Extract month from a date(1-12)',
+ syntax: 'MONTH(date | datetime)',
+ description: 'Extract month from a date field (1-12)',
examples: ['MONTH({column1})'],
returnType: FormulaDataTypes.STRING,
},
@@ -409,7 +412,8 @@ export const formulas: Record = {
rqd: 1,
},
},
- description: 'Extract hour from a datetime(0-23)',
+ syntax: 'DAY(time | datetime)',
+ description: 'Extract hour from a time field (0-23)',
examples: ['HOUR({column1})'],
returnType: FormulaDataTypes.STRING,
},
@@ -479,7 +483,7 @@ export const formulas: Record = {
},
},
description:
- 'Calculate the difference of two given date / datetime in specified units.',
+ 'Calculate the difference of two given date / datetime fields in specified units.',
syntax:
'DATETIME_DIFF(date | datetime, date | datetime, ["milliseconds" | "ms" | "seconds" | "s" | "minutes" | "m" | "hours" | "h" | "days" | "d" | "weeks" | "w" | "months" | "M" | "quarters" | "Q" | "years" | "y"])',
examples: [
@@ -504,7 +508,7 @@ export const formulas: Record = {
min: 1,
},
},
- description: 'TRUE if all expr evaluate to TRUE',
+ description: 'Result is TRUE if all conditions are met',
syntax: 'AND(expr1, [expr2, ...])',
examples: ['AND(5 > 2, 5 < 10) => 1', 'AND({column1} > 2, {column2} < 10)'],
returnType: FormulaDataTypes.COND_EXP,
@@ -518,7 +522,7 @@ export const formulas: Record = {
min: 1,
},
},
- description: 'TRUE if at least one expr evaluates to TRUE',
+ description: 'Result is TRUE if at least one condition is met',
syntax: 'OR(expr1, [expr2, ...])',
examples: ['OR(5 > 2, 5 < 10) => 1', 'OR({column1} > 2, {column2} < 10)'],
returnType: FormulaDataTypes.COND_EXP,
@@ -532,7 +536,7 @@ export const formulas: Record = {
min: 1,
},
},
- description: 'Concatenated string of input parameters',
+ description: 'Concatenate input parameters into a single string',
syntax: 'CONCAT(str1, [str2, ...])',
examples: [
'CONCAT("AA", "BB", "CC") => "AABBCC"',
@@ -568,7 +572,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Upper case converted string of input parameter',
+ description: 'Converts the input parameter to an upper-case string.',
syntax: 'UPPER(str)',
examples: ['UPPER("nocodb") => "NOCODB"', 'UPPER({column1})'],
returnType: FormulaDataTypes.STRING,
@@ -583,7 +587,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Lower case converted string of input parameter',
+ description: 'Converts the input parameter to an lower-case string.',
syntax: 'LOWER(str)',
examples: ['LOWER("NOCODB") => "nocodb"', 'LOWER({column1})'],
returnType: FormulaDataTypes.STRING,
@@ -598,7 +602,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Input parameter character length',
+ description: 'Calculate the character length of the input parameter.',
syntax: 'LEN(value)',
examples: ['LEN("NocoDB") => 6', 'LEN({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -613,7 +617,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Minimum value amongst input parameters',
+ description: 'Find the minimum value among the input parameters.',
syntax: 'MIN(value1, [value2, ...])',
examples: ['MIN(1000, 2000) => 1000', 'MIN({column1}, {column2})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -628,7 +632,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Maximum value amongst input parameters',
+ description: 'Find the maximum value among the input parameters.',
syntax: 'MAX(value1, [value2, ...])',
examples: ['MAX(1000, 2000) => 2000', 'MAX({column1}, {column2})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -643,7 +647,8 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Rounded next largest integer value of input parameter',
+ description:
+ 'Rounds the input parameter to the next largest integer value.',
syntax: 'CEILING(value)',
examples: ['CEILING(1.01) => 2', 'CEILING({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -658,8 +663,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description:
- 'Rounded largest integer less than or equal to input parameter',
+ description: 'Round down the input parameter to the nearest integer.',
syntax: 'FLOOR(value)',
examples: ['FLOOR(3.1415) => 3', 'FLOOR({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -676,7 +680,7 @@ export const formulas: Record = {
},
},
description:
- 'Rounded number to a specified number of decimal places or the nearest integer if not specified',
+ 'Rounds the number to a specified decimal places or the nearest integer if precision is not specified',
syntax: 'ROUND(value, precision), ROUND(value)',
examples: [
'ROUND(3.1415) => 3',
@@ -695,7 +699,8 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Remainder after integer division of input parameters',
+ description:
+ 'Calculate the remainder resulting from integer division of input parameters.',
syntax: 'MOD(value1, value2)',
examples: ['MOD(1024, 1000) => 24', 'MOD({column}, 2)'],
returnType: FormulaDataTypes.NUMERIC,
@@ -712,7 +717,7 @@ export const formulas: Record = {
},
},
description:
- 'Specified copies of the input parameter string concatenated together',
+ 'Concatenate the specified number of copies of the input parameter string.',
syntax: 'REPEAT(str, count)',
examples: ['REPEAT("A", 5) => "AAAAA"', 'REPEAT({column}, 5)'],
returnType: FormulaDataTypes.STRING,
@@ -727,7 +732,7 @@ export const formulas: Record = {
},
},
description:
- 'Logarithm of input parameter to the base (default = e) specified',
+ 'Compute the logarithm of the input parameter to the specified base (default = e).',
syntax: 'LOG([base], value)',
examples: ['LOG(2, 1024) => 10', 'LOG(2, {column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -741,7 +746,8 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Exponential value of input parameter (e ^ power)',
+ description:
+ 'Compute the exponential value of the input parameter (e raised to the power specified)',
syntax: 'EXP(power)',
examples: ['EXP(1) => 2.718281828459045', 'EXP({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -756,7 +762,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'base to the exponent power, as in base ^ exponent',
+ description: 'Compute base raised to the exponent power.',
syntax: 'POWER(base, exponent)',
examples: ['POWER(2, 10) => 1024', 'POWER({column1}, 10)'],
returnType: FormulaDataTypes.NUMERIC,
@@ -771,7 +777,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Square root of the input parameter',
+ description: 'Calculate the square root of the input parameter.',
syntax: 'SQRT(value)',
examples: ['SQRT(100) => 10', 'SQRT({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -786,7 +792,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Absolute value of the input parameter',
+ description: 'Obtain the absolute value of the input parameter.',
syntax: 'ABS(value)',
examples: ['ABS({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -801,7 +807,7 @@ export const formulas: Record = {
type: FormulaDataTypes.DATE,
},
},
- description: 'Returns the current time and day',
+ description: 'Retrieve the current time and day.',
syntax: 'NOW()',
examples: ['NOW() => 2022-05-19 17:20:43'],
returnType: FormulaDataTypes.DATE,
@@ -817,8 +823,8 @@ export const formulas: Record = {
},
},
description:
- 'String, after replacing all occurrences of srchStr with rplcStr',
- syntax: 'REPLACE(str, srchStr, rplcStr)',
+ 'Replace all occurrences of "searchStr" with "replaceStr" in the given string.',
+ syntax: 'REPLACE(str, searchStr, replaceStr)',
examples: [
'REPLACE("AABBCC", "AA", "BB") => "BBBBCC"',
'REPLACE({column1}, {column2}, {column3})',
@@ -835,8 +841,9 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Index of srchStr specified if found, 0 otherwise',
- syntax: 'SEARCH(str, srchStr)',
+ description:
+ 'Retrieve the index of the specified "searchStr" if found; otherwise, returns 0.',
+ syntax: 'SEARCH(str, searchStr)',
examples: [
'SEARCH("HELLO WORLD", "WORLD") => 7',
'SEARCH({column1}, "abc")',
@@ -853,7 +860,7 @@ export const formulas: Record = {
type: FormulaDataTypes.NUMERIC,
},
},
- description: 'Integer value of input parameter',
+ description: 'Obtain the integer value of the input parameter',
syntax: 'INT(value)',
examples: ['INT(3.1415) => 3', 'INT({column1})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -868,7 +875,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'n characters from the end of input parameter',
+ description: 'Retrieve the last n characters from the input string.',
syntax: 'RIGHT(str, n)',
examples: ['RIGHT("HELLO WORLD", 5) => WORLD', 'RIGHT({column1}, 3)'],
returnType: FormulaDataTypes.STRING,
@@ -883,7 +890,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'n characters from the beginning of input parameter',
+ description: 'Retrieve the first n characters from the input string.',
syntax: 'LEFT(str, n)',
examples: ['LEFT({column1}, 2)', 'LEFT("ABCD", 2) => "AB"'],
returnType: FormulaDataTypes.STRING,
@@ -900,7 +907,7 @@ export const formulas: Record = {
},
},
description:
- 'Substring of length n of input string from the postition specified',
+ 'Extracts a substring of length "n" from the input string, starting from the specified position.',
syntax: ' SUBTR(str, position, [n])',
examples: [
'SUBSTR("HELLO WORLD", 7) => WORLD',
@@ -919,7 +926,7 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Alias for SUBSTR',
+ description: 'Extracts a substring; an alias for SUBSTR.',
syntax: 'MID(str, position, [count])',
examples: ['MID("NocoDB", 3, 2) => "co"', 'MID({column1}, 3, 2)'],
returnType: FormulaDataTypes.STRING,
@@ -934,8 +941,9 @@ export const formulas: Record = {
max: 3,
},
},
- description: 'SuccessCase if expr evaluates to TRUE, elseCase otherwise',
- syntax: 'IF(expr, successCase, elseCase)',
+ description:
+ 'Evaluate successCase if the expression is TRUE, else the failureCase.',
+ syntax: 'IF(expr, successCase, failureCase)',
examples: [
'IF(5 > 1, "YES", "NO") => "YES"',
'IF({column} > 1, "YES", "NO")',
@@ -976,7 +984,8 @@ export const formulas: Record = {
// Todo: Add validation for switch
},
},
- description: 'Switch case value based on expr output',
+ description:
+ 'Evaluate case value based on expression output; if no match is found, evaluate default case.',
syntax: 'SWITCH(expr, [pattern, value, ..., default])',
examples: [
'SWITCH(1, 1, "One", 2, "Two", "N/A") => "One""',
@@ -1019,7 +1028,8 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Convert to a hyperlink if it is a valid URL',
+ description:
+ 'Verify and convert to a hyperlink if the input is a valid URL.',
syntax: 'URL(str)',
examples: ['URL("https://github.com/nocodb/nocodb")', 'URL({column1})'],
returnType: FormulaDataTypes.STRING,
@@ -1073,7 +1083,7 @@ export const formulas: Record = {
},
},
description:
- 'Returns the day of the week as an integer between 0 and 6 inclusive starting from Monday by default',
+ 'Retrieve the day of the week as an integer (0-6), starting from Monday by default.',
syntax: 'WEEKDAY(date, [startDayOfWeek])',
examples: ['WEEKDAY("2021-06-09")', 'WEEKDAY(NOW(), "sunday")'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1117,7 +1127,7 @@ export const formulas: Record = {
},
},
description:
- 'Returns 1 if the input text matches a regular expression or 0 if it does not.',
+ 'Verifies whether the input text matches a regular expression, returning 1 for a match and 0 otherwise.',
syntax: 'REGEX_MATCH(string, regex)',
examples: ['REGEX_MATCH({title}, "abc.*")'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1130,7 +1140,8 @@ export const formulas: Record = {
type: FormulaDataTypes.STRING,
},
},
- description: 'Returns the first match of a regular expression in a string.',
+ description:
+ 'Retrieve the first match of a regular expression in a string.',
syntax: 'REGEX_EXTRACT(string, regex)',
examples: ['REGEX_EXTRACT({title}, "abc.*")'],
returnType: FormulaDataTypes.STRING,
@@ -1145,7 +1156,7 @@ export const formulas: Record = {
},
},
description:
- 'Replaces all matches of a regular expression in a string with a replacement string',
+ 'Replace all occurrences of a regular expression in a string with a specified replacement string.',
syntax: 'REGEX_MATCH(string, regex, replacement)',
examples: ['REGEX_EXTRACT({title}, "abc.*", "abcd")'],
returnType: FormulaDataTypes.STRING,
@@ -1158,7 +1169,7 @@ export const formulas: Record = {
rqd: 0,
},
},
- description: 'Returns a blank value(null)',
+ description: 'Yields a null value.',
syntax: 'BLANK()',
examples: ['BLANK()'],
returnType: FormulaDataTypes.NULL,
@@ -1174,7 +1185,7 @@ export const formulas: Record = {
// todo: validation for boolean
},
description:
- 'Returns true if an odd number of arguments are true, and false otherwise.',
+ 'Verifies whether an odd number of arguments are true, returning true if so, and false otherwise.',
syntax: 'XOR(expression, [exp2, ...])',
examples: ['XOR(TRUE(), FALSE(), TRUE())'],
returnType: FormulaDataTypes.BOOLEAN,
@@ -1190,7 +1201,7 @@ export const formulas: Record = {
},
},
description:
- 'Returns the nearest even integer that is greater than or equal to the specified value',
+ 'Rounds up the specified value to the nearest even integer that is greater than or equal to the specified value',
syntax: 'EVEN(value)',
examples: ['EVEN({column})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1205,7 +1216,7 @@ export const formulas: Record = {
},
},
description:
- 'Returns the nearest odd integer that is greater than or equal to the specified value',
+ 'Rounds up the specified value to the nearest odd integer that is greater than or equal to the specified value',
syntax: 'ODD(value)',
examples: ['ODD({column})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1218,7 +1229,7 @@ export const formulas: Record = {
rqd: 0,
},
},
- description: 'Returns the record id of the current record',
+ description: 'Retrieve the record ID of the current record.',
syntax: 'RECORD_ID()',
examples: ['RECORD_ID()'],
@@ -1233,7 +1244,7 @@ export const formulas: Record = {
min: 1,
},
},
- description: 'Counts the number of non-empty arguments',
+ description: 'Counts non-empty arguments',
syntax: 'COUNTA(value1, [value2, ...])',
examples: ['COUNTA({field1}, {field2})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1246,7 +1257,7 @@ export const formulas: Record = {
min: 1,
},
},
- description: 'Count the number of arguments that are numbers',
+ description: 'Counts numerical arguments',
syntax: 'COUNT(value1, [value2, ...])',
examples: ['COUNT({field1}, {field2})'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1275,7 +1286,7 @@ export const formulas: Record = {
},
},
description:
- 'Round down the value after the decimal point to the number of decimal places given by "precision"(default is 0)',
+ 'Rounds down the value after the decimal point to the specified number of decimal places given by "precision" (default is 0).',
syntax: 'ROUNDDOWN(value, [precision])',
examples: ['ROUNDDOWN({field1})', 'ROUNDDOWN({field1}, 2)'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1291,7 +1302,7 @@ export const formulas: Record = {
},
},
description:
- 'Round up the value after the decimal point to the number of decimal places given by "precision"(default is 0)',
+ 'Rounds up the value after the decimal point to the specified number of decimal places given by "precision" (default is 0).',
syntax: 'ROUNDUP(value, [precision])',
examples: ['ROUNDUP({field1})', 'ROUNDUP({field1}, 2)'],
returnType: FormulaDataTypes.NUMERIC,
@@ -1305,7 +1316,7 @@ export const formulas: Record = {
},
},
description:
- 'Extract the numeric value from a string, if `%` or `-` is present, it will handle it accordingly and return the numeric value',
+ 'Extracts the numeric value from a string, handling % or - appropriately, and returns the resulting numeric value.',
syntax: 'VALUE(value)',
examples: ['VALUE({field})', 'VALUE("abc10000%")', 'VALUE("$10000")'],
returnType: FormulaDataTypes.NUMERIC,