Convert "A1"-style column IDs from a letter representation to an integer, e.g. column A becomes 1, column D becomes 4, etc. Or go the other way around.

letter_to_num(x)

num_to_letter(y)

Arguments

x

a character vector of "A1" style column IDs (case insensitive)

y

a vector of integer column IDs

Value

a vector of column IDs, either character or integer

Details

  • Google Sheets have up to 300 columns (column KN).

  • Excel 2010 spreadsheets have up to 16,384 columns (column XFD).

  • ZZ is column 702.

  • ZZZ is column 18,278 (no known spreadsheet actually goes that high).

Examples

letter_to_num('Z')
#> [1] 26
letter_to_num(c('AA', 'ZZ', 'ABD', 'ZZZ'))
#> [1]    27   702   732 18278
letter_to_num(c(NA, ''))
#> [1] NA NA
num_to_letter(28)
#> [1] "AB"
num_to_letter(900)
#> [1] "AHP"
num_to_letter(18278)
#> [1] "ZZZ"
num_to_letter(c(25, 52, 900, 18278))
#> [1] "Y"   "AZ"  "AHP" "ZZZ"
num_to_letter(c(NA, 0, 4.8, -4))
#> [1] NA  NA  "D" NA