Why Does Excel Have Exactly 1,048,576 Rows? The Logic Behind Software Limits

⏱ 4 min readUpdated 28 September 2026

Scroll to the bottom of any Excel sheet (Ctrl+↓ on an empty column) and you stop at row 1,048,576. Press Ctrl+→ and the last column is XFD. These are not random numbers — they are powers of two, and once you see why, dozens of other “odd” limits in software make sense.

In this article
  1. Computers count in binary
  2. Excel’s limits, explained
  3. Why Excel thinks 1900 was a leap year
  4. Why 0.1 + 0.2 isn’t exactly 0.3
  5. Limits in other software you use
  6. What to do when you hit a limit

Computers count in binary

A computer stores numbers in bits. With n bits you can represent 2n different values:

Bits Values Where you meet it
8 256 Old Excel’s 256 columns (IV), a byte, 0–255 colour levels
14 16,384 Excel’s columns today (A…XFD)
16 65,536 Excel 97–2003 rows
20 1,048,576 Excel 2007+ rows
32 4,294,967,296 IPv4 addresses, 4 GB file limits, the year-2038 problem

Designers pick limits that fit neatly into a fixed number of bits, because that makes storage and lookups fast and predictable. A row number that always fits in 20 bits can be packed into memory and files efficiently.

Excel’s limits, explained

Limit Value Why
Rows 1,048,576 220. Raised from 65,536 (216) in Excel 2007 with the new .xlsx format.
Columns 16,384 (XFD) 214. Up from 256 (28, column IV).
Characters in a cell 32,767 215 − 1: the largest value of a signed 16-bit number. Only 1,024 are shown in the cell; all are in the formula bar.
Precision 15 significant digits Excel stores numbers as IEEE 754 “double” floating point (53 bits of precision ≈ 15–16 decimal digits). Type a 16-digit card number and the last digit becomes 0.
Formula length 8,192 characters 213.
Nested functions 64 levels 26 — enough for any sane formula.
Arguments per function 255 28 − 1.
Earliest date 1 January 1900 Dates are day numbers counted from 1900 (day 1).

Why Excel thinks 1900 was a leap year

Excel accepts the date 29-Feb-1900, which never existed (1900 was not a leap year). This was copied on purpose from Lotus 1-2-3, the dominant spreadsheet of the 1980s, so that files would give the same day numbers. Fixing it now would shift every date before March 1900 by one day in millions of files — so the bug stays. See why we have leap years.

Why 0.1 + 0.2 isn’t exactly 0.3

Binary cannot represent 0.1 exactly, just as decimal cannot write 1/3 exactly. Tiny errors appear, which is why comparisons like =A1=0.3 sometimes fail. Round before comparing. Full story: why 0.1 + 0.2 is not 0.3.

Limits in other software you use

Where Limit Logic
FAT32 pen drives 4 GB per file File size stored in 32 bits: 232 bytes = 4 GiB. Format the drive as exFAT or NTFS for bigger files.
Windows file paths 260 characters (MAX_PATH) A fixed buffer size chosen in the 1990s. Newer Windows can lift it, but many programs still assume it — the reason deep folder trees cause “path too long” errors.
SMS 160 characters Engineer Friedhelm Hillebrand measured typical postcards and telex messages and found 160 characters was usually enough; 160 × 7-bit characters fit the 140-byte signalling slot. With emoji or Hindi (Unicode), the limit drops to 70.
IPv4 addresses ~4.3 billion 32-bit addresses. We ran out, hence IPv6 (128-bit).
The year 2038 19-Jan-2038 Many systems count seconds since 1970 in a signed 32-bit number, which overflows then.
Google Sheets 10 million cells per spreadsheet A practical performance cap for a browser app, not a binary limit.
CSV files No limit Plain text — but open a 2-million-row CSV in Excel and only the first 1,048,576 rows load. Use Power Query or Python for larger files.
SAP FI document 999 line items The line-item number field is three digits.
Old games Level 256 “kill screen” in Pac-Man The level counter was 8 bits; at 256 it overflowed and half the screen turned to garbage.

What to do when you hit a limit

  • More than a million rows: load into the Data Model (Power Pivot) or Power BI — they handle tens of millions — or use a database/SQL.
  • Long ID numbers (cards, Aadhaar, account numbers): format the column as Text before pasting, or prefix with an apostrophe, so no digits are lost.
  • Huge files on a pen drive: reformat as exFAT.
  • Path too long: shorten folder names or map a drive letter to a deep folder.
💡 Want to feel the limit? In a new sheet type =ROWS(A:A) and =COLUMNS(1:1). Excel answers 1048576 and 16384.
✨ Ask AI about this article

Stuck on a step? Ask a question and the AI answers using this article.

Free · AI can be wrong