您可以使用COLUMN函数轻松确定单元格的数字列。您需要做的就是将这样的公式放在单元格中,结果是A = 1,B = 2等的值:

=COLUMN()

如果您想要字母值而不是数字值怎么办?这可以通过几种不同方式中的任何一种来完成。例如,以下公式对于A到Z的前26列非常有效:

=CHAR(COLUMN()+64)

这是有效的,因为字母A到Z使用字符代码65到90。当COLUMN返回A到Z列的值(1到26)时,可以将其添加到64以获取这些列的字母65到90。

||||当然,如果您想知道Z以外的列的字母名称,则此解决方案将不起作用。由于Excel中的列最多可以包含三位数字(Excel可以通过XFD使用最多的列),因此有另一种查找列的方法字母顺序:

=LEFT(ADDRESS(1,COLUMN(),4),LEN(ADDRESS(1,COLUMN(),4))-1)

ADDRESS函数返回特定单元的地址。在这种情况下,它将返回当前列第一行中单元格的地址。因此,如果该公式位于单元格BF27中,则它将返回BF1。

该公式使用LEFT函数返回地址中最左边字符的正确数量,减去该行的数字1。

该公式的更短版本依赖于SUBSTITUTE函数而不是LEFT函数:

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")

当然,如果需要,您也可以使用基于宏的解决方案。以下宏将与一,二或三个字符列一起使用:

Function AlphaCol(c As Range) As String     Dim sTemp As String     Dim ad1 As String

ad1 = c.Address     sTemp = Mid(ad1, InStr(ad1, "$") + 1, InStr(2, ad1, "$") - 2)

AlphaCol = sTemp End Function

宏是用户定义的函数,这意味着您只需将其添加到任何单元格即可在工作表中使用它:

=AlphaCol(J12)

函数调用中引用的单元格是您想知道其字母的列中的单元格(任何单元格)。该函数查找该单元格的地址,并去除除列名称之外的所有内容。返回一个由列名称组成的文本字符串。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9240)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Alphabetic_Column_Designation [字母列指定]。