Excel column letters, column numbers, and R1C1 notation

Written for the moment a formula uses COLUMN, or a macro addresses Cells(1, 27) by number. The short answer is that A is 1, AA is 27, and the last column XFD is 16,384. The arithmetic behind that is not ordinary base 26, which is where most conversions go wrong.

1. Column letters and column numbers

The column headers on screen are letters: A, B, C. But the COLUMN function returns a number, and VBA's Cells(row, column) takes one. So the same column gets addressed by a letter in one place and by a number in another.

Both notations point at the same column. A is 1, B is 2, Z is 26. Past the twenty-sixth, the letters grow by a place and AA becomes 27. Microsoft's specification puts the last column of a worksheet at XFD, number 16,384.

2. The basic rule: base 26 with no zero

Column letters get called base 26, but that is not quite right. In ordinary base 26, A through Z would run from 0 to 25 and Z would roll over to BA. Excel rolls over to AA instead.

The reason is that no letter stands for zero. Each place carries a value from 1 to 26, so when the letters grow the leading place starts at 1 (A) rather than at 0. Mathematicians call this a bijective base-26 numeral system.

That is why converting a number back into letters has to subtract 1 before dividing. A snippet that skips that line is correct through Z and off by one place from 27 onward. Short conversion routines found online go wrong here often.

3. The rules inside this page

This page converts three things: letters to numbers, numbers to letters, and A1 notation to and from R1C1. Pick one with the buttons at the top.

The letter side reads three shapes. A single column letter like AA returns its number. A range like A:D returns both end numbers and how many columns that spans. A cell address like B3 splits into its column and its row. Dollar signs, as in $B$3, are accepted.

The number side reads 27 and 1:4. A range written backwards (4:1) is straightened out. Anything outside the specification (zero or less, above 16,384, a decimal, a letter combination such as XFE) is reported as unreadable rather than guessed at.

The notation side works out for itself which way you wrote it. B3 becomes R3C2, and R3C2 becomes B3. Relative references such as R[-1]C[1] are not read, because their meaning depends on which cell they sit in and this page does not know that.

Nothing you enter is sent to a server. The arithmetic runs inside your browser, and the server learns only three facts: that the page opened, that a conversion produced a result, and that a link was copied. Nothing is stored, so a refresh clears it.

Convert

4. Getting it right

Copy a header row from a spreadsheet and paste it into the left box to convert every entry at once. Line order is preserved, so the result can be pasted back beside the original.

Inside Excel itself, COLUMN() returns the column number of a cell and ADDRESS(1, 27, 4) returns the letter form of a number (AA1). Going the other way, COLUMN(AA1) gives you 27.

In VBA, Columns(27).Address returns $AA:$AA and Cells(1, 27).Address returns $AA$1. This page is for the times Excel is not open, or someone handed you a bare number.

5. A little deeper

R1C1 notation numbers the columns as well as the rows. B3 in A1 notation is R3C2 in R1C1, and note that the order flips, with the row coming first. R is the row, C is the column.

The real point of R1C1 is relative addressing. R[-1]C means one row up, RC[1] means one column right, and a formula written that way reads identically wherever it is copied. This page does not read those relative forms.

One letter covers 26 columns (A–Z), two letters cover 676 more (AA–ZZ, 27–702), and three letters cover the rest. Three letters would run to ZZZ (18,278), but the worksheet stops at XFD (16,384), so XFE and beyond are columns that do not exist.

6. Where people get stuck

If your own conversion is correct up to 26 and wrong after that, the subtract-one step before dividing is probably missing. Check whether AA comes out as 27.

A red result means the value falls outside the specification. Column numbers run from 1 to 16,384 and row numbers from 1 to 1,048,576.

Working with an old .xls file may mean the 256-column era (up to IV). This page calculates against the current 16,384-column specification.

Sources

Checked 2026-09-16