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.