如何在 Excel 中添加、减去或增加列字母?

如何在 Excel 中添加、减去或增加列字母?

我正在寻找一个简单通用的公式,可以对列位置进行简单的数学运算,返回适当的列代码。例如:

  • 给定 A 列,设置为 +1,它应该返回
  • 给定 E 列,设置为 -2,它应该返回C
  • 给定 Y 列,设置为 +3,它应该返回AB
  • 给定列 BAA,设置为 -1,它应该返回亚兹
  • 给定 C 列,设置为 * 2,它应该返回F

它应该很容易修改,要么相对于它所在的列,要么采用硬编码的列字母,或者从公式中获取列字母


请注意,流行的公式=CHAR(CODE(A1)+1)在超出范围时不再起作用Z

答案1

这是迄今为止我发现的最好的:

=SUBSTITUTE(地址(1,(列() + 1),4),1,””)

中间以粗体标记的部分是唯一发生变化的部分。

在这个例子中,它取当前列并加 1,因此B如果它在列中则返回AAA如果它在列中则返回Z


示例变体

添加到固定列的示例(向 Z 列添加 2,返回“AB”):

=SUBSTITUTE(地址(1,(列(Z1) + 2),4),1,””)

示例:读取包含字母的单元格A1作为文本并将其视为列字母:

=SUBSTITUTE(地址(1,(列(间接(A1&1))+ 1),4),1,””)

A1示例读取包含以下内容的单元格数字被视为一列数字(例如,如果它包含 25,它将返回 AB):

=SUBSTITUTE(地址(1,(列(间接(A1&1))+ 1),4),1,””)


使用以下方式查找单元格indirect()

如果你的目标是查找单元格例如,使用indirect(),您可以跳过 ,substitute()只需输入行号即可。例如,如果您想查找当前单元格右侧的单元格(因此将单元格字母增加一个,并保持行不变):

=INDIRECT( ADDRESS( ROW(), ( COLUMN() + 1 ),4) )


基于部分原因是它有一个方便的公式,用于转置以获得一列列字母,每行递增。

答案2

最简单的方法是使用INDIRECTANDR1C1 引用样式

例如 =INDIRECT("R[1]C[1]",0)将引用+1 row+1 column来自当前单元格。

=INDIRECT("RC[3]",0)将向右移动三列,-3向左移动三列。

如果您愿意,可以使用一些concatenate或引用单元格来开始或增加:&

A1=INDIRECT("RC["&A2&"]",0)

A2 =1

B1 =x

那么 A1 =x

一旦你加入一些cell,它row就会变得更加复杂,但效果是一样的。columnaddress

相关内容