How to use Formulas in your RowShare tables?
RowShare formulas are based on the value of the other cells of the same row. Add a Formula column and specify the formula in this column’s settings. Yes, the formula is set by column and not by cell,…
RowShare formulas are based on the value of the other cells of the same row. Add a Formula column and specify the formula in this column’s settings. Yes, the formula is set by column and not by cell, which means that the formula will always be the same in a given column.
Start by adding a new column to your table, and click Formulas, then decide if your formula will show text or numbers. After having named your column and clicked on Add, and scroll to the bottom to enter the formula:

Formulas reference other column names between single quotes : 'Column A' + 'Column B'
In addition to referencing other columns, formulas can include operators and functions.
Operators
You can find below the most common operators.
-
'Product A' + 'Product B'
to add the amounts in columns Product A and Product B-
'First Name' & " " & 'Last Name'
to display the first name and last space split by a space- 4 standard mathematic operations: +, -, *, /
- operator "&" to concatenate text
- Comparison operators: >, <, >=, <=, =, !=, <> (the last two ones are equivalent and mean "not-equal")
- (bool1) And (bool2), (bool1) && (bool2): boolean operator that returns true if both expressions are true
- (bool1) Or (bool2), (bool1) || (bool2): boolean operator that returns true if at least one expression is true
- Not (bool) or ! (bool) : returns the opposite of a boolean. true returns false and false returns true
Functions
RowShare offers additional functions to manipulate numbers, text, dates and introduce logical operations. Here is a selection of the most commonly used.
Numbers
- Max/Min(Number1, Number2, …) returns the largest/smallest value
- Sum(Number1, Number2, ...) returns the sum of numbers
- Average(Number1, Number2, ...) returns the arithmetic mean
- Abs(Number) returns the absolute value of a number
- Round(Number, DecimalPlaces) rounds to the specified number of decimal places
- RoundUp(Number, DecimalPlaces) rounds away from zero
- RoundDown(Number, DecimalPlaces) rounds toward zero
- Sqrt(Number) returns the square root
- Rand() returns a random decimal ≥0 and <1
- RandBetween(Lower, Upper) returns a random integer between bounds (inclusive)
Time
- Today() returns the current date (no time)
- Now() returns the current date and time
- Date(Year, Month, Day) returns a date built from parts
- DateAdd(DateTime, NumberOfUnits, Unit) returns DateTime shifted by the given units
- DateDiff(StartDateTime, EndDateTime, Unit) returns the difference between two dates/times in units
- DateValue(Text[, LanguageTag]) converts text to a date value
- Year(DateTime) returns the year component
- Month(DateTime) returns the month number (1–12)
- Day(DateTime) returns the day of month (1–31)
- Weekday(DateTime[, StartOfWeek]) returns the day-of-week number (1–7)
String
- Len(Text) returns the number of characters in a string
- Left(Text, NumberOfCharacters) returns the beginning characters of a string
- Right(Text, NumberOfCharacters) returns the ending characters of a string
- Mid(Text, StartPosition[, NumberOfCharacters]) returns a substring starting at a position
- Lower(Text) converts all letters to lowercase
- Upper(Text) converts all letters to uppercase
- Trim(Text) removes extra spaces and trims leading/trailing spaces
- Substitute(Text, OldText, NewText[, InstanceNumber]) replaces matching text (optionally only the nth match)
- Find(FindText, WithinText[, StartingPosition]) returns the position of a substring (case-sensitive)
- StartsWith(Text, Prefix) returns whether Text begins with Prefix
- Split(Text, Separator) splits Text into a single-column table of substrings
- Concatenate(Text1, Text2, …) or Text1 & Text2 joins strings together
- IsMatch(Text, Pattern[, Options]) tests if Text matches a pattern (regex-like)
- Coalesce(Text1, Text2, …) returns the first non-blank string
Logic
- If(Condition1, Result1[, Condition2, Result2, …[, DefaultResult]]) returns the first Result whose Condition is true
- Switch(Expression, Match1, Result1[, Match2, Result2, …[, DefaultResult]]) returns the Result for the first equal Match
- And(Condition1, Condition2, …) returns true if all conditions are true
- Coalesce(Value1, Value2, …) returns the first non-blank value
- Or(Condition1, Condition2, …) returns true if any condition is true
- Not(Boolean) returns the logical negation of a Boolean
Tests on values
- IsBlank(Value) returns true if the value is blank (null)
- Blank() returns a blank value (useful to clear a field)
- IfError(Value, Fallback[, Value2, Fallback2, …]) returns Fallback if an error occurs while evaluating Value
- IsMatch(Text, Pattern[, Options]) returns true if Text matches the pattern (regex-like)
- to specify in a cell 1 if another cell is positive, and -1 if it is null or negative, use:
If('COL1' > 0, 1 , -1)
. You could also have used Abs('COL1')
to get the same result.- to show the first name, unless there is no first name, in this case, show the last name:
Coalesce('First Name','Last Name')
Example :
// If the VAT column is checked, we multiply by 1.2
'
Price
' *
if('VAT',1.2,1)
Important Notes
- Formulas do not function if column names include one of the following characters:
- ' (single quote)
- . (dot)
- \ (backslash)
- [ (opening square bracket)
- ] (closing square bracket)
- You can show formulas as percentage or colored text: choose the column type you want, and then check "Formula" in its settings.
How did we do?
What are the different types of RowShare columns?
How to configure your RowShare columns?