Excel 列号与列字母互转:A=1,Z=26,AA=27 的双射 26 进制完全指南
讲清 Excel 列字母和列号怎么互转,为什么 AA 是第 27 列而不是第 1 列,怎么手算双射 26 进制,以及写宏写公式定位列号时的实用做法。
Excel 列号与列字母互转:A=1,Z=26,AA=27 的双射 26 进制完全指南
在表格右上角数列字母,数到第 50 列要按多少次右方向键?Excel、Google 表格、WPS 都用字母给列编号,可一旦列数过百,人脑就跟不上了。报错信息说「第 100 列出错」,你的查看器却只显示字母;反过来,脚本要的是数字下标,你手里却只有 AB、AZ 这种字母。这篇就把列字母和列号之间的换算讲透,顺带说清那个总让人困惑的问题:为什么 AA 是第 27 列。
列号用的是双射 26 进制
先纠正一个最常见的误会:Excel 的列号不是普通 26 进制。普通进制里每一位可以取 0,所以两位数从 00 起步;而列字母里压根没有「零」这个字母,每一位只能取 A 到 Z,也就是 1 到 26。这种没有零位、每位取值从 1 到基数的编号方式,叫双射 26 进制。
具体对照很直观:A=1,B=2,一路到 Z=26。单字母用完了,下一列开始两字母,AA 紧接在 Z 后面,所以 AA=27,AB=28,AZ=52,BA=53。如果按普通 26 进制理解,AA 应该代表「1×26+1」往后的某个偏移,甚至 AA 会被读成零,但双射进制里没有零,从 Z(26)到 AA(27)是连续递增的,不会归零重来。这就是 AA 落在第 27 列的根本原因。
字母转数字怎么手算
手算其实只有一句口诀:从左往右,每读一个字母就把当前总数乘 26,再加上这个字母的值。
举几个例子。AZ:从 0 开始,读 A 得 0×26+1=1,再读 Z 得 1×26+26=52,所以 AZ 是第 52 列。BA:读 B 得 2,再读 A 得 2×26+1=53,所以 BA 是第 53 列。ZZ:读 Z 得 26,再读 Z 得 26×26+26=702,所以 ZZ 是第 702 列,它后面就进入三字母列,AAA 是第 703 列。Excel 工作表最右边到 XFD 为止,也就是第 16384 列。
记住这套连乘并不难,难的是一长串列字母要一个个算,还不能出错。一两个值心算没问题,一整页列说明就该交给工具了。我自己整理一份导入字段映射时,规格里写着十几个列字母,挨个心算到第八个就开始怀疑自己,索性把整段粘进 Excel 列号转换器,每行一个,一次性全转出来,再核对就踏实多了。
数字转字母:写宏写脚本的反向需求
写代码时更多是反方向。VBA、Apps Script、Python 的 openpyxl 和 pandas,这些库内部要的是数字列下标,而你脑子里装的是字母。比如宏返回 Cells(1, 703),你要把它写进日志或拼成公式字符串,就得知道第 703 列是 AAA。
数字转字母的算法是:先把下标减 1,对 26 取余得到最右边那个字母,再整除 26 往下走,如此重复直到没有余数。于是 27 变 AA,52 变 AZ,703 变 AAA。这一步最容易差一位,因为减 1 这个细节很容易忘,手算时一不留神就把第 27 列写成了 AB。需要批量反查时,直接切到「数字转字母」方向,把一串下标粘进去就行。
一个真实例子:第 28 列是哪个字母
来走一遍完整流程。假设你在规划一张很宽的报表,要确认第 28 个指标落在哪一列。按算法:28 减 1 等于 27,27 对 26 取余得 1,对应字母 B(第二个字母);27 整除 26 得 1,1 减 1 等于 0,0 对应字母 A。从右往左拼起来就是 AB。所以第 28 列正是 AB 列,紧跟在 AA(第 27 列)后面,这和「AA=27、AB=28」的对照表完全吻合。
把这个结论用回实际:你在模板里标好打印区域到 AB 列,导出时就不会发现指标列错位。一次换算省下的,是导出后才发现版面不对、回头重排的整段时间。
三个容易踩的坑
第一,别把列号当普通 26 进制,以为 AA 是 1 或 0。它是没有零位的双射 26 进制,AA 就是 27。第二,别在数字输入里混进字母。「数字转字母」模式要输入 27,不是字母 AA,输错了会被标为非法,先切方向再输。第三,记住 Excel 列号从 1 开始,而很多库从 0 开始。工具给的是与列表头一致的从 1 开始的下标(A 是 1),要喂给从 0 开始的接口,转换后自己再减 1。
如果你的真实需求不是单纯转列号,而是从一份 CSV 里按列字母把某一列单独抽出来,那更适合用 CSV 列提取工具,它能直接按列定位并取出数据,省去先转下标再写脚本的中间步骤。
小结
Excel 列号的核心就一句话:双射 26 进制,A=1、Z=26、AA=27,没有零位。字母转数字靠「乘 26 加字母值」的连乘,数字转字母靠「减 1、取余、整除」的循环。单个值心算,成批的交给工具,写宏写公式时反向查表更省心。把这套规则吃透,无论是读报错里的列号、给 Python 库准备下标,还是核对宽表布局,都能一次到位。
Made by Toolora · Updated 2026-06-13