Relationsheet

Help Center · Reference

237 functions, with signatures and examples.

Start a cell with = to enter a formula — =SUM(A1:A10), or =VLOOKUP(A1, Prices!A:C, 3, FALSE). References reach another sheet by name, so a formula can compute across your relations. The same reference and a live “try a formula” box are in every sheet under Data → Functions & formula help.

Math

SUM(number1, …)

Adds all the numbers in the arguments and ranges.

=SUM(A1:A10)
SUBTOTAL(func, range, …)

Aggregates a range by function number: 1=AVERAGE, 2=COUNT, 3=COUNTA, 4=MAX, 5=MIN, 6=PRODUCT, 9=SUM.

=SUBTOTAL(9, A1:A10)
PRODUCT(number1, …)

Multiplies all the numbers together.

=PRODUCT(A1:A3)
SUMSQ(number1, …)

The sum of the squares of the numbers.

=SUMSQ(3, 4)
SUMPRODUCT(array1, array2, …)

Multiplies the arrays element-by-element and sums the results.

=SUMPRODUCT(A1:A3, B1:B3)
ABS(number)

The absolute value (drops the sign).

=ABS(-4)
CONVERT(number, from_unit, to_unit)

Converts a number between units of the same kind — temperature (C/F/K/Rank/Reau), length, mass, time, volume, area, speed, pressure, energy, power, force and data. Metric prefixes work (km, mg, kJ). Units that measure different things give #N/A.

=CONVERT(100, "C", "F")
ROUND(number, digits)

Rounds to a number of decimal places (half away from zero).

=ROUND(3.14159, 2)
ROUNDUP(number, digits)

Rounds away from zero to the given decimals.

=ROUNDUP(2.1, 0)
ROUNDDOWN(number, digits)

Rounds toward zero to the given decimals.

=ROUNDDOWN(2.9, 0)
INT(number)

Rounds down to the nearest integer.

=INT(4.7)
QUOTIENT(numerator, denominator)

The integer part of a division.

=QUOTIENT(7, 2)
EVEN(number)

Rounds away from zero to the next even integer.

=EVEN(3)
ODD(number)

Rounds away from zero to the next odd integer.

=ODD(2)
FLOOR(number, significance)

Rounds down to the nearest multiple of significance.

=FLOOR(23, 5)
CEILING(number, significance)

Rounds up to the nearest multiple of significance.

=CEILING(23, 5)
MOD(number, divisor)

The remainder after division.

=MOD(10, 3)
POWER(base, exponent)

Raises a number to a power (same as ^).

=POWER(2, 10)
SQRT(number)

The square root of a non-negative number.

=SQRT(144)
EXP(number)

Euler's number e raised to a power.

=EXP(1)
LN(number)

The natural logarithm (base e) of a positive number.

=LN(2.718281828)
LOG10(number)

The base-10 logarithm of a positive number.

=LOG10(1000)
LOG(number, [base])

The logarithm of a positive number to the given base (default 10).

=LOG(8, 2)
TRUNC(number, [digits])

Truncates toward zero to the given decimals (default 0).

=TRUNC(3.99)
PI()

The mathematical constant π (3.14159…).

=PI()
SIGN(number)

-1, 0, or 1 depending on the number's sign.

=SIGN(-8)
BITAND(number1, number2)

Bitwise AND of two non-negative integers.

=BITAND(5, 3)
BITOR(number1, number2)

Bitwise OR of two non-negative integers.

=BITOR(5, 3)
BITXOR(number1, number2)

Bitwise XOR of two non-negative integers.

=BITXOR(5, 3)
BITLSHIFT(number, shift)

Shifts a number left by shift bits.

=BITLSHIFT(1, 4)
BITRSHIFT(number, shift)

Shifts a number right by shift bits.

=BITRSHIFT(16, 2)
DEC2BIN(number, [places])

Converts a decimal number to binary text.

=DEC2BIN(9)
DEC2OCT(number, [places])

Converts a decimal number to octal text.

=DEC2OCT(8)
DEC2HEX(number, [places])

Converts a decimal number to hexadecimal text.

=DEC2HEX(255)
BIN2DEC(text)

Converts binary text to a decimal number.

=BIN2DEC("1001")
OCT2DEC(text)

