Table of contents
该教程讲述了如何在Excel中使用公式返回列号,以及如何自动对列进行编号。
上周,我们讨论了将列号改为字母的最有效公式。 如果你有一个相反的任务要执行,下面是将列名改为数字的最佳技术。
如何在Excel中返回列号
在Excel中,要把一列字母转换成一列数字,你可以使用这个通用公式。
列(间接( 信 & "1"))例如,要得到F列的数字,公式是:。
=COLUMN(INDIRECT("F"& "1"))
而这里你可以通过在预定义单元格(在我们的例子中是A2到A7)中输入字母来识别列号。
=COLUMN(INDIRECT(A2& "1"))
在B2中输入上述公式,向下拖动到该列的其他单元格,你将得到这样的结果。
这个公式如何运作。
首先,你要构建一个代表单元格引用的文本字符串。 为此,你要把一个字母和数字1连接起来。 然后,你把这个字符串交给INDIRECT函数,把它转换成一个实际的Excel引用。 最后,你把这个引用交给COLUMN函数,得到列号。
如何将列字母转换为数字(非易失性公式)
作为一个不稳定的函数,如果在一个工作簿中广泛使用,INDIRECT会大大降低Excel的速度。 为了避免这种情况,你可以使用一个稍微复杂的非不稳定的替代方法来识别列号。
MATCH( 信 & "1", ADDRESS(1, COLUMN(1:1), 4), 0)这在动态数组Excel(365和2021)中完美地工作。 在旧版本中,你需要把它作为数组公式输入(Ctrl + Shift + Enter)才能工作。
比如说。
=MATCH(A2& "1", ADDRESS(1, COLUMN(1:1), 4), 0)
或者你可以在所有Excel版本中使用这个非数组公式。
=MATCH(A2& "1", INDEX(ADDRESS(1, INDEX(COLUMN(1:1), ), 4), ), 0)
这个公式如何运作。
首先,你把A2中的字母和行号 "1 "连接起来,构建一个标准的 "A1 "风格的引用。 在这个例子中,我们在A2中有字母 "A",所以得到的字符串是 "A1"。
接下来,你得到一个字符串数组,代表第一行的所有单元格地址,从 "A1 "到 "XFD1"。 为此,你使用COLUMN(1:1)函数,它生成了一个列号序列,并将该数组传递到 列_num 的参数。
address(1, {1,2,3,4,5,..., 16384), 4)
鉴于 行数_num (第一参数)被设置为1,并且 abs_num (第3个参数)设置为4(意味着你想要一个相对引用),ADDRESS函数就会提供这个数组。
{"A1","B1","C1","D1",…,"XFD1"}
最后,你建立一个MATCH公式,在上述数组中搜索串联的字符串,并返回找到的值的位置,这与你要找的列号相对应。
match("a1", {"a1", "b1", "c1", "d1", ..., "xfd1"}, 0)
使用自定义函数将列字母改为数字
伟大的艺术家和科学家莱昂纳多-达-芬奇说:"简单是最终的复杂"。 为了以简单的方式从一个字母得到一个列号,你可以创建你自己的自定义函数。
完全按照上述原则,该函数的代码是尽可能的简单。
Public Function ColumnNumber(col_letter As String ) As Long ColumnNumber = Columns(col_letter).Column End Function在你的VBA编辑器中插入代码,如这里所解释的,你的新函数名为 列号 就可以使用了。
该函数只需要一个参数。 栏目组 ,这是要转换为数字的列字母。
ColumnLetter(col_letter)你的真实公式可以是这样的。
=ColumnNumber(A2)
如果你比较一下我们的自定义函数和Excel的本地函数所返回的结果,你会发现它们是完全一样的。
返回一个特定单元格的列号
要获得某个单元格的列号,只需使用COLUMN函数。
COLUMN( 细胞_地址 )例如,要确定B3单元格的列号,公式为:。
=COLUMN(B3)
很明显,结果是2。
获取当前单元格的列字母
要想知道当前单元格的列号,使用COLUMN()函数,参数为空,所以它指的是公式所在的单元格。
=COLUMN()
如何在Excel中显示列数字
默认情况下,Excel使用A1参考样式,用字母标注列标题,用数字标注行。 要想获得用数字标注的列,将默认的参考样式从A1改为R1C1。 下面是方法。
- 在你的Excel中,点击 文件 > 选项 .
- 在 Excel选项 对话框,选择 公式 在左边的窗格中。
- 隶属 使用公式的工作 ,检查 R1C1参考样式 框,并点击 认可 .
列标签将立即从字母变为数字。
请注意,选择这个选项不仅会改变列的标签--单元格地址也会从A1变为R1C1,其中R表示 "行",C表示 "列"。 例如,R1C1指的是第1行第1列的单元格,它对应于A1的引用。 R2C3指的是第2行第3列的单元格,它对应于C2引用。
在现有公式中,单元格引用将自动更新,而在新公式中,你必须使用R1C1引用样式。
提示:对 恢复到A1风格 ,取消勾选 R1C1参考样式 中的复选框 Excel选项 .
如何在Excel中对列进行编号
如果你不习惯R1C1的引用方式,想在公式中保留A1的引用,那么你可以在我们工作表的第一行插入数字,这样你就同时拥有了--列字母和数字。 这可以在自动填充功能的帮助下轻松完成。
以下是详细的步骤。
- 在A1中,输入数字1。
- 在B1,输入数字2。
- 选择A1和B1单元格。
- 将光标悬停在B1单元格右下角的一个小方块上,该方块被称为 填充手柄 当你这样做时,光标会变成一个粗黑的十字。
- 向右拖动填充手柄,直到你需要的那一列。
因此,你将保留作为字母的列标,而在字母的下面,你将有列号。
提示:为了在滚动到工作表下面的区域时保持列的数字,你可以冻结顶行。
这就是在Excel中返回列号的方法。 感谢你的阅读,期待下周在我们的博客上见到你
供下载的实践工作手册
Excel列号--实例(.xlsm文件)