Formula syntax & functions

Notion formulas can operate on various properties and functions. Here, you'll find a list of them ➗

Looking for Notion formula basics? Check out this article →
If you have a formula that doesn't seem to work, learn about common formula errors and how to troubleshoot them in this article →

Know what you want your formula to do, but not sure how to build it? You can use Notion AI to create and edit formulas. Learn more here →
Notion formulas can operate using various properties and functions. Here, you'll find a list of them!
Formulas support almost all property types. Note that formula types are different from property types.
Property Types  | Examples  | Formula Type  | 
|---|---|---|
Title  | 
  | Text  | 
Text  | 
  | Text  | 
Select  | 
  | Text  | 
Multi-Select  | 
  | Text (list)  | 
Checkbox  | 
  | Boolean  | 
Email, URL, Phone Number  | 
  | Text  | 
Unique ID  | 
  | Text  | 
Created By,   | 
  | Person  | 
Person  | 
  | Person (list)  | 
Date,  | 
  | Date  | 
Number  | 
  | Number  | 
Relation  | 
  | Page (list)  | 
Rollup  | 
  | Number, date, or list of any type. Depends on rollup configuration.  | 
Built-ins are specific symbols and values that are built into the language to help designate a calculation.
Built-in  | Example  | 
|---|---|
Math operators:  | 
  | 
Boolean values:  | 
  | 
Comparison operators:  | 
  | 
Logical operators:  | 
  | 
Ternary operator:  | 
  | 
Notion formulas support the following functions.
Name  | Description  | Example  | 
|---|---|---|
if  | Returns the first value if the condition is true; otherwise, returns the second value.  | 
  | 
ifs  | Returns the value that corresponds to the first true condition. This can be used as an alternative to multiple nested if() statements.  | 
  | 
empty  | Returns true if the value is empty. 0, “”, and [] are considered empty.  | 
  | 
length  | Returns the length of the text or list value.  | 
  | 
substring  | Returns the substring of the text from the start index (inclusive) to the end index (optional and exclusive).  | 
  | 
contains  | Returns true if the search string is present in the value.  | 
  | 
test  | Returns true if the value matches the regular expression and false otherwise.  | 
  | 
match  | Returns all matches of the regular expression as a list.  | 
  | 
replace  | Replaces the first match of the regular expression with the replacement value.  | 
  | 
replaceAll  | Replaces all matches of the regular expression with the replacement value.  | 
  | 
lower  | Converts the text to lowercase.  | 
  | 
upper  | Converts the text to uppercase.  | 
  | 
repeat  | Repeats the text a given number of times.  | 
  | 
link  | Creates a hyperlink from the label text and the URL.  | 
  | 
style  | Adds styles and colors to the text. Valid formatting styles:   | 
  | 
unstyle  | Removes formatting styles from the text. If no styles are specified, all styles are removed.  | 
  | 
format  | Returns the value formatted as text.  | 
  | 
add  | Returns the sum of two numbers.  | 
  | 
subtract  | Returns the difference of two numbers.  | 
  | 
multiply  | Returns the product of two numbers.  | 
  | 
mod  | Returns the first number modulo the second number.  | 
  | 
pow  | Returns the result of a base number raised to an exponent power.  | 
  | 
divide  | Returns the quotient of two numbers.  | 
  | 
min  | Returns the smallest number of the arguments.  | 
  | 
max  | Returns the largest number of the arguments.  | 
  | 
sum  | Returns the sum of its arguments.  | 
  | 
median  | Returns the middle value of its arguments.  | 
  | 
mean  | Returns the arithmetic average of its arguments.  | 
  | 
abs  | Returns the absolute value of the number.  | 
  | 
round  | Returns the value of a number rounded to the nearest integer. Supports one or two arguments. In the two-argument case, the first represents the value and the second represents the number of decimal places to round to.  | 
  | 
ceil  | Returns the smallest integer greater than or equal to the number.  | 
  | 
floor  | Returns the largest integer less than or equal to the number.  | 
  | 
sqrt  | Returns the positive square root of the number.  | 
  | 
cbrt  | Returns the cube root of the number.  | 
  | 
exp  | Returns e^x, where x is the argument, and e is Euler's number (2.718…), the base of the natural logarithm.  | 
  | 
ln  | Returns the natural logarithm of the number.  | 
  | 
log10  | Returns the base 10 logarithm of the number.  | 
  | 
log2  | Returns the base 2 logarithm of the number.  | 
  | 
sign  | Returns 1 if the number is positive, -1 if it is negative, and 0 if it is zero.  | 
  | 
pi  | Returns the ratio of a circle's circumference to its diameter.  | 
  | 
e  | Returns the base of the natural logarithm.  | 
  | 
toNumber  | Parses a number from text.  | 
  | 
now  | Returns the current date and time.  | 
  | 
today  | Returns the current date without the time.  | 
  | 
minute  | Returns the minute of the date (0-59).  | 
  | 
hour  | Returns the hour of the date (0-23).  | 
  | 
day  | Returns the day of the week of the date, between 1 (Monday) and 7 (Sunday).  | 
  | 
date  | Returns the day of the month from the date (1-31).  | 
  | 
week  | Returns the ISO week of the year of the date (1-53).  | 
  | 
month  | Returns the month of the date (1-12).  | 
  | 
year  | Returns the year of the date.  | 
  | 
dateAdd  | Adds time to the date. The unit argument can be one of:   | 
  | 
dateSubtract  | Subtracts time from the date. The unit argument can be one of:   | 
  | 
dateBetween  | Returns the difference between two dates. The unit argument can be one of:   | 
  | 
dateRange  | Returns a date range constructed from the start and end dates.  | 
  | 
dateStart  | Returns the start of the date range.  | 
  | 
dateEnd  | Returns the end of the date range.  | 
  | 
timestamp  | Returns the current Unix timestamp, representing the number of milliseconds that have elapsed since January 1, 1970.  | 
  | 
fromTimestamp  | Returns the date from the given Unix timestamp. The timestamp represents the number of milliseconds that have elapsed since January 1, 1970. Note: the returned date will not retain the seconds & milliseconds.  | 
  | 
formatDate  | Formats the date using a custom format string. The format string can contain the following text to represent parts of the date:   | 
  | 
parseDate  | Returns the date parsed according to the ISO 8601 standard.  | 
  | 
name  | Returns the name of a person.  | 
  | 
Returns the email address of a person.  | 
  | |
at  | Returns the value at the specified index in a list.  | 
  | 
first  | Returns the first item in the list.  | 
  | 
last  | Returns the last item in the list.  | 
  | 
slice  | Returns the items of the list from the provided start index (inclusive) to the end index (optional and exclusive).  | 
  | 
concat  | Returns the concatenation of multiple lists.  | 
  | 
sort  | Returns the list in sorted order.  | 
  | 
reverse  | Returns the reversed list.  | 
  | 
join  | Returns the values of the list with the joiner placed between each of the values.  | 
  | 
split  | Returns the list of values created by splitting a text input by a separator.  | 
  | 
unique  | Returns the list of unique values in the input list.  | 
  | 
includes  | Returns true if the list contains the specified value, and false otherwise.  | 
  | 
find  | Returns the first item in the list for which the condition evaluates to true.  | 
  | 
findIndex  | Returns the index of the first item in the list for which the condition is true.  | 
  | 
filter  | Returns the values in the list for which the condition is true.  | 
  | 
some  | Returns true if any item in the list satisfies the given condition, and false otherwise.  | 
  | 
every  | Returns true if every item in the list satisfies the given condition, and false otherwise.  | 
  | 
map  | Returns the list populated with the results of calling the expression on every item in the input list.  | 
  | 
flat  | Flattens a list of lists into a single list.  | 
  | 
id  | Returns the id of the page. If no page is provided, returns the id of the page the formula is on.  | 
  | 
equal  | Returns true if both values are equal and false otherwise.  | 
  | 
unequal  | Returns false if both values are equal and true otherwise.  | 
  | 
let  | Assigns a value to a variable and evaluates the expression using that variable.  | 
  | 
lets  | Assigns values to multiple variables and evaluates the expression using those variables.  | 
  | 
trim  | Removes white space from the beginning and end of text.  | 
  | 
