FormulaCraft

Formula library

Quick references for the formulas people ask about most — each with a paste-ready example for Excel and Google Sheets. Or just describe what you need.

Lookup

VLOOKUP

Look up a value in the first column of a range and return a value from another column in the same row.

XLOOKUP

The modern replacement for VLOOKUP and INDEX/MATCH — look up a value and return a match in any direction.

INDEX / MATCH

A flexible two-function lookup that can return values to the left of the lookup column.

QUERY (Google Sheets)

Run SQL-like queries over a range in Google Sheets to filter, sort, and aggregate.

ARRAYFORMULA (Google Sheets)

Apply a formula down an entire column at once in Google Sheets.

FILTER

Return only the rows of a range that meet a condition — a live, formula-based filter.

SORT

Sort a range by a column without touching the original data.

MATCH

Find the position of a value within a row or column.

HLOOKUP

Look up a value in the top row of a table and return a value from a row below it — the horizontal cousin of VLOOKUP.

OFFSET

Return a cell or range a set number of rows and columns away from a starting point — useful for dynamic ranges.

INDIRECT

Turn a piece of text into a real cell or range reference — build references on the fly from other cells.

INDEX

Return the value at a given position in a range. Combined with MATCH it becomes a lookup that can return values in any direction.

LOOKUP

Search a sorted row or column for a value and return a result from a corresponding position in another range.

XMATCH

Return the relative position of a value in an array with support for exact, wildcard, and binary search modes.

ADDRESS

Build a cell address string like $A$1 from a given row and column number, with optional absolute/relative and sheet name.

ROW

Return the row number of a cell or the first row of a range; useful for generating sequential numbers or building dynamic formulas.

ROWS

Count the number of rows in a range or array, returning a single integer.

COLUMN

Return the column number of a cell, where A=1, B=2, etc.; handy for dynamic column offsets in formulas.

COLUMNS

Count the total number of columns in a range or array and return it as an integer.

TRANSPOSE

Flip a range so rows become columns and columns become rows, returning a transposed array.

GETPIVOTDATA

Extract a specific value from a PivotTable using field names and item values as explicit identifiers.

FORMULATEXT

Return the formula in a cell as a visible text string for documentation or auditing purposes.

HYPERLINK

Create a clickable hyperlink in a cell that navigates to a URL, file path, or cell range when clicked.

CHOOSEROWS

Select and return specific rows from an array by their position numbers, in any order.

CHOOSECOLS

Select and return specific columns from an array by their position numbers, in any order.

TAKE

Return a specified number of rows or columns from the start or end of an array.

DROP

Remove a specified number of rows or columns from the start or end of an array and return the remainder.

VSTACK

Vertically stack multiple arrays or ranges on top of each other into one combined array.

HSTACK

Horizontally stack multiple arrays or ranges side by side into one combined wider array.

TOROW

Convert a multi-column, multi-row range into a single horizontal row array.

TOCOL

Convert a multi-row, multi-column range into a single vertical column array.

WRAPROWS

Reshape a one-dimensional row or column array into a 2D table with a fixed number of columns per row.

WRAPCOLS

Reshape a one-dimensional array into a 2D table with a fixed number of rows per column.

EXPAND

Expand an array to a larger size by padding extra rows and columns with a specified value or #N/A.

AREAS

Returns the number of individual areas (contiguous ranges) inside a multi-area reference. Useful when validating or counting disjointed selections.

Math & Aggregation

SUMIF

Add up the cells in a range that meet a single condition.

SUMIFS

Sum values that meet multiple conditions at once.

COUNTIF

Count the cells in a range that meet a condition.

COUNTIFS

Count cells that meet several conditions simultaneously.

AVERAGEIF

Average the values in a range that meet a condition.

UNIQUE

Return the distinct values from a range, removing duplicates.

SUM

Add up all the numbers in a range — the most common spreadsheet calculation.

AVERAGE

Find the mean of a range of numbers, ignoring blanks and text.

COUNT / COUNTA

Count cells that contain numbers (COUNT) or any value at all (COUNTA).

MAX / MIN

Return the largest (MAX) or smallest (MIN) number in a range.

SUMPRODUCT

Multiply ranges together row by row and sum the result — ideal for weighted totals.

ROUND / ROUNDUP / ROUNDDOWN

Round a number to a set number of decimal places.

AVERAGEIFS

Average the values that meet several conditions at once across different columns.

MAXIFS / MINIFS

Find the largest or smallest value among rows that meet one or more conditions.

MOD

Return the remainder after dividing one number by another — great for every-Nth-row logic.

RANK

Return the position of a number within a list — highest first by default, or lowest first.

MEDIAN

Return the middle value of a range — a measure of center that ignores outliers, unlike the average.

LARGE / SMALL

Return the Nth largest (LARGE) or Nth smallest (SMALL) value in a range — e.g. the 2nd highest.

RANDBETWEEN

Generate a random whole number between a low and high bound — useful for samples and test data.

PMT

Calculate the periodic payment on a loan from the rate, number of periods, and principal.

SUBTOTAL

Aggregate a range (sum, average, count…) while ignoring other SUBTOTALs and, optionally, hidden rows. Ideal under filters.

ROUNDUP

Always round a number up, away from zero, to a set number of digits. Useful for pricing and capacity planning.

ROUNDDOWN

Always round a number down, toward zero, to a set number of digits — the opposite of ROUNDUP.

ABS

Return the absolute (positive) value of a number, dropping any minus sign. Useful for differences and variances.

POWER

Raise a number to a power (exponent). POWER(base, exponent) is the function form of the ^ operator.

SQRT

Return the square root of a number. Pair with POWER for other roots.

PRODUCT

Multiply all the numbers in a range together. The multiplication counterpart of SUM.

SUMSQ

Return the sum of the squares of all supplied numbers — useful for statistical and engineering calculations.

AGGREGATE

Apply one of 19 aggregate functions to a range while ignoring hidden rows, errors, or nested subtotals.

QUOTIENT

Return the integer portion of a division result, discarding any remainder — equivalent to integer division.

MROUND

Rounds a number to the nearest multiple of a given factor, useful for rounding prices to the nearest 0.05 or times to 15 minutes.

CEILING

Rounds a number up to the nearest multiple of significance, always rounding away from zero.

FLOOR

Rounds a number down to the nearest multiple of significance, always rounding toward zero.

INT

Rounds a number down to the nearest integer, always toward negative infinity regardless of sign.

TRUNC

Removes the decimal portion of a number, truncating toward zero without rounding.

EXP

Returns e raised to the power of a given number, where e ≈ 2.71828. Used in exponential growth and decay models.

LN

Returns the natural logarithm (base e) of a number. Used to invert EXP and model logarithmic growth.

LOG

Returns the logarithm of a number to a specified base (default base 10). Useful for scaling data across orders of magnitude.

LOG10

Returns the base-10 logarithm of a number. Common in scientific notation, decibel calculations, and pH formulas.

SIGN

Returns 1 for positive numbers, -1 for negative numbers, and 0 for zero. Handy for conditional logic based on sign.

GCD

Returns the greatest common divisor of two or more integers — the largest integer that divides all inputs without a remainder.

LCM

Returns the least common multiple of two or more integers — the smallest positive integer divisible by all inputs.

FACT

Returns the factorial of a non-negative integer (n! = n × (n−1) × … × 1). Used in permutations and combinations.

COMBIN

Returns the number of combinations (n choose k) — ways to choose k items from n without regard to order.

PERMUT

Returns the number of ordered arrangements (permutations) of k items chosen from n — order matters.

RAND

Returns a random decimal number between 0 (inclusive) and 1 (exclusive), recalculated every time the sheet recalculates.

RANDARRAY

Spills a grid of random numbers with specified rows, columns, min, max, and integer/decimal options. Excel 365 and Google Sheets only.

ROMAN

Converts an Arabic integer (1–3999) to a Roman numeral text string, with optional simplification mode.

ARABIC

Converts a Roman numeral text string to its Arabic integer equivalent. Accepts classical and simplified forms.

BASE

Converts a decimal integer to a text string in any number base from 2 to 36 (e.g. binary, hex). Excel only.

DECIMAL

Converts a number represented in a given base to a decimal integer. The inverse of BASE. Excel only.

PI

Returns the mathematical constant π (approximately 3.14159265358979) with 15 digits of precision.

SIN

Returns the sine of an angle given in radians. Convert degrees to radians with RADIANS() first.

COS

Returns the cosine of an angle given in radians. Convert degrees to radians with RADIANS() first.

TAN

Returns the tangent of an angle given in radians. Undefined at 90° and 270°; convert degrees with RADIANS().

RADIANS

Converts an angle from degrees to radians. Required before passing degree values to SIN, COS, or TAN.

DEGREES

Converts an angle from radians to degrees. Useful after trigonometric functions that return radian values.

EVEN

Rounds a number up to the nearest even integer. Handy for packaging or pairing calculations that need multiples of 2.

ODD

Rounds a number up to the nearest odd integer. Useful when calculations require odd-numbered groupings or counts.

Logical

IF

Return one value when a condition is true and another when it is false.

IFERROR

Catch formula errors and show a friendly value instead.

IFS

Test several conditions in order and return the first match — cleaner than nested IF.

SWITCH

Compare one value against a list of options and return the matching result.

AND / OR

Combine multiple conditions — AND requires all true, OR requires any true.

CHOOSE

Pick one value from a list by its position number — a clean alternative to nested IFs for fixed options.

AND

Return TRUE only when every condition is true. The building block for multi-condition IF tests.

OR

Return TRUE when at least one condition is true. Use it to flag rows that meet any of several criteria.

ISNUMBER

Test whether a cell contains a number, returning TRUE or FALSE. Great for validating imported data.

IFNA

Returns a custom value when a formula produces an #N/A error, passing all other results through unchanged.

NOT

Reverses a logical value: returns FALSE if the argument is TRUE, and TRUE if the argument is FALSE.

XOR

Returns TRUE when an odd number of its arguments evaluate to TRUE (exclusive OR logic).

TRUE

Returns the Boolean value TRUE — used to supply a literal TRUE in formulas or comparisons.

FALSE

Returns the Boolean value FALSE — used to supply a literal FALSE in formulas or comparisons.

LET

Assigns names to calculation results within a formula, improving readability and avoiding repeated computation.

MAP

Applies a LAMBDA function to each element of one or more arrays, returning an array of transformed results.

REDUCE

Accumulates an array into a single value by applying a LAMBDA function cumulatively across all elements.

SCAN

Like REDUCE but returns the intermediate accumulator value at every step, producing an array of running results.

BYROW

Applies a LAMBDA function to each row of an array and returns a single-column array of per-row results.

BYCOL

Applies a LAMBDA function to each column of an array and returns a single-row array of results.

MAKEARRAY

Creates an array of specified dimensions by applying a LAMBDA function to generate each cell value.

LAMBDA

Defines a reusable custom function using named parameters and a formula body, letting you call it like any built-in function — no VBA or scripts needed.

Text

TEXTJOIN

Join text from multiple cells with a separator, skipping blanks.

LEFT / RIGHT / MID

Extract part of a text string from the start, end, or middle.

TRIM

Remove extra spaces from text — the fix for lookups that mysteriously fail.

SUBSTITUTE

Replace specific text inside a cell — remove or swap characters.

TEXT

Format a number or date as text using a custom pattern.

LEN

Count the number of characters in a cell, including spaces.

FIND / SEARCH

Return the position of one piece of text inside another — FIND is case-sensitive, SEARCH is not.

PROPER / UPPER / LOWER

Change the capitalisation of text — title case, all caps, or all lowercase.

VALUE

Convert a number stored as text into a real number so it can be used in calculations.

LEFT

Pull the first N characters from a text string — like grabbing a currency prefix or a code's leading letters.

RIGHT

Pull the last N characters from a text string — like the trailing digits of an order or SKU.

MID

Extract characters from the middle of a string, starting at a position you choose for a length you choose.

CONCATENATE

Join text from several cells into one. The classic way to build a full name or address from separate columns.

EXACT

Compare two text values for an exact, case-sensitive match. Returns TRUE only when they are identical.

REPT

Repeat a piece of text a set number of times — handy for in-cell bar charts or padding.

CONCAT

Joins multiple text strings or ranges into one string without a delimiter.

TEXTJOIN

Joins a range of text values with a specified delimiter, optionally ignoring empty cells.

CLEAN

Removes all non-printable characters (ASCII 0-31) from a text string.

UPPER

Converts all characters in a text string to uppercase.

LOWER

Converts all characters in a text string to lowercase.

PROPER

Capitalizes the first letter of each word in a text string and lowercases all other letters.

REPLACE

Replaces a specific number of characters within a text string starting at a given position.

FIND

Returns the starting position of one text string within another; case-sensitive.

SEARCH

Returns the position of one text string within another; case-insensitive and supports wildcards.

TEXT

Converts a number or date to a formatted text string using a specified number format code.

NUMBERVALUE

Converts a text string representing a number to a numeric value using specified decimal and group separators.

TEXTSPLIT

Splits a text string into an array of substrings using column and/or row delimiters.

TEXTBEFORE

Extracts all text appearing before the first (or nth) occurrence of a specified delimiter.

TEXTAFTER

Returns the text that appears after a given delimiter in a string, with options for instance and direction.

SPLIT

Splits text around a delimiter and places each piece into a separate cell across a row (Google Sheets only).

JOIN

Concatenates elements of an array or range with a specified delimiter between each element (Google Sheets only).

CHAR

Returns the character represented by a given ASCII/ANSI code number (1–255).

CODE

Returns the numeric ASCII/ANSI code of the first character in a text string.

UNICHAR

Returns the Unicode character for a given code point number, supporting the full Unicode range beyond ASCII.

UNICODE

Returns the Unicode code point (decimal number) of the first character in a text string.

DOLLAR

Converts a number to text formatted as currency with a dollar sign and specified decimal places.

FIXED

Rounds a number to a specified number of decimals and returns it as text with optional thousands separators.

T

Returns the value if it is text, or an empty string if it is not — useful for type-safe text operations.

REGEXEXTRACT

Extracts the first substring matching a regular expression pattern from a text string (Google Sheets only).

REGEXMATCH

Returns TRUE if any part of a text string matches a regular expression pattern (Google Sheets only).

REGEXREPLACE

Replaces all substrings matching a regular expression with a new string (Google Sheets only).

ARRAYTOTEXT

Converts an array or range into a single text string, with concise or strict formatting options.

VALUETOTEXT

Converts any value to text, with concise or strict mode for use in formula-building or display.

Date & Time

TODAY / DATEDIF

Work with the current date and measure the gap between two dates.

EOMONTH

Find the last day of the month, this month or a number of months away.

NETWORKDAYS

Count working days between two dates, excluding weekends.

WEEKDAY

Return the day of the week for a date as a number.

TODAY

Returns today's date as a serial number, updating automatically each time the workbook recalculates.

NOW

Returns the current date and time as a serial number, updating each time the workbook recalculates.

DATE

Creates a date serial number from separate year, month, and day integer values.

TIME

Creates a time serial number from separate hour, minute, and second values (always between 0 and 1).

DATEDIF

Calculates the difference between two dates in years, months, or days using a unit code string.

DATEVALUE

Converts a date stored as text into an Excel date serial number so it can be used in date calculations.

TIMEVALUE

Converts a time stored as text into a decimal fraction between 0 and 1 representing the time of day.

YEAR

Extracts the four-digit year from a date value, returning an integer from 1900 to 9999.

MONTH

Returns the month number (1–12) from a date serial value, useful for grouping or filtering by month.

DAY

Extracts the day-of-month integer (1–31) from a date value for date arithmetic or display purposes.

HOUR

Returns the hour component (0–23) from a time or date-time value for time-based analysis.

MINUTE

Extracts the minute component (0–59) from a time serial value for granular time-based calculations.

SECOND

Returns the seconds component (0–59) from a time serial number for precise time decomposition.

WEEKNUM

Returns the week number of the year (1–54) for a date, using a configurable week-start convention.

ISOWEEKNUM

Returns the ISO 8601 week number (1–53) for a date, where weeks always start on Monday.

WORKDAY

Returns the date that is a given number of working days before or after a start date, skipping weekends.

WORKDAY.INTL

Returns a working-day-offset date with custom weekend definitions, supporting non-standard work weeks globally.

NETWORKDAYS.INTL

Counts working days between two dates with configurable weekend definitions and optional holiday exclusions.

EDATE

Returns the date exactly N calendar months before or after a start date, landing on the same day of the month.

YEARFRAC

Calculates the fraction of a year between two dates using a specified day-count basis (e.g. 30/360 or actual/365).

DAYS

Returns the number of days between two dates as a simple integer, end minus start.

DAYS360

Calculates days between two dates using a 360-day year (12 months of 30 days), common in financial accounting.

DATESTRING

Converts a date serial number to a text string in the locale-specific date format (Lotus 1-2-3 compatibility function).

EPOCHTODATE

Converts a Unix epoch timestamp (seconds since 1970-01-01) to a Google Sheets date-time value (Sheets only).

Statistical

COUNTA

Count how many cells in a range are not empty — including text, numbers, and errors. Use it to count filled-in entries.

COUNTBLANK

Count how many cells in a range are empty — handy for spotting missing data before you run a report.

MODE

Return the most frequently occurring number in a range — the value that appears most often.

AVERAGEA

Calculates the average of all values in a range, including text (as 0) and logical values. Use when you need non-numeric cells counted.

COUNT

Counts cells that contain numbers in a range. Text, blanks, and errors are ignored. Essential for tallying numeric entries.

MAX

Returns the largest numeric value in a range or list of values. Ignores text and logical values. Perfect for finding peaks.

MAXIFS

Returns the maximum value in a range that meets one or more criteria. Available in Excel 2019+ and Google Sheets.

MAXA

Returns the largest value in a range including text (as 0) and logical values (TRUE=1). Use when non-numeric cells must be included.

MIN

Returns the smallest numeric value in a range or list. Ignores text and logical values. Ideal for finding the lowest score or cost.

MINIFS

Returns the minimum value in a range that meets one or more criteria. Available in Excel 2019+ and Google Sheets.

MINA

Returns the smallest value in a range including text (as 0) and logical values (TRUE=1). Use when non-numeric cells must be included.

LARGE

Returns the k-th largest value in a dataset. Use to find the 2nd highest, 3rd highest, etc. without sorting.

SMALL

Returns the k-th smallest value in a dataset. Complements LARGE for bottom-N analysis and reverse-rank lookups.

RANK.EQ

Returns the rank of a number in a list, assigning the same rank to ties (same as RANK). Essential for leaderboards.

RANK.AVG

Returns the rank of a number, averaging ranks for ties. Useful in statistical analysis where tied ranks should not cluster.

PERCENTILE

Returns the k-th percentile value from a dataset. Useful for performance benchmarking and threshold analysis.

PERCENTRANK

Returns the rank of a value as a percentage of a dataset. Shows where a specific value falls relative to the whole.

QUARTILE

Returns the quartile (Q0–Q4) of a dataset. Quickly divides data into four equal parts for distribution analysis.

STDEV

Estimates standard deviation from a sample, ignoring text and logical values. The classic measure of data spread.

STDEV.P

Calculates standard deviation for an entire population (n denominator). Use when you have all data, not just a sample.

STDEV.S

Estimates standard deviation for a sample (n-1 denominator). Preferred over legacy STDEV for clarity in modern spreadsheets.

VAR

Estimates variance from a sample, ignoring text and logical values. Variance is the square of standard deviation.

VAR.P

Calculates variance for an entire population (n denominator). Use when your data is the complete dataset, not a sample.

VAR.S

Estimates sample variance (n-1 denominator). The modern, explicit replacement for the legacy VAR function.

CORREL

Returns the Pearson correlation coefficient between two datasets. Measures linear relationship strength from -1 to 1.

COVAR

Returns the population covariance between two datasets. Measures how two variables change together; foundation for correlation.

FORECAST

Predicts a future value along a linear trend based on existing x and y data points.

TREND

Returns predicted y-values along a linear trend for multiple new x-values using least-squares regression.

SLOPE

Returns the slope of the linear regression line through a set of x and y data points.

INTERCEPT

Returns the y-intercept of the linear regression line through a set of x and y data points.

TRIMMEAN

Calculates the mean of a dataset after excluding a specified percentage of extreme high and low values.

FREQUENCY

Counts how many values fall into each bin of a specified range, returning a vertical array of frequencies.

GEOMEAN

Returns the geometric mean of a set of positive numbers, ideal for growth rates and ratios.

HARMEAN

Returns the harmonic mean of positive numbers, best suited for rates and speeds.

SKEW

Returns the skewness of a distribution — how asymmetric it is around the mean.

KURT

Returns the kurtosis of a dataset, measuring how heavy the tails are relative to a normal distribution.

CONFIDENCE

Returns the margin of error for a population mean confidence interval using the normal distribution.

NORMDIST

Returns the normal distribution probability (PDF or CDF) for a given value, mean, and standard deviation.

NORMINV

Returns the inverse of the normal cumulative distribution for a given probability, mean, and standard deviation.

Information

ISBLANK

Returns TRUE only when a cell is truly empty (no value, no formula, no space). Differs from =A2="" because ISBLANK treats formula-returned empty strings as not-blank.

ISTEXT

Returns TRUE if a value is text, FALSE for numbers, dates, booleans, or errors.

ISERROR

Returns TRUE if a value is any error type (#N/A, #VALUE!, #REF!, #DIV/0!, etc.), FALSE otherwise.

ISERR

Returns TRUE for any error except #N/A; useful when you want to handle #N/A separately.

ISNA

Returns TRUE only when a value is the #N/A error, which typically means a lookup found no match.

ISLOGICAL

Returns TRUE if a value is a logical (Boolean) value: TRUE or FALSE.

ISREF

Returns TRUE if the argument is a valid cell or range reference, FALSE otherwise.

ISEVEN

Returns TRUE if a number is even, FALSE if it is odd. Non-integers are truncated before checking.

ISODD

Returns TRUE if a number is odd, FALSE if it is even. Non-integers are truncated before checking.

ISFORMULA

Returns TRUE if a cell contains a formula, FALSE if it holds a hard-coded value or is empty.

NA

Returns the #N/A error value deliberately, typically to mark missing data or prevent partial chart plotting.

TYPE

Returns a number representing the data type: 1=number, 2=text, 4=logical, 8=formula, 16=error, 64=array.

ERROR.TYPE

Returns a number identifying which type of error a cell contains; returns #N/A if there is no error.

CELL

Returns information about a cell's formatting, location, or contents based on an info_type string.

INFO

Returns information about the current operating environment such as OS, Excel version, or calculation mode.

N

Converts a value to a number; returns 0 for text, TRUE=1, FALSE=0, dates as serial numbers.

SHEET

Returns the sheet number of a referenced sheet or the current sheet if no argument is given.

SHEETS

Returns the total number of sheets in a workbook or in a 3D reference range.

Financial

IPMT

Returns the interest portion of a loan payment for a specific period in a fixed-rate amortisation schedule.

PPMT

Returns the principal portion of a loan payment for a specific period in a fixed-rate amortisation schedule.

FV

Calculates the future value of an investment given a constant interest rate, regular payments, and optional present value.

PV

Returns the present value of an investment — the lump sum today equivalent to future cash flows at a given discount rate.

NPV

Calculates net present value of a series of future cash flows discounted at a given rate, assuming end-of-period timing.

XNPV

Calculates net present value for cash flows with irregular (non-periodic) dates using exact date-based discounting.

IRR

Returns the internal rate of return for a series of periodic cash flows, assuming equal time intervals between each.

XIRR

Returns the internal rate of return for cash flows with irregular dates, using exact date-based discounting.

MIRR

Calculates the modified internal rate of return for cash flows with separate finance and reinvestment rates.

RATE

Calculates the periodic interest rate of an annuity given number of periods, payment, and present value.

NPER

Returns the number of periods required to pay off a loan or reach a savings goal at a fixed interest rate and payment.

EFFECT

Converts a nominal annual interest rate to an effective annual rate based on the number of compounding periods.

NOMINAL

Converts an effective annual interest rate back to a nominal annual rate for a given number of compounding periods.

SLN

Calculates the straight-line depreciation of an asset for one period given cost, salvage value, and useful life.

DB

Returns the fixed-declining-balance depreciation of an asset for a specified period using a fixed rate.

DDB

Computes double-declining-balance (or variable-rate declining) depreciation for an asset in a specific period.

SYD

Calculates sum-of-years'-digits depreciation for a specified period, front-loading expense more moderately than DDB.

CUMIPMT

Returns the cumulative interest paid on a loan between two specified periods at a constant interest rate.

CUMPRINC

Returns the cumulative principal paid on a loan between two periods at a fixed interest rate.

PDURATION

Returns the number of periods required for an investment to reach a specified future value at a constant rate.

RRI

Returns the equivalent interest rate per period for the growth of an investment from present to future value over n periods.

Dynamic Arrays

Database

Engineering

Web