➕Maths & Trigonometry 25
=SUM(number1, [number2], …)Adds up all the numbers in the ranges you give it.
=SUM(B2:B10)=SUMPRODUCT(array1, [array2], …)Multiplies matching items across arrays then adds the results — great for weighted totals.
=SUMPRODUCT(B2:B10,C2:C10)=PRODUCT(number1, [number2], …)Multiplies all the numbers together.
=PRODUCT(B2:B5)=ROUND(number, num_digits)Rounds a number to a set number of decimal places.
=ROUND(A2,2)=ROUNDUP(number, num_digits)Rounds a number away from zero to the given decimals.
=ROUNDUP(A2,0)=ROUNDDOWN(number, num_digits)Rounds a number towards zero to the given decimals.
=ROUNDDOWN(A2,0)=MROUND(number, multiple)Rounds to the nearest multiple you specify.
=MROUND(A2,5)=INT(number)Rounds a number down to the nearest whole number.
=INT(A2)=TRUNC(number, [num_digits])Chops off the decimals without rounding.
=TRUNC(A2,0)=MOD(number, divisor)Gives the remainder after one number is divided by another.
=MOD(A2,2)=ABS(number)Returns a number without its sign (its absolute value).
=ABS(A2)=POWER(number, power)Raises a number to a power.
=POWER(2,10)=SQRT(number)Returns the square root of a number.
=SQRT(A2)=EXP(number)Returns e raised to the power of a number.
=EXP(1)=LN(number)Returns the natural logarithm (base e) of a number.
=LN(A2)=LOG(number, [base])Returns the logarithm of a number to a base you choose (10 by default).
=LOG(1000,10)=SIGN(number)Tells you a number's sign: 1, 0 or -1.
=SIGN(A2)=GCD(number1, [number2], …)Returns the greatest common divisor of the numbers.
=GCD(24,36)=LCM(number1, [number2], …)Returns the lowest common multiple of the numbers.
=LCM(4,6)=CEILING(number, significance)Rounds a number up to the nearest multiple of significance.
=CEILING(A2,5)=FLOOR(number, significance)Rounds a number down to the nearest multiple of significance.
=FLOOR(A2,5)=RAND()Returns a random decimal between 0 and 1, refreshed on each recalculation.
=RAND()=RANDBETWEEN(bottom, top)Returns a random whole number between two limits.
=RANDBETWEEN(1,100)=SUBTOTAL(function_num, ref1, [ref2], …)Runs a chosen calculation whilst ignoring hidden rows and other subtotals.
=SUBTOTAL(9,B2:B100)=AGGREGATE(function_num, options, ref1, [ref2], …)Like SUBTOTAL but can also skip errors and hidden rows across 19 functions.
=AGGREGATE(9,6,B2:B100)📊Statistical 28
=AVERAGE(number1, [number2], …)Returns the arithmetic mean of the numbers.
=AVERAGE(B2:B10)=AVERAGEA(value1, [value2], …)Averages values, treating text as 0 and TRUE as 1.
=AVERAGEA(B2:B10)=MEDIAN(number1, [number2], …)Returns the middle value in a set of numbers.
=MEDIAN(B2:B10)=MODE.SNGL(number1, [number2], …)Returns the most frequently occurring number.
=MODE.SNGL(B2:B10)=COUNT(value1, [value2], …)Counts how many cells contain numbers.
=COUNT(B2:B10)=COUNTA(value1, [value2], …)Counts how many cells are not empty.
=COUNTA(B2:B10)=COUNTBLANK(range)Counts how many cells in a range are empty.
=COUNTBLANK(B2:B10)=MAX(number1, [number2], …)Returns the largest number.
=MAX(B2:B10)=MIN(number1, [number2], …)Returns the smallest number.
=MIN(B2:B10)=MAXA(value1, [value2], …)Returns the largest value, counting text as 0 and TRUE as 1.
=MAXA(B2:B10)=MINA(value1, [value2], …)Returns the smallest value, counting text as 0 and TRUE as 1.
=MINA(B2:B10)=LARGE(array, k)Returns the k-th largest value in a set.
=LARGE(B2:B10,2)=SMALL(array, k)Returns the k-th smallest value in a set.
=SMALL(B2:B10,2)=RANK.EQ(number, ref, [order])Returns a number's rank in a list; ties share the top rank.
=RANK.EQ(B2,$B$2:$B$10,0)=PERCENTILE.INC(array, k)Returns the value at a given percentile (0 to 1 inclusive).
=PERCENTILE.INC(B2:B10,0.9)=QUARTILE.INC(array, quart)Returns the quartile (0 to 4) of a data set.
=QUARTILE.INC(B2:B10,1)=STDEV.P(number1, [number2], …)Standard deviation treating the data as the whole population.
=STDEV.P(B2:B10)=STDEV.S(number1, [number2], …)Standard deviation treating the data as a sample.
=STDEV.S(B2:B10)=VAR.P(number1, [number2], …)Variance treating the data as the whole population.
=VAR.P(B2:B10)=VAR.S(number1, [number2], …)Variance treating the data as a sample.
=VAR.S(B2:B10)=CORREL(array1, array2)Returns the correlation coefficient between two sets of values.
=CORREL(B2:B10,C2:C10)=FREQUENCY(data_array, bins_array)Counts how many values fall into each bin you define.
=FREQUENCY(B2:B100,D2:D6)=COUNTIF(range, criteria)Counts cells that meet one condition.
=COUNTIF(B2:B10,">100")=COUNTIFS(criteria_range1, criteria1, …)Counts cells that meet several conditions at once.
=COUNTIFS(B2:B10,">100",C2:C10,"UK")=AVERAGEIF(range, criteria, [average_range])Averages cells that meet one condition.
=AVERAGEIF(B2:B10,">100")=AVERAGEIFS(average_range, criteria_range1, criteria1, …)Averages cells that meet several conditions.
=AVERAGEIFS(C2:C10,B2:B10,">100",D2:D10,"UK")=MAXIFS(max_range, criteria_range1, criteria1, …)Returns the largest value among cells meeting your conditions.
=MAXIFS(C2:C10,B2:B10,"UK")=MINIFS(min_range, criteria_range1, criteria1, …)Returns the smallest value among cells meeting your conditions.
=MINIFS(C2:C10,B2:B10,"UK")🔀Logical 11
=IF(logical_test, value_if_true, [value_if_false])Returns one value if a test is true and another if it's false.
=IF(A2>=50,"Pass","Fail")=IFS(logical_test1, value_if_true1, …)Checks several conditions in turn and returns the first match.
=IFS(A2>=70,"A",A2>=50,"B",TRUE,"C")=AND(logical1, [logical2], …)Returns TRUE only if every condition is true.
=AND(A2>0,A2<100)=OR(logical1, [logical2], …)Returns TRUE if any condition is true.
=OR(A2="UK",A2="US")=NOT(logical)Reverses TRUE to FALSE and vice versa.
=NOT(A2>0)=XOR(logical1, [logical2], …)Returns TRUE when an odd number of conditions are true.
=XOR(A2>0,B2>0)=IFERROR(value, value_if_error)Returns a fallback value if a formula produces any error.
=IFERROR(A2/B2,0)=IFNA(value, value_if_na)Returns a fallback value only if a formula returns #N/A.
=IFNA(VLOOKUP(A2,D:E,2,0),"Not found")=SWITCH(expression, value1, result1, [value2, result2], …, [default])Compares an expression against a list and returns the matching result.
=SWITCH(A2,1,"Gold",2,"Silver","Other")=TRUE()Returns the logical value TRUE.
=TRUE()=FALSE()Returns the logical value FALSE.
=FALSE()🔎Lookup & Reference 18
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])Looks up a value in a table's first column and returns from another column.
=VLOOKUP(A2,D2:F100,3,FALSE)=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])Looks up a value in the top row and returns from a row below.
=HLOOKUP(A2,D1:Z3,3,FALSE)=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])Modern lookup that searches one range and returns from another, in any direction.
=XLOOKUP(A2,D2:D100,F2:F100,"Not found")=LOOKUP(lookup_value, lookup_vector, [result_vector])Finds a value in a sorted vector and returns from a matching position.
=LOOKUP(A2,D2:D100,F2:F100)=INDEX(array, row_num, [column_num])Returns the value at a given row and column of a range.
=INDEX(D2:F100,5,3)=MATCH(lookup_value, lookup_array, [match_type])Returns the position of a value within a range.
=MATCH(A2,D2:D100,0)=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Modern MATCH with more search options and directions.
=XMATCH(A2,D2:D100,0)=CHOOSE(index_num, value1, [value2], …)Picks one item from a list by its number.
=CHOOSE(2,"Gold","Silver","Bronze")=OFFSET(reference, rows, cols, [height], [width])Returns a range a set number of rows and columns from a starting cell.
=OFFSET(A1,2,1)=INDIRECT(ref_text, [a1])Turns a text string into a real cell reference.
=INDIRECT("A"&B2)=ROW([reference])Returns the row number of a reference.
=ROW(A5)=COLUMN([reference])Returns the column number of a reference.
=COLUMN(C1)=ROWS(array)Counts how many rows are in a range.
=ROWS(A2:A10)=COLUMNS(array)Counts how many columns are in a range.
=COLUMNS(A1:D1)=TRANSPOSE(array)Flips a range so rows become columns and vice versa.
=TRANSPOSE(A1:C2)=HYPERLINK(link_location, [friendly_name])Creates a clickable link to a document, web page or cell.
=HYPERLINK("https://pdcampus.in","Visit")=GETPIVOTDATA(data_field, pivot_table, [field1, item1], …)Pulls a specific value out of a PivotTable.
=GETPIVOTDATA("Sales",$A$3,"Region","UK")=FORMULATEXT(reference)Shows the formula in a cell as text.
=FORMULATEXT(B2)🔤Text 27
=CONCAT(text1, [text2], …)Joins text from several cells or ranges into one string.
=CONCAT(A2,B2)=CONCATENATE(text1, [text2], …)Older way to join text items together (kept for compatibility).
=CONCATENATE(A2," ",B2)=TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)Joins text with a delimiter and can skip empty cells.
=TEXTJOIN(", ",TRUE,A2:A10)=LEFT(text, [num_chars])Returns a number of characters from the start of the text.
=LEFT(A2,3)=RIGHT(text, [num_chars])Returns a number of characters from the end of the text.
=RIGHT(A2,4)=MID(text, start_num, num_chars)Returns characters from the middle of text, given a start and length.
=MID(A2,4,2)=LEN(text)Counts how many characters are in the text.
=LEN(A2)=FIND(find_text, within_text, [start_num])Finds where one text appears inside another (case-sensitive).
=FIND("@",A2)=SEARCH(find_text, within_text, [start_num])Finds where one text appears inside another (case-insensitive, wildcards allowed).
=SEARCH("st",A2)=SUBSTITUTE(text, old_text, new_text, [instance_num])Replaces every occurrence of some text with new text.
=SUBSTITUTE(A2,"-"," ")=REPLACE(old_text, start_num, num_chars, new_text)Replaces characters at a set position with new text.
=REPLACE(A2,1,4,"****")=UPPER(text)Converts text to UPPER CASE.
=UPPER(A2)=LOWER(text)Converts text to lower case.
=LOWER(A2)=PROPER(text)Capitalises the first letter of each word.
=PROPER(A2)=TRIM(text)Removes extra spaces, leaving single spaces between words.
=TRIM(A2)=CLEAN(text)Strips out non-printable characters from text.
=CLEAN(A2)=TEXT(value, format_text)Formats a number as text using a format code.
=TEXT(A2,"£#,##0.00")=VALUE(text)Converts text that looks like a number into a real number.
=VALUE(A2)=NUMBERVALUE(text, [decimal_separator], [group_separator])Converts text to a number using chosen decimal and group separators.
=NUMBERVALUE(A2,",",".")=REPT(text, number_times)Repeats text a given number of times.
=REPT("*",5)=CHAR(number)Returns the character for a code number.
=CHAR(65)=CODE(text)Returns the numeric code of the first character of text.
=CODE("A")=EXACT(text1, text2)Checks whether two text strings are exactly the same (case-sensitive).
=EXACT(A2,B2)=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])Splits text into separate cells using delimiters.
=TEXTSPLIT(A2,",")=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])Returns the text before a given delimiter.
=TEXTBEFORE(A2,"@")=TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])Returns the text after a given delimiter.
=TEXTAFTER(A2,"@")=UNICHAR(number)Returns the Unicode character for a code number.
=UNICHAR(9733)📅Date & Time 23
=TODAY()Returns today's date, refreshed each time the sheet recalculates.
=TODAY()=NOW()Returns the current date and time.
=NOW()=DATE(year, month, day)Builds a date from year, month and day numbers.
=DATE(2026,8,7)=TIME(hour, minute, second)Builds a time from hour, minute and second numbers.
=TIME(9,30,0)=YEAR(serial_number)Extracts the year from a date.
=YEAR(A2)=MONTH(serial_number)Extracts the month (1 to 12) from a date.
=MONTH(A2)=DAY(serial_number)Extracts the day of the month from a date.
=DAY(A2)=HOUR(serial_number)Extracts the hour from a time.
=HOUR(A2)=MINUTE(serial_number)Extracts the minutes from a time.
=MINUTE(A2)=SECOND(serial_number)Extracts the seconds from a time.
=SECOND(A2)=WEEKDAY(serial_number, [return_type])Returns the day of the week as a number.
=WEEKDAY(A2,2)=WEEKNUM(serial_number, [return_type])Returns the week number of the year for a date.
=WEEKNUM(A2,2)=EOMONTH(start_date, months)Returns the last day of the month, a set number of months away.
=EOMONTH(A2,0)=EDATE(start_date, months)Returns the date a set number of months before or after a date.
=EDATE(A2,3)=DATEDIF(start_date, end_date, unit)Returns the difference between two dates in years, months or days.
=DATEDIF(A2,B2,"Y")=DATEVALUE(date_text)Converts a date written as text into a real date.
=DATEVALUE("07/08/2026")=TIMEVALUE(time_text)Converts a time written as text into a real time.
=TIMEVALUE("9:30 PM")=NETWORKDAYS(start_date, end_date, [holidays])Counts working days between two dates, excluding weekends and holidays.
=NETWORKDAYS(A2,B2,H2:H10)=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])Counts working days with a weekend pattern you define.
=NETWORKDAYS.INTL(A2,B2,11,H2:H10)=WORKDAY(start_date, days, [holidays])Returns a date a set number of working days away.
=WORKDAY(A2,10,H2:H10)=WORKDAY.INTL(start_date, days, [weekend], [holidays])Returns a working day away using a custom weekend pattern.
=WORKDAY.INTL(A2,10,11,H2:H10)=DAYS(end_date, start_date)Returns the number of days between two dates.
=DAYS(B2,A2)=YEARFRAC(start_date, end_date, [basis])Returns the fraction of a year between two dates.
=YEARFRAC(A2,B2,1)🧮Sum/Count by condition 8
=SUMIF(range, criteria, [sum_range])Adds up cells that meet one condition.
=SUMIF(B2:B10,">100",C2:C10)=SUMIFS(sum_range, criteria_range1, criteria1, …)Adds up cells that meet several conditions at once.
=SUMIFS(C2:C10,B2:B10,">100",D2:D10,"UK")=COUNTIF(range, criteria)Counts cells that meet one condition.
=COUNTIF(B2:B10,">100")=COUNTIFS(criteria_range1, criteria1, …)Counts cells that meet several conditions.
=COUNTIFS(B2:B10,">100",D2:D10,"UK")=AVERAGEIF(range, criteria, [average_range])Averages cells that meet one condition.
=AVERAGEIF(B2:B10,">100",C2:C10)=AVERAGEIFS(average_range, criteria_range1, criteria1, …)Averages cells that meet several conditions.
=AVERAGEIFS(C2:C10,B2:B10,">100",D2:D10,"UK")=MAXIFS(max_range, criteria_range1, criteria1, …)Largest value among cells meeting your conditions.
=MAXIFS(C2:C10,D2:D10,"UK")=MINIFS(min_range, criteria_range1, criteria1, …)Smallest value among cells meeting your conditions.
=MINIFS(C2:C10,D2:D10,"UK")⚡Dynamic arrays (365) 20
=FILTER(array, include, [if_empty])Returns only the rows that meet a condition.
=FILTER(A2:C100,B2:B100>100)=SORT(array, [sort_index], [sort_order], [by_col])Sorts a range or array by a chosen column.
=SORT(A2:C100,3,-1)=SORTBY(array, by_array1, [sort_order1], …)Sorts a range by the values in one or more other arrays.
=SORTBY(A2:A100,B2:B100,-1)=UNIQUE(array, [by_col], [exactly_once])Returns the distinct values from a range.
=UNIQUE(A2:A100)=SEQUENCE(rows, [columns], [start], [step])Generates a list of sequential numbers.
=SEQUENCE(10,1,1,1)=RANDARRAY([rows], [columns], [min], [max], [whole_number])Generates an array of random numbers.
=RANDARRAY(5,2,1,100,TRUE)=LET(name1, value1, [name2, value2], …, calculation)Names intermediate results in a formula to make it clearer and faster.
=LET(x,A2*2,x+1)=LAMBDA([parameter1, …], calculation)Creates your own reusable function from a formula.
=LAMBDA(x,x*x)(5)=BYROW(array, lambda)Applies a LAMBDA to each row and returns one result per row.
=BYROW(A2:C4,LAMBDA(r,SUM(r)))=BYCOL(array, lambda)Applies a LAMBDA to each column and returns one result per column.
=BYCOL(A2:C4,LAMBDA(c,SUM(c)))=MAP(array1, [array2, …], lambda)Transforms each item of an array through a LAMBDA.
=MAP(A2:A10,LAMBDA(x,x*2))=TOCOL(array, [ignore], [scan_by_column])Reshapes a range into a single column.
=TOCOL(A2:C4)=TOROW(array, [ignore], [scan_by_column])Reshapes a range into a single row.
=TOROW(A2:C4)=VSTACK(array1, [array2], …)Stacks arrays on top of each other into one.
=VSTACK(A2:C4,E2:G4)=HSTACK(array1, [array2], …)Places arrays side by side into one.
=HSTACK(A2:A4,C2:C4)=TAKE(array, rows, [columns])Keeps a given number of rows or columns from an array.
=TAKE(A2:C100,5)=DROP(array, rows, [columns])Removes a given number of rows or columns from an array.
=DROP(A2:C100,1)=EXPAND(array, rows, [columns], [pad_with])Grows an array to a set size, padding the extra cells.
=EXPAND(A2:B3,4,4,0)=CHOOSEROWS(array, row_num1, [row_num2], …)Returns the chosen rows from an array.
=CHOOSEROWS(A2:C100,1,3,5)=CHOOSECOLS(array, col_num1, [col_num2], …)Returns the chosen columns from an array.
=CHOOSECOLS(A2:C100,1,3)💰Financial 13
=PMT(rate, nper, pv, [fv], [type])Returns the periodic payment for a loan at a constant rate.
=PMT(0.05/12,60,-20000)=IPMT(rate, per, nper, pv, [fv], [type])Returns the interest part of a given loan payment.
=IPMT(0.05/12,1,60,-20000)=PPMT(rate, per, nper, pv, [fv], [type])Returns the principal part of a given loan payment.
=PPMT(0.05/12,1,60,-20000)=FV(rate, nper, pmt, [pv], [type])Returns the future value of an investment.
=FV(0.05/12,60,-200)=PV(rate, nper, pmt, [fv], [type])Returns the present value of a series of payments.
=PV(0.05/12,60,-200)=NPER(rate, pmt, pv, [fv], [type])Returns the number of periods needed to pay off or grow an amount.
=NPER(0.05/12,-200,10000)=RATE(nper, pmt, pv, [fv], [type], [guess])Returns the interest rate per period of a loan or investment.
=RATE(60,-200,10000)=NPV(rate, value1, [value2], …)Returns the net present value of future cash flows at a discount rate.
=NPV(0.1,B2:B6)=IRR(values, [guess])Returns the internal rate of return for a series of cash flows.
=IRR(B2:B6)=XNPV(rate, values, dates)Net present value for cash flows on specific, irregular dates.
=XNPV(0.1,B2:B6,A2:A6)=XIRR(values, dates, [guess])Internal rate of return for cash flows on specific, irregular dates.
=XIRR(B2:B6,A2:A6)=SLN(cost, salvage, life)Returns straight-line depreciation for one period.
=SLN(10000,1000,5)=DB(cost, salvage, life, period, [month])Returns depreciation using the fixed-declining balance method.
=DB(10000,1000,5,1)ℹ️Information & error 14
=ISBLANK(value)Returns TRUE if a cell is empty.
=ISBLANK(A2)=ISNUMBER(value)Returns TRUE if a value is a number.
=ISNUMBER(A2)=ISTEXT(value)Returns TRUE if a value is text.
=ISTEXT(A2)=ISERROR(value)Returns TRUE if a value is any error.
=ISERROR(A2)=ISNA(value)Returns TRUE if a value is the #N/A error.
=ISNA(A2)=ISLOGICAL(value)Returns TRUE if a value is TRUE or FALSE.
=ISLOGICAL(A2)=ISREF(value)Returns TRUE if a value is a cell reference.
=ISREF(A2)=N(value)Converts a value to a number (dates, TRUE and so on).
=N(A2)=NA()Returns the #N/A error value on purpose.
=NA()=TYPE(value)Returns a code for the type of value in a cell.
=TYPE(A2)=CELL(info_type, [reference])Returns information about a cell's format, location or contents.
=CELL("address",A2)=INFO(type_text)Returns information about the operating environment.
=INFO("osversion")=SHEET([value])Returns the sheet number of a reference.
=SHEET(Sheet2!A1)=SHEETS([reference])Returns the number of sheets in a reference.
=SHEETS()