Converts octal text to a decimal number.

=OCT2DEC("17")
HEX2DEC(text)

Converts hexadecimal text to a decimal number.

=HEX2DEC("FF")
DELTA(number1, [number2])

1 if the two numbers are equal, otherwise 0.

=DELTA(5, 5)
GESTEP(number, [step])

1 if number ≥ step, otherwise 0.

=GESTEP(5, 4)
BASE(number, radix, [min_length])

Converts a number to text in a given base (2–36).

=BASE(255, 16)
DECIMAL(text, radix)

Converts text in a given base (2–36) to a decimal number.

=DECIMAL("FF", 16)
ROMAN(number)

Converts a number (1–3999) to a Roman numeral.

=ROMAN(1994)
ARABIC(text)

Converts a Roman numeral to a number.

=ARABIC("MCMXCIV")
GCD(number1, …)

The greatest common divisor of the integers.

=GCD(24, 36)
LCM(number1, …)

The least common multiple of the integers.

=LCM(4, 6)
MROUND(number, multiple)

Rounds to the nearest multiple of the given number.

=MROUND(17, 5)
FACT(number)

The factorial of a non-negative whole number (n!).

=FACT(5)
COMBIN(n, k)

The number of combinations of k items chosen from n (order doesn't matter).

=COMBIN(52, 5)
PERMUT(n, k)

The number of permutations of k items chosen from n (order matters).

=PERMUT(10, 3)
SIN(angle)

The sine of an angle given in radians.

=SIN(RADIANS(30))
COS(angle)

The cosine of an angle given in radians.

=COS(0)
TAN(angle)

The tangent of an angle given in radians.

=TAN(RADIANS(45))
ASIN(number)

The arcsine (in radians) of a number between -1 and 1.

=ASIN(1)
ACOS(number)

The arccosine (in radians) of a number between -1 and 1.

=ACOS(0)
ATAN(number)

The arctangent (in radians) of a number.

=ATAN(1)
ATAN2(x, y)

The arctangent (in radians) of the point (x, y).

=ATAN2(1, 1)
SINH(number)

The hyperbolic sine of a number.

=SINH(1)
COSH(number)

The hyperbolic cosine of a number.

=COSH(1)
TANH(number)

The hyperbolic tangent of a number.

=TANH(1)
SEC(angle)

The secant of an angle (1/COS), in radians.

=SEC(0)
CSC(angle)

The cosecant of an angle (1/SIN), in radians.

=CSC(PI()/2)
COT(angle)

The cotangent of an angle (1/TAN), in radians.

=COT(PI()/4)
SECH(number)

The hyperbolic secant of a number.

=SECH(0)
CSCH(number)

The hyperbolic cosecant of a number.

=CSCH(1)
COTH(number)

The hyperbolic cotangent of a number.

=COTH(1)
ASINH(number)

The inverse hyperbolic sine of a number.

=ASINH(1)
ACOSH(number)

The inverse hyperbolic cosine of a number ≥ 1.

=ACOSH(1)
ATANH(number)

The inverse hyperbolic tangent of a number between −1 and 1.

=ATANH(0.5)
DEGREES(radians)

Converts an angle from radians to degrees.

=DEGREES(PI())
RADIANS(degrees)

Converts an angle from degrees to radians.

=RADIANS(180)

Statistical

AVERAGE(number1, …)

The arithmetic mean of the numbers (AVG is an alias).

=AVERAGE(A1:A10)
GEOMEAN(number1, …)

The geometric mean (all values must be positive).

=GEOMEAN(A1:A10)
HARMEAN(number1, …)

The harmonic mean (all values must be positive).

=HARMEAN(A1:A10)
DEVSQ(number1, …)

The sum of squared deviations from the mean.

=DEVSQ(A1:A10)
AVEDEV(number1, …)

The average of absolute deviations from the mean.

=AVEDEV(A1:A10)
CORREL(array1, array2)

The correlation coefficient between two equal-length ranges.

=CORREL(A1:A10, B1:B10)
PEARSON(array1, array2)

The Pearson correlation coefficient (same as CORREL).

=PEARSON(A1:A10, B1:B10)
SLOPE(known_ys, known_xs)

The slope of the linear-regression line through the points.

=SLOPE(B1:B10, A1:A10)
INTERCEPT(known_ys, known_xs)

The y-intercept of the linear-regression line.

=INTERCEPT(B1:B10, A1:A10)
RSQ(known_ys, known_xs)

The R² (coefficient of determination) of the regression.

=RSQ(B1:B10, A1:A10)
STEYX(known_ys, known_xs)

The standard error of the predicted y for each x.

=STEYX(B1:B10, A1:A10)
FORECAST(x, known_ys, known_xs)

Predicts a y value for x using linear regression.

=FORECAST(6, B1:B10, A1:A10)
MIN(number1, …)

The smallest number.

=MIN(A1:A10)
MAX(number1, …)

The largest number.

=MAX(A1:A10)
MEDIAN(number1, …)

The middle value.

=MEDIAN(A1:A10)
COUNT(value1, …)

Counts how many values are numbers.

=COUNT(A1:A10)
COUNTA(value1, …)

Counts how many values are non-empty.

=COUNTA(A1:A10)
COUNTUNIQUE(value1, …)

Counts the distinct non-empty values (case-insensitive for text).

=COUNTUNIQUE(A1:A20)
SUMIF(range, criteria, [sum_range])

Sums cells that meet a condition.

=SUMIF(A1:A9, ">10")
SUMIFS(sum_range, range1, crit1, …)

Sums cells meeting several conditions.

=SUMIFS(C:C, A:A, "East", B:B, ">10")
COUNTIF(range, criteria)

Counts cells that meet a condition.

=COUNTIF(A1:A9, "Done")
COUNTIFS(range1, crit1, …)

Counts cells meeting several conditions.

=COUNTIFS(A:A, "East", B:B, ">10")
AVERAGEIF(range, criteria, [avg_range])

Averages cells that meet a condition.

=AVERAGEIF(A1:A9, ">0")
AVERAGEIFS(avg_range, range1, crit1, …)

Averages cells meeting several conditions.

=AVERAGEIFS(C:C, A:A, "East")
MAXIFS(max_range, range1, crit1, …)

The largest value among cells meeting several conditions.

=MAXIFS(C:C, A:A, "East")
MINIFS(min_range, range1, crit1, …)

The smallest value among cells meeting several conditions.

=MINIFS(C:C, A:A, "East")
STDEV(number1, …)

Standard deviation of a sample.

=STDEV(A1:A20)
STDEVP(number1, …)

Standard deviation of a whole population.

=STDEVP(A1:A20)
VAR(number1, …)

Variance of a sample.

=VAR(A1:A20)
VARP(number1, …)

Variance of a whole population.

=VARP(A1:A20)
MODE(number1, …)

The most frequently occurring number.

=MODE(A1:A20)
RANK(number, range, [ascending])

The rank of a number within a range (largest is #1 by default).

=RANK(A1, A1:A20)
LARGE(range, k)

The k-th largest value.

=LARGE(A1:A20, 2)
SMALL(range, k)

The k-th smallest value.

=SMALL(A1:A20, 2)
PERCENTILE(range, k)

The value at the k-th percentile (k from 0 to 1).

=PERCENTILE(A1:A20, 0.9)
QUARTILE(range, q)

The q-th quartile (q from 0 to 4).

=QUARTILE(A1:A20, 3)
COUNTBLANK(range)

Counts how many cells are empty.

=COUNTBLANK(A1:A20)

Text

CONVERTTEXT(number, from_unit, units, [decimals])

Expresses a value across several units of the same kind as text — 3 yd 2 ft 3 in, 2 cups 3 oz, 1 hr 30 min. List the units in any order. A 4th argument of 2 gives two decimals on the smallest unit; "1/16" renders it as a fraction.

=CONVERTTEXT(3.75, "yd", "yd ft in")
CONVERTVALUE(text, to_unit)

Reads a compound measurement back into a number — "5 ft 7 in" into inches — so an imported column of labels becomes something you can total.

=CONVERTVALUE("3 yd 2 ft 3 in", "yd")
REPT(text, count)

Repeats text a given number of times.

=REPT("-", 10)
CONCAT(text1, …)

Joins text together (CONCATENATE is an alias).

=CONCAT(A1, " ", B1)
TEXTJOIN(delimiter, ignore_empty, text1, …)

Joins text with a delimiter, optionally skipping blanks.

=TEXTJOIN(", ", TRUE, A1:A5)
LEN(text)

The number of characters in the text.

=LEN(A1)
LEFT(text, [count])

The leftmost characters.

=LEFT(A1, 3)
RIGHT(text, [count])

The rightmost characters.

=RIGHT(A1, 3)
MID(text, start, length)

Characters from the middle, from a start position.

=MID(A1, 2, 4)
UPPER(text)

Converts text to upper case.

=UPPER(A1)
LOWER(text)

Converts text to lower case.

=LOWER(A1)
PROPER(text)

Capitalises the first letter of each word.

=PROPER(A1)
TRIM(text)

Removes extra spaces.

=TRIM(A1)
SUBSTITUTE(text, old, new, [which])

Replaces occurrences of old text with new text.

=SUBSTITUTE(A1, "-", "/")
REGEXMATCH(text, pattern)

TRUE if the text matches the regular expression.

=REGEXMATCH(A1, "@")
REGEXEXTRACT(text, pattern)

The first match (or first capture group) of a regular expression.

=REGEXEXTRACT(A1, "\d+")
REGEXREPLACE(text, pattern, replacement)

Replaces every regex match with the replacement.

=REGEXREPLACE(A1, "\D", "")
REPLACE(text, start, count, new)

Replaces characters by position.

=REPLACE(A1, 1, 3, "XXX")
FIND(find_text, within, [start])

Position of text within text (case-sensitive).

=FIND("@", A1)
SEARCH(find_text, within, [start])

Position of text (case-insensitive, wildcards).

=SEARCH("st", A1)
TEXT(value, format)

Formats a number or date using a format mask.

=TEXT(A1, "#,##0.00")
VALUE(text)

Converts text that looks like a number into a number.

=VALUE("1,234")
NUMBERVALUE(text, [decimal_sep], [group_sep])

Converts text to a number using the given separators.

=NUMBERVALUE("1.234,56", ",", ".")
TEXTBEFORE(text, delimiter, [instance])

The text before the nth occurrence of a delimiter.

=TEXTBEFORE(A1, "@")
MASK(text, [keep_last], [mask_char])

Hides all but the last few characters — an account or card number shown as ************1234. Keeps 4 by default. Asking to keep more characters than the value holds never reveals it.

=MASK(A1, 4)
MASKEMAIL(email, [mask_char])

Masks the name part of an address but keeps the first letter and the domain — k*********@example.com. Text that is not an address is masked entirely rather than shown.

=MASKEMAIL(A1)
LPAD(text, width, [pad])

Pads on the left to a fixed width — invoice numbers as 007. Never truncates: text already at or over the width comes back unchanged.

=LPAD(A1, 5, "0")
RPAD(text, width, [pad])

Pads on the right to a fixed width, for fixed-column exports and aligned labels.

=RPAD(A1, 12, ".")
SENTENCECASE(text)

Capitalises the first letter of each sentence and lowers the rest — turns SHOUTING imported copy back into something readable. PROPER capitalises every word instead.

=SENTENCECASE(A1)
INITIALS(text, [max])

The initials of each word, hyphens included — "mary-jane watson" gives MJW. An optional limit keeps only the first few.

=INITIALS(A1)
SHORTEN(text, width, [suffix])

Trims text to a width and marks it with an ellipsis. The result fits the width INCLUDING the suffix, so a column never overflows by a character.

=SHORTEN(A1, 40)
SLUG(text, [separator])

A URL- and filename-safe form: lower case, words joined by hyphens. Accented letters keep their base letter rather than being dropped.

=SLUG(A1)
SPLITPART(text, delimiter, index)

One piece of a delimited value — the 2nd field of a CSV line, or the surname from "Penland, Kristopher". Counts from 1; a negative index counts from the end, so -1 is the last piece.

=SPLITPART(A1, ",", 2)
ORDINAL(number)

Writes a number as a rank — 1st, 2nd, 3rd, 11th. Gets the 11/12/13 exceptions right.

=ORDINAL(21)
ENCODEURL(text)

Escapes text so it is safe inside a web address — spaces, ampersands and accents become %-codes. Use it to build a link from a field.

=CONCAT("https://x.com/s?q=", ENCODEURL(A1))
DECODEURL(text)

Turns %-codes in a web address back into readable text. A broken escape gives #VALUE rather than the mangled text.

=DECODEURL(A1)
WORDCOUNT(text)

How many words the text holds. Runs of spaces and line breaks count once.

=WORDCOUNT(A1)
LEVENSHTEIN(text1, text2, [match_case])

How many single-character edits turn one text into the other — 0 means identical. Case is ignored unless you ask for it. Text longer than 1000 characters gives #VALUE rather than stalling the sheet.

=LEVENSHTEIN(A1, B1)
SIMILARITY(text1, text2, [match_case])

How alike two texts are, from 0 (nothing in common) to 1 (identical) — the readable form of LEVENSHTEIN, for spotting near-duplicate records.

=IF(SIMILARITY(A1, B1) > 0.9, "likely duplicate", "")
SPELLNUMBER(number, [currency], [title_case])

States an amount in words, as a contract or cheque does. With a currency word the cents are spelled out and the unit agrees in number; without one you get the banker's "and 56/100" form. Cents are rounded, not truncated.

=SPELLNUMBER(1234.56, "dollar")
TEXTAFTER(text, delimiter, [instance])

The text after the nth occurrence of a delimiter.

=TEXTAFTER(A1, "@")
FIXED(number, [decimals], [no_commas])

Formats a number with fixed decimals and thousands separators.

=FIXED(1234.5, 1)
DOLLAR(number, [decimals])

Formats a number as currency text with a $ sign.

=DOLLAR(1234.5)
T(value)

Returns the value if it is text, otherwise an empty string.

=T(A1)
CHAR(number)

The character for a code (1–255).

=CHAR(65)
CODE(text)

The numeric code of the first character of text.

=CODE("A")
UNICHAR(number)

The Unicode character for a code point.

=UNICHAR(8364)
UNICODE(text)

The Unicode code point of the first character of text.

=UNICODE("€")
EXACT(text1, text2)

TRUE if two text values are exactly equal (case-sensitive).

=EXACT(A1, "Yes")
CLEAN(text)

Removes non-printable control characters from text.

=CLEAN(A1)

Logical

CONTAINS(text, part)

TRUE when the text contains the part, ignoring case. The same function the app and automation editors offer, so a rule reads the same wherever you write it.

=CONTAINS(A1, "urgent")
STARTSWITH(text, part)

TRUE when the text begins with the part, ignoring case.

=STARTSWITH(A1, "INV-")
ENDSWITH(text, part)

TRUE when the text ends with the part, ignoring case.

=ENDSWITH(A1, ".pdf")
COALESCE(value1, value2, …)

The first value that is actually filled in. Excel has no equivalent — IFERROR answers a different question — but picking the first of several columns that has a value is constant work in a relational sheet.

=COALESCE(A1, B1, "none")
IF(condition, if_true, [if_false])

Returns one value if true, another if false.

=IF(A1>10, "High", "Low")
IFS(cond1, val1, cond2, val2, …)

Returns the value for the first true condition.

=IFS(A1>90, "A", A1>80, "B", TRUE, "C")
SWITCH(expr, case1, val1, …, [default])

Matches an expression against cases.

=SWITCH(A1, 1, "One", 2, "Two", "Other")
AND(logical1, …)

TRUE if every argument is true.

=AND(A1>0, B1>0)
OR(logical1, …)

TRUE if any argument is true.

=OR(A1>0, B1>0)
XOR(logical1, …)

TRUE if an odd number of arguments are true.

=XOR(A1, B1)
NOT(logical)

Reverses a true/false value.

=NOT(A1>0)
TRUE()

The logical value TRUE.

=TRUE()
FALSE()

The logical value FALSE.

=FALSE()
IFERROR(value, value_if_error)

Catches any error and returns a fallback.

=IFERROR(A1/B1, 0)
IFNA(value, value_if_na)

Catches only #N/A (other errors still show).

=IFNA(VLOOKUP(A1, T!A:B, 2, FALSE), "—")
ISBLANK(value)

TRUE if the value is empty.

=ISBLANK(A1)
ISNUMBER(value)

TRUE if the value is a number.

=ISNUMBER(A1)
ISTEXT(value)

TRUE if the value is text.

=ISTEXT(A1)
ISNONTEXT(value)

TRUE if the value is not text (numbers, booleans, blanks).

=ISNONTEXT(A1)
ISLOGICAL(value)

TRUE if the value is a boolean (TRUE/FALSE).

=ISLOGICAL(A1)
ISEVEN(number)

TRUE if the number is even (truncated).

=ISEVEN(A1)
ISODD(number)

TRUE if the number is odd (truncated).

=ISODD(A1)
ISERROR(value)

TRUE if the value is any error.

=ISERROR(A1/B1)
ISERR(value)

TRUE if the value is any error except #N/A.

=ISERR(A1)
ISNA(value)

TRUE if the value is the #N/A error.

=ISNA(VLOOKUP(A1, T, 2, 0))
NA()

Returns the #N/A error value.

=NA()
N(value)

Converts a value to a number (TRUE→1, text→0).

=N(TRUE)
TYPE(value)

The value's type code: 1 number, 2 text, 4 boolean, 16 error, 64 array.

=TYPE(A1)

Lookup

VLOOKUP(lookup, table, col, [exact])

Finds a value in the first column and returns a cell from that row.

=VLOOKUP(A1, Prices!A:C, 3, FALSE)
HLOOKUP(lookup, table, row, [exact])

Finds a value in the first row and returns a cell from that column.

=HLOOKUP(A1, Rates!A1:F2, 2, FALSE)
XLOOKUP(lookup, lookup_range, return_range, [if_missing], [mode])

Finds a value and returns the matching item from another range.

=XLOOKUP(A1, Prices!A:A, Prices!C:C, "—")
INDEX(range, row, [col])

The value at a position within a range.

=INDEX(A1:C9, 2, 3)
MATCH(lookup, range, [match_type])

The position of a value within a range.

=MATCH(A1, B1:B9, 0)
CHOOSE(index, value1, …)

Picks a value by its 1-based position.

=CHOOSE(2, "A", "B", "C")

Date

DAYSBETWEEN(start, end)

Whole days from the start date to the end date — positive when the end is later. Note the order is (start, end); DAYS takes (end, start), which is Excel's convention. The same name and order work in app screens and automations.

=DAYSBETWEEN(A1, B1)
TODAY()

Today's date.

=TODAY()
NOW()

The current date and time.

=NOW()
DATE(year, month, day)

Builds a date from parts.

=DATE(2026, 7, 9)
DATEVALUE(text)

Normalizes a text date (e.g. "1/15/2026") to a standard date.

=DATEVALUE("1/15/2026")
TIMEVALUE(text)

The time of day of a value as a fraction of a day (0–1).

=TIMEVALUE("2:30 PM")
YEAR(date)

The year of a date.

=YEAR(A1)
MONTH(date)

The month (1–12) of a date.

=MONTH(A1)
DAY(date)

The day of the month.

=DAY(A1)
WEEKDAY(date, [type])

Day of week. type 1 (default) 1=Sun…7=Sat, type 2 1=Mon…7=Sun, type 3 0=Mon…6=Sun (also 11–17).

=WEEKDAY(A1, 2)
DAYS(end, start)

The number of days between two dates.

=DAYS(B1, A1)
EDATE(date, months)

A date a number of months before/after.

=EDATE(A1, 3)
EOMONTH(date, months)

The last day of the month, offset by months.

=EOMONTH(A1, 0)
NETWORKDAYS(start, end, [holidays])

Working days between two dates (excludes weekends).

=NETWORKDAYS(A1, B1)
WORKDAY(start, days, [holidays])

The date a number of working days from start (skips weekends + holidays; negative counts back).

=WORKDAY(A1, 10)
YEARFRAC(start, end, [basis])

Fraction of a year between dates (basis 0=US 30/360, 1=actual/actual, 2=act/360, 3=act/365, 4=Euro 30/360).

=YEARFRAC(A1, B1, 1)
DAYS360(start, end, [european])

Days between dates on a 360-day year (12×30-day months); TRUE = European method.

=DAYS360(A1, B1)
ISOWEEKNUM(date)

ISO-8601 week number (weeks start Monday; week 1 has the year's first Thursday).

=ISOWEEKNUM(A1)
HOUR(datetime)

The hour (0–23) of a date/time value.

=HOUR(A1)
MINUTE(datetime)

The minute (0–59) of a date/time value.

=MINUTE(A1)
SECOND(datetime)

The second (0–59) of a date/time value.

=SECOND(A1)
TIME(hour, minute, second)

Builds a time (HH:MM:SS); wraps past 24 hours.

=TIME(13, 30, 0)
WEEKNUM(date, [type])

The week number of the year (type 1 = weeks start Sunday, 2 = Monday).

=WEEKNUM(A1)
DATEDIF(start, end, unit)

Difference between dates in "Y", "M", "D", "MD", "YM", or "YD".

=DATEDIF(A1, B1, "Y")

Financial

PMT(rate, nper, pv, [fv], [type])

The periodic payment for a loan/annuity at a constant rate.

=PMT(0.05/12, 60, 20000)
FV(rate, nper, pmt, [pv], [type])

The future value of an investment with constant payments.

=FV(0.06/12, 120, -100)
PV(rate, nper, pmt, [fv], [type])

The present value of a series of future payments.

=PV(0.08, 20, 500)
NPER(rate, pmt, pv, [fv], [type])

The number of periods for an investment/loan.

=NPER(0.08/12, -200, -500, 10000)
NPV(rate, value1, …)

The net present value of a series of cash flows at a discount rate.

=NPV(0.1, A1:A5)
IRR(values, [guess])

The internal rate of return for a series of cash flows.

=IRR(A1:A6)
XNPV(rate, values, dates)

The net present value of cash flows on specific (non-periodic) dates, discounted Actual/365.

=XNPV(0.1, A2:A5, B2:B5)
XIRR(values, dates, [guess])

The internal rate of return for cash flows on specific (non-periodic) dates.

=XIRR(A2:A5, B2:B5)
RATE(nper, pmt, pv, [fv], [type], [guess])

The interest rate per period of an annuity.

=RATE(60, -188.71, 10000)
IPMT(rate, per, nper, pv, [fv], [type])

The interest portion of a loan payment for a given period.

=IPMT(0.1/12, 1, 36, 10000)
PPMT(rate, per, nper, pv, [fv], [type])

The principal portion of a loan payment for a given period.

=PPMT(0.1/12, 1, 36, 10000)
RRI(nper, pv, fv)

The equivalent constant interest/growth rate turning pv into fv over nper periods.

=RRI(5, 10000, 15000)
PDURATION(rate, pv, fv)

The number of periods for an investment to grow from pv to fv at a fixed rate.

=PDURATION(0.05, 10000, 15000)
EFFECT(nominal_rate, npery)

The effective annual interest rate, given a nominal rate compounded npery times a year.

=EFFECT(0.06, 12)
NOMINAL(effect_rate, npery)

The nominal annual interest rate, given an effective rate and npery compounding periods.

=NOMINAL(0.0617, 12)
SLN(cost, salvage, life)

Straight-line depreciation of an asset for one period.

=SLN(10000, 1000, 5)
SYD(cost, salvage, life, per)

Sum-of-years'-digits depreciation for a period.

=SYD(10000, 1000, 5, 1)
DDB(cost, salvage, life, period, [factor])

Declining-balance depreciation (double by default) for a period.

=DDB(10000, 1000, 5, 1)
DB(cost, salvage, life, period, [month])

Fixed-declining-balance depreciation for a period.

=DB(10000, 1000, 5, 1)

Info

ISEMAIL(text)

TRUE when the text looks like an email address. Deliberately conservative — one @, something either side, a dot in the domain, no spaces — because it is for checking what somebody typed.

=IF(ISEMAIL(A1), "ok", "check this")
ISURL(text)

TRUE when the text is an absolute http or https link with a real domain. A bare host like example.com is FALSE, and so is anything that is not a web link.

=IF(ISURL(A1), "ok", "not a link")
ROWID()

This row's stable, immutable backend id — unchanged when rows are inserted, sorted, or moved. Useful for reference codes, relation keys, and audit links.

="TASK-" & ROWID()

Where a formula runs out there is scripting — the script reference is here →

Try one against your own data.

Start free, import a sheet, and put a formula in it.