menu

Convert column number to Excel column letter(s)

Powerful one liner to convert column number into Excel column letter(s)

1
2
3
4
5
6
7
def convert_to_excel_column(c):
	return "".join([chr(64+((c-1) // 26)) if c > 26 else '', chr(64+(c % 26)) \
                    if c % 26 != 0 else chr(90)])

for c in [1,26,27,52,53,78,79]:
    print(f'{c = } -> {convert_to_excel_column(c)}')
	
c = 1  -> A
c = 26 -> Z
c = 27 -> AA
c = 52 -> AZ
c = 53 -> BA
c = 78 -> BZ
c = 79 -> CA

Or rather a true one-liner

1
2
3
4
5
6
col_letter = lambda x: "".join([chr(64+((x-1) // 26)) if x > 26 else '', chr(64+(x % 26)) \
                                if x % 26 != 0 else chr(90)])

for x in [1,26,27,52,53,78,79]:
    print(f'{x = } -> {col_letter(x)}')
	
x = 1  -> A
x = 26 -> Z
x = 27 -> AA
x = 52 -> AZ
x = 53 -> BA
x = 78 -> BZ
x = 79 -> CA
Buy me a coffeeBuy me a coffee