Formula reference: Excel vs Google Sheets
Every function you'll actually use, with syntax, a copy-ready example, and whether it works in Excel, Excel 365 or Google Sheets.
| Function | What it does | Example | Excel | Sheets |
|---|---|---|---|---|
| SUM | Adds numbers.SUM(value1, [value2], β¦) | =SUM(B2:B10) | β | β |
| SUMIF | Adds cells that meet one condition.SUMIF(range, criteria, [sum_range]) | =SUMIF(A2:A10,"North",C2:C10) | β | β |
| SUMIFS | Adds cells that meet several conditions.SUMIFS(sum_range, range1, criteria1, β¦) | =SUMIFS(C2:C10,A2:A10,"North",B2:B10,">100") | β | β |
| SUMPRODUCT | Multiplies arrays element-wise and sums the results.SUMPRODUCT(array1, [array2], β¦) | =SUMPRODUCT(B2:B10,C2:C10) | β | β |
| ROUND | Rounds to a number of digits.ROUND(number, digits) | =ROUND(A2,2) | β | β |
| ROUNDUP / ROUNDDOWN | Rounds away from / toward zero.ROUNDUP(number, digits) | =ROUNDUP(A2,0) | β | β |
| MOD | Remainder after division.MOD(number, divisor) | =MOD(A2,2)=0 | β | β |
| ABS | Absolute value.ABS(number) | =ABS(B2-C2) | β | β |
| RAND / RANDBETWEEN | Random number (recalculates on every change).RANDBETWEEN(low, high) | =RANDBETWEEN(1,100) | β | β |
| AVERAGE | Arithmetic mean.AVERAGE(value1, β¦) | =AVERAGE(B2:B10) | β | β |
| AVERAGEIFS | Average of cells meeting conditions.AVERAGEIFS(avg_range, range1, criteria1, β¦) | =AVERAGEIFS(C2:C10,A2:A10,"North") | β | β |
| COUNT | Counts numeric cells.COUNT(value1, β¦) | =COUNT(B2:B10) | β | β |
| COUNTA | Counts non-empty cells.COUNTA(value1, β¦) | =COUNTA(A2:A100) | β | β |
| COUNTBLANK | Counts empty cells.COUNTBLANK(range) | =COUNTBLANK(A2:A100) | β | β |
| COUNTIF | Counts cells meeting a condition.COUNTIF(range, criteria) | =COUNTIF(A2:A10,"Paid") | β | β |
| COUNTIFS | Counts rows meeting several conditions.COUNTIFS(range1, criteria1, β¦) | =COUNTIFS(A2:A10,"North",C2:C10,">=100") | β | β |
| COUNTUNIQUE | Counts distinct values.COUNTUNIQUE(value1, β¦) | =COUNTUNIQUE(A2:A100) | β | β |
| MAX / MIN | Largest / smallest value.MAX(value1, β¦) | =MAX(B2:B10) | β | β |
| MAXIFS / MINIFS | Largest / smallest value meeting conditions.MAXIFS(max_range, range1, criteria1, β¦) | =MAXIFS(C2:C10,A2:A10,"North") | β | β |
| MEDIAN | Middle value.MEDIAN(value1, β¦) | =MEDIAN(B2:B10) | β | β |
| LARGE / SMALL | k-th largest / smallest value.LARGE(range, k) | =LARGE(B2:B10,2) | β | β |
| RANK.EQ | Rank of a number in a list.RANK.EQ(number, ref, [order]) | =RANK.EQ(B2,$B$2:$B$10) | β | β |
| IF | Returns one value if true, another if false.IF(test, value_if_true, [value_if_false]) | =IF(B2>=60,"Pass","Fail") | β | β |
| IFS | Checks several conditions in order.IFS(test1, value1, [test2, value2], β¦) | =IFS(B2>=90,"A",B2>=80,"B",TRUE,"C") | β | β |
| AND / OR / NOT | Combine or invert conditions.AND(logical1, β¦) | =AND(B2>0,C2="Open") | β | β |
| IFERROR | Replaces any error with a value.IFERROR(value, value_if_error) | =IFERROR(A2/B2,0) | β | β |
| IFNA | Replaces only #N/A.IFNA(value, value_if_na) | =IFNA(VLOOKUP(A2,D:E,2,0),"Missing") | β | β |
| SWITCH | Matches an expression against cases.SWITCH(expr, case1, value1, β¦, [default]) | =SWITCH(A2,1,"Low",2,"Mid","High") | β | β |
| LET | Names intermediate results inside a formula.LET(name1, value1, β¦, calculation) | =LET(t,SUM(B2:B10),t*1.2) | π | β |
| LAMBDA | Creates a custom reusable function.LAMBDA(param1, β¦, calculation) | =MAP(A2:A10,LAMBDA(x,x*2)) | π | β |
| VLOOKUP | Looks down the first column and returns a value from another column.VLOOKUP(key, table, col_index, [is_sorted]) | =VLOOKUP(A2,Products!A:C,3,FALSE) | β | β |
| HLOOKUP | Horizontal version of VLOOKUP.HLOOKUP(key, table, row_index, [is_sorted]) | =HLOOKUP("Q2",A1:E5,3,FALSE) | β | β |
| XLOOKUP | Modern lookup in any direction with a default value.XLOOKUP(key, lookup_array, return_array, [if_not_found], β¦) | =XLOOKUP(A2,Products!A:A,Products!C:C,"Not found") | π | β |
| INDEX | Returns the value at a position.INDEX(range, row, [column]) | =INDEX(C2:C10,3) | β | β |
| MATCH | Returns the position of a value. Use 0 for exact.MATCH(key, range, [match_type]) | =MATCH("Bob",A2:A10,0) | β | β |
| XMATCH | Modern MATCH with exact match by default.XMATCH(key, lookup_array, [match_mode], [search_mode]) | =XMATCH("Bob",A2:A10) | π | β |
| CHOOSE | Picks a value by position.CHOOSE(index, value1, value2, β¦) | =CHOOSE(WEEKDAY(A2),"Sun","Mon","Tue","Wed","Thu","Fri","Sat") | β | β |
| INDIRECT | Turns text into a reference.INDIRECT(ref_text) | =SUM(INDIRECT("'"&A1&"'!B:B")) | β | β |
| FILTER | Returns rows that meet conditions. (Excel: 3rd arg is if_empty)FILTER(range, condition1, [condition2β¦]) | =FILTER(A2:D100,C2:C100="Open") | π | β |
| SORT | Sorts a range. Excel uses 1/-1, Sheets TRUE/FALSE.SORT(range, [sort_column], [ascending]) | =SORT(A2:C100,3,FALSE) | π | β |
| SORTBY | Sorts by another range.SORTBY(array, by_array1, [order1], β¦) | =SORTBY(A2:A10,B2:B10,-1) | π | β |
| SORTN | Top N rows after sorting.SORTN(range, [n], [ties_mode], [sort_column], [ascending]) | =SORTN(A2:C100,5,0,3,FALSE) | β | β |
| UNIQUE | Removes duplicates.UNIQUE(range) | =UNIQUE(A2:A100) | π | β |
| SEQUENCE | Generates a list of numbers.SEQUENCE(rows, [columns], [start], [step]) | =SEQUENCE(12) | π | β |
| TRANSPOSE | Swaps rows and columns.TRANSPOSE(range) | =TRANSPOSE(A1:E1) | β | β |
| ARRAYFORMULA | Applies a formula to whole ranges.ARRAYFORMULA(formula) | =ARRAYFORMULA(B2:B*C2:C) | β | β |
| VSTACK / HSTACK | Stacks ranges vertically / horizontally.VSTACK(array1, array2, β¦) | =VSTACK(Jan!A2:C50,Feb!A2:C50) | π | β |
| MAP / BYROW / SCAN / REDUCE | LAMBDA helper functions for array calculations.BYROW(range, LAMBDA(row, β¦)) | =SCAN(0,B2:B10,LAMBDA(a,x,a+x)) | π | β |
| QUERY | SQL-like select, filter, group and sort.QUERY(range, query, [headers]) | =QUERY(A1:D100,"select A, sum(D) group by A") | β | β |
| GROUPBY / PIVOTBY | Formula-based summaries and pivots.GROUPBY(row_fields, values, function) | =GROUPBY(A2:A100,D2:D100,SUM) | π | β |
| CONCAT / & | Joins text.CONCAT(text1, β¦) | =A2&" "&B2 | β | β |
| TEXTJOIN | Joins text with a delimiter.TEXTJOIN(delimiter, ignore_empty, text1, β¦) | =TEXTJOIN(", ",TRUE,A2:A10) | β | β |
| LEFT / RIGHT / MID | Extracts part of a text string.MID(text, start, length) | =LEFT(A2,3) | β | β |
| LEN | Number of characters.LEN(text) | =LEN(A2) | β | β |
| FIND / SEARCH | Position of text (FIND is case-sensitive).SEARCH(find, within, [start]) | =SEARCH("@",B2) | β | β |
| SUBSTITUTE | Replaces text.SUBSTITUTE(text, old, new, [instance]) | =SUBSTITUTE(A2,"-","") | β | β |
| TRIM | Removes extra spaces.TRIM(text) | =TRIM(A2) | β | β |
| CLEAN | Removes non-printable characters.CLEAN(text) | =CLEAN(A2) | β | β |
| UPPER / LOWER / PROPER | Changes letter case.PROPER(text) | =PROPER(A2) | β | β |
| TEXT | Formats a number or date as text.TEXT(value, format) | =TEXT(A2,"yyyy-mm-dd") | β | β |
| VALUE | Converts text to a number.VALUE(text) | =VALUE(A2) | β | β |
| SPLIT | Splits text into columns.SPLIT(text, delimiter) | =SPLIT(A2,",") | β | β |
| TEXTSPLIT | Splits text into columns/rows.TEXTSPLIT(text, col_delimiter, [row_delimiter]) | =TEXTSPLIT(A2,",") | π | β |
| TEXTBEFORE / TEXTAFTER | Text before / after a delimiter.TEXTBEFORE(text, delimiter) | =TEXTAFTER(B2,"@") | π | β |
| REGEXMATCH | TRUE if the text matches a pattern.REGEXMATCH(text, regex) | =REGEXMATCH(B2,"^\S+@\S+\.\S+quot;) | β | β |
| REGEXEXTRACT | Extracts the matching part.REGEXEXTRACT(text, regex) | =REGEXEXTRACT(A2,"\d+") | π | β |
| REGEXREPLACE | Replaces matches.REGEXREPLACE(text, regex, replacement) | =REGEXREPLACE(A2,"[^0-9]","") | π | β |
| TODAY / NOW | Current date / date-time.TODAY() | =TODAY()-A2 | β | β |
| DATE | Builds a date.DATE(year, month, day) | =DATE(2026,1,31) | β | β |
| YEAR / MONTH / DAY | Extracts part of a date.MONTH(date) | =YEAR(A2) | β | β |
| EDATE / EOMONTH | Shift by months / end of month.EOMONTH(start, months) | =EOMONTH(A2,0) | β | β |
| DATEDIF | Difference in "Y", "M" or "D".DATEDIF(start, end, unit) | =DATEDIF(A2,TODAY(),"Y") | β | β |
| NETWORKDAYS | Working days between dates.NETWORKDAYS(start, end, [holidays]) | =NETWORKDAYS(A2,B2) | β | β |
| WORKDAY | Date after N working days.WORKDAY(start, days, [holidays]) | =WORKDAY(A2,10) | β | β |
| WEEKDAY / WEEKNUM | Day of week / week number.WEEKDAY(date, [type]) | =WEEKDAY(A2,2) | β | β |
| PMT | Loan payment per period.PMT(rate, periods, present_value) | =PMT(5%/12,60,-20000) | β | β |
| FV / PV | Future / present value.FV(rate, periods, payment, [pv]) | =FV(4%/12,120,-200) | β | β |
| NPV / IRR | Net present value / internal rate of return.NPV(rate, value1, β¦) | =IRR(B2:B8) | β | β |
| ISBLANK / ISNUMBER / ISTEXT | Tests a value's type.ISNUMBER(value) | =ISNUMBER(SEARCH("x",A2)) | β | β |
| IMPORTRANGE | Imports a range from another spreadsheet.IMPORTRANGE(url, range_string) | =IMPORTRANGE("URL","Sheet1!A1:D100") | β | β |
| IMPORTHTML / IMPORTXML | Imports a table or data from a web page.IMPORTHTML(url, "table", index) | =IMPORTHTML("URL","table",1) | β | β |
| GOOGLEFINANCE | Stock and currency data.GOOGLEFINANCE(ticker, [attribute]) | =GOOGLEFINANCE("CURRENCY:EURUSD") | β | β |
| GOOGLETRANSLATE | Translates text.GOOGLETRANSLATE(text, [source], [target]) | =GOOGLETRANSLATE(A2,"en","es") | β | β |
| SPARKLINE | Tiny chart inside a cell.SPARKLINE(data, [options]) | =SPARKLINE(B2:M2) | β | β |
| IMAGE | Displays an image in a cell.IMAGE(url, β¦) | =IMAGE("https://β¦/logo.png") | π | β |
| HYPERLINK | Clickable link.HYPERLINK(url, [label]) | =HYPERLINK("https://example.com","Open") | β | β |
86 of 86 functions