Spreadsheet
A spreadsheet tool that runs in your browser. Your data is not sent to any server. Calculate with formulas, and open and save Excel files (.xlsx) and CSV files.
| A | B | C | D | E | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||||||
| 2 | ||||||||||||
| 3 | ||||||||||||
| 4 | ||||||||||||
| 5 | ||||||||||||
| 6 | ||||||||||||
| 7 | ||||||||||||
| 8 | ||||||||||||
| 9 | ||||||||||||
| 10 | ||||||||||||
| 11 | ||||||||||||
| 12 | ||||||||||||
| 13 | ||||||||||||
| 14 | ||||||||||||
| 15 | ||||||||||||
| 16 | ||||||||||||
| 17 | ||||||||||||
| 18 | ||||||||||||
| 19 | ||||||||||||
| 20 | ||||||||||||
| 21 | ||||||||||||
| 22 | ||||||||||||
| 23 | ||||||||||||
| 24 | ||||||||||||
| 25 | ||||||||||||
| 26 | ||||||||||||
| 27 | ||||||||||||
| 28 |
Your data is stored only in this browser and is never sent to a server.
How to use
| Key | Mac | Action |
|---|---|---|
| F2 | F2 | Edit the selected cell (tapping the cell again or typing also starts editing) |
| Enter / Shift + Enter | Return / Shift + Return | Confirm and move down / up |
| Tab / Shift + Tab | Tab / Shift + Tab | Confirm and move right / left |
| Esc | Esc | Cancel editing |
| ↑ ↓ ← → | ↑ ↓ ← → | Move between cells (while typing a formula that starts with =, insert a reference to the cell you move to) |
| Shift + ↑ ↓ ← → | Shift + ↑ ↓ ← → | Select a range (Shift + click or dragging also works) |
| Ctrl + ↑ ↓ ← → | ⌘ + ↑ ↓ ← → | Jump to the edge of the data |
| Home / End | Fn + ← / → | Go to the start of the row / the last column with data |
| Ctrl + Home / End | ⌘ + Fn + ← / → | Go to A1 / the last cell with data |
| PageUp / PageDown | Fn + ↑ / ↓ | Move one screen up or down |
| Shift + Space | Shift + Space | Select the entire row (or click the row number) |
| Ctrl + Space | ⌃ + Space | Select the entire column (or click the column header) |
| Ctrl + A | ⌘ + A | Select the current data range (press again for the whole sheet) |
| Ctrl + D / R | ⌘ + D / R | Copy the contents of the cell above downward / the cell on the left to the right (fills the selection) |
| Ctrl + F | ⌘ + F | Find |
| Ctrl + H | ⌃ + H | Replace |
| Ctrl + ; | ⌘ + ; | Enter today's date |
| Ctrl + : | ⌘ + : | Enter the current time |
| Ctrl + Shift + 1 | ⌃ + Shift + 1 | Thousands separator with 2 decimals |
| Ctrl + Shift + 3 | ⌃ + Shift + 3 | Date format |
| Ctrl + Shift + 5 | ⌃ + Shift + 5 | Percent format |
| Ctrl + Shift + ~ | ⌃ + Shift + ~ | Back to General |
| F4 | F4 | While editing a formula, cycle the reference through A1 → $A$1 → A$1 → $A1 |
| Delete / Backspace | Delete | Clear the selection (number formats are kept) |
| Ctrl + C / X / V | ⌘ + C / X / V | Copy / cut / paste (also works with Excel) |
| Ctrl + Z / Y | ⌘ + Z / Shift + ⌘ + Z | Undo / redo (up to 100 steps) |
| Shift + F10 | Shift + F10 | Open the menu (right-click or long-press also works) |
| F6 / Shift + F6 | F6 / Shift + F6 | Move through the toolbar → formula bar → cell area → sheet tabs (Shift reverses the order) |
Supported functions
Math
| Function | Syntax | Description |
|---|---|---|
| SUM | SUM(number1, [number2], …) | Adds numbers |
| SUMIF | SUMIF(range, criteria, [sum_range]) | Adds cells that meet a condition |
| SUMIFS | SUMIFS(sum_range, criteria_range1, criteria1, …) | Adds cells that meet several conditions |
| SUMPRODUCT | SUMPRODUCT(array1, [array2], …) | Multiplies corresponding items and returns the sum of the products |
| PRODUCT | PRODUCT(number1, [number2], …) | Multiplies numbers |
| ABS | ABS(number) | Absolute value |
| SQRT | SQRT(number) | Square root |
| POWER | POWER(number, power) | Raises a number to a power |
| MOD | MOD(number, divisor) | Remainder after division |
| INT | INT(number) | Returns the largest integer less than or equal to the number |
| TRUNC | TRUNC(number, [num_digits]) | Truncates to the given number of digits (toward 0) |
| ROUND | ROUND(number, num_digits) | Rounds to a number of digits |
| ROUNDUP | ROUNDUP(number, num_digits) | Rounds away from 0 |
| ROUNDDOWN | ROUNDDOWN(number, num_digits) | Rounds toward 0 |
| CEILING | CEILING(number, significance) | Rounds up to a multiple |
| FLOOR | FLOOR(number, significance) | Rounds down to a multiple |
| EXP | EXP(number) | e raised to a power |
| LN | LN(number) | Natural logarithm |
| LOG | LOG(number, [base]) | Logarithm (base 10 if omitted) |
| LOG10 | LOG10(number) | Base-10 logarithm |
| PI | PI() | The value of pi |
| RAND | RAND() | Random number from 0 to less than 1 (changes on every recalculation) |
| RANDBETWEEN | RANDBETWEEN(bottom, top) | Random integer in the given range |
| SIGN | SIGN(number) | 1 if positive, 0 if zero, -1 if negative |
| QUOTIENT | QUOTIENT(numerator, denominator) | Integer part of a division |
| EVEN | EVEN(number) | Rounds up to an even integer |
| ODD | ODD(number) | Rounds up to an odd integer |
Statistics
| Function | Syntax | Description |
|---|---|---|
| AVERAGE | AVERAGE(number1, [number2], …) | Average |
| AVERAGEIF | AVERAGEIF(range, criteria, [average_range]) | Average of cells that meet a condition |
| AVERAGEIFS | AVERAGEIFS(average_range, criteria_range1, criteria1, …) | Average of cells that meet several conditions |
| MIN | MIN(number1, [number2], …) | Smallest value |
| MAX | MAX(number1, [number2], …) | Largest value |
| MINIFS | MINIFS(min_range, criteria_range1, criteria1, …) | Smallest value among cells that meet conditions |
| MAXIFS | MAXIFS(max_range, criteria_range1, criteria1, …) | Largest value among cells that meet conditions |
| COUNT | COUNT(value1, [value2], …) | Counts cells that contain numbers |
| COUNTA | COUNTA(value1, [value2], …) | Counts cells that aren't empty |
| COUNTBLANK | COUNTBLANK(range) | Counts empty cells |
| COUNTIF | COUNTIF(range, criteria) | Counts cells that meet a condition |
| COUNTIFS | COUNTIFS(criteria_range1, criteria1, …) | Counts cells that meet several conditions |
| MEDIAN | MEDIAN(number1, [number2], …) | Median |
| MODE | MODE(number1, [number2], …) | Most frequent value |
| LARGE | LARGE(array, k) | k-th largest value |
| SMALL | SMALL(array, k) | k-th smallest value |
| RANK | RANK(number, ref, [order]) | Rank in a list (largest first if order is 0 or omitted) |
| STDEV | STDEV(number1, [number2], …) | Standard deviation of a sample |
| STDEVP | STDEVP(number1, [number2], …) | Standard deviation of a population |
| VAR | VAR(number1, [number2], …) | Variance of a sample |
| VARP | VARP(number1, [number2], …) | Variance of a population |
Logical
| Function | Syntax | Description |
|---|---|---|
| IF | IF(logical_test, value_if_true, [value_if_false]) | Returns one value or another depending on a condition |
| IFS | IFS(test1, value1, [test2, value2], …) | Returns the value for the first condition that is met |
| IFERROR | IFERROR(value, value_if_error) | Returns the value you specify if there's an error |
| IFNA | IFNA(value, value_if_na) | Returns the value you specify if the result is #N/A |
| AND | AND(logical1, [logical2], …) | Whether all conditions are met |
| OR | OR(logical1, [logical2], …) | Whether any condition is met |
| NOT | NOT(logical) | Swaps TRUE and FALSE |
| XOR | XOR(logical1, [logical2], …) | Whether an odd number of conditions are met |
| TRUE | TRUE() | Returns TRUE |
| FALSE | FALSE() | Returns FALSE |
| SWITCH | SWITCH(expression, value1, result1, …, [default]) | Returns the result for the matching value (the default if none match) |
| CHOOSE | CHOOSE(index_num, value1, [value2], …) | Returns the value for the given number |
Text
| Function | Syntax | Description |
|---|---|---|
| LEN | LEN(text) | Number of characters |
| LEFT | LEFT(text, [num_chars]) | Takes the given number of characters from the start of text |
| RIGHT | RIGHT(text, [num_chars]) | Takes the given number of characters from the end of text |
| MID | MID(text, start_num, num_chars) | Takes the given number of characters from a given position |
| UPPER | UPPER(text) | Converts letters to uppercase |
| LOWER | LOWER(text) | Converts letters to lowercase |
| PROPER | PROPER(text) | Capitalizes the first letter of each word |
| TRIM | TRIM(text) | Removes extra spaces |
| SUBSTITUTE | SUBSTITUTE(text, old_text, new_text, [instance_num]) | Replaces text with other text |
| REPLACE | REPLACE(old_text, start_num, num_chars, new_text) | Replaces characters at a position |
| REPT | REPT(text, number_times) | Repeats text |
| FIND | FIND(find_text, within_text, [start_num]) | Finds text and returns its position (case-sensitive) |
| SEARCH | SEARCH(find_text, within_text, [start_num]) | Finds text and returns its position (not case-sensitive, allows * and ?) |
| EXACT | EXACT(text1, text2) | Whether two texts are the same |
| TEXT | TEXT(value, format_text) | Converts a value to text in the given number format |
| VALUE | VALUE(text) | Converts text that represents a number to a number |
| CONCAT | CONCAT(text1, [text2], …) | Joins text |
| CONCATENATE | CONCATENATE(text1, [text2], …) | Joins text (older form) |
| TEXTJOIN | TEXTJOIN(delimiter, ignore_empty, text1, …) | Joins text with a delimiter |
| CHAR | CHAR(number) | Character for a code (Unicode) |
| CODE | CODE(text) | Code of the first character (Unicode) |
| ASC | ASC(text) | Converts full-width letters, digits and katakana to half-width |
| JIS | JIS(text) | Converts half-width letters, digits and katakana to full-width |
Lookup and reference
| Function | Syntax | Description |
|---|---|---|
| VLOOKUP | VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) | Looks down the first column and returns a value from the same row |
| HLOOKUP | HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]) | Looks across the first row and returns a value from the same column |
| XLOOKUP | XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode]) | Looks up a value and returns the matching item |
| INDEX | INDEX(array, row_num, [column_num]) | Returns the value at the given row and column |
| MATCH | MATCH(lookup_value, lookup_array, [match_type]) | Position of a value in a range |
| ROW | ROW([reference]) | Row number |
| COLUMN | COLUMN([reference]) | Column number |
| ROWS | ROWS(array) | Number of rows in a range |
| COLUMNS | COLUMNS(array) | Number of columns in a range |
Date and time
| Function | Syntax | Description |
|---|---|---|
| TODAY | TODAY() | Today's date |
| NOW | NOW() | Current date and time |
| DATE | DATE(year, month, day) | Makes a date from year, month and day |
| YEAR | YEAR(serial_number) | Year of a date |
| MONTH | MONTH(serial_number) | Month of a date |
| DAY | DAY(serial_number) | Day of a date |
| HOUR | HOUR(serial_number) | Hour of a time |
| MINUTE | MINUTE(serial_number) | Minute of a time |
| SECOND | SECOND(serial_number) | Second of a time |
| WEEKDAY | WEEKDAY(serial_number, [return_type]) | Day of the week as a number (type 2 makes Monday 1) |
| DATEDIF | DATEDIF(start_date, end_date, unit) | Years, months or days between two dates |
| EDATE | EDATE(start_date, months) | Returns the date a given number of months before or after |
| EOMONTH | EOMONTH(start_date, months) | Returns the last day of the month a given number of months before or after |
| DAYS | DAYS(end_date, start_date) | Days between two dates |
| TIME | TIME(hour, minute, second) | Makes a time from hour, minute and second |
| DATEVALUE | DATEVALUE(date_text) | Converts text that represents a date to a date value |
Information
| Function | Syntax | Description |
|---|---|---|
| ISBLANK | ISBLANK(value) | Whether a cell is empty |
| ISNUMBER | ISNUMBER(value) | Whether a value is a number |
| ISTEXT | ISTEXT(value) | Whether a value is text |
| ISERROR | ISERROR(value) | Whether a value is an error |
| ISERR | ISERR(value) | Whether a value is an error other than #N/A |
| ISNA | ISNA(value) | Whether a value is #N/A |
| ISLOGICAL | ISLOGICAL(value) | Whether a value is TRUE or FALSE |
| N | N(value) | Converts a value to a number (text becomes 0) |
| NA | NA() | Returns #N/A |
Limitations
Unsupported formatting and features
Bold, colors, borders, conditional formatting, data validation, comments, links, freeze panes, hidden rows and columns, charts, images, macros, line breaks inside a cell and Japanese era dates aren't supported.
Information lost when you save a file
If a file you open contains these settings or items, they're lost when you save. Merged cells show only the value of the top-left cell (the merge is kept when you save). For array formulas (entered with Ctrl + Shift + Enter), only the formula in the top-left cell is saved, as a normal formula.
Formula and reference limits
Defined names can be used in formulas, but new names can't be defined. Table references, references to other files, references joined with a comma, formulas with @ and formulas that spill results into multiple cells aren't supported.
Sheet, row and column limits
A workbook can have up to 20 sheets, each up to 2,000 rows × 52 columns (A to AZ).
Entering numbers and long numbers
Values with symbols such as 50% or $1,000 are split into a number and a number format, just like in Excel. Numbers can have up to 15 digits (for long numbers such as card numbers, type ' first to enter them as text).
Was this tool helpful?