Excel-栏号和栏名互转(CODE,MID,ADDRESS,SUBSTITUTE)

在 Excel 中以栏名列号当为单元格名称,如果想要根据栏的名称转换为栏的数值,该如何处理?(参考下图)


Excel-栏号和栏名互转(CODE,MID,ADDRESS,SUBSTITUTE)

【公式设计与解析】

参考下图,在 Excel 中是以A~Z、AA~AZ、BA~BZ、...为栏名的顺序。栏的数值为A=1、B=2、C=3、...、AA=27栏。

Excel-栏号和栏名互转(CODE,MID,ADDRESS,SUBSTITUTE)

所以,XEZ:第 16380 栏;XFD:第 16384 栏

Excel-栏号和栏名互转(CODE,MID,ADDRESS,SUBSTITUTE)

1. 计算栏名对应的数值

单元格C2:=SUM((CODE(MID(A2,{1,2,3},1))-64)*26^{2,1,0})

(1)MID(A2,{1,2,3},1)

本例使数组来简化公式,利用 MID 函数找出单元格A2中的第 1, 2, 3 个字。

(2) CODE(MID(A2,{1,2,3},1))

找出单元格A2中每个字的ASCII码。

(3) CODE(MID(A2,{1,2,3},1))-64

将上式减64,可得A=1、B=2、C=3、...。

(4) (CODE(MID(A2,{1,2,3},1))-64)*26^{2,1,0}

将第1码X26^2,将第2码X26^1,将第3码X26^0。

最后利用 SUM 函数予以加总,即为所求。

2. 计算数值对应的栏名

单元格G2:=SUBSTITUTE(ADDRESS(1,E2,4),1,"")

(1) ADDRESS(1,E2,4)

ADDRESS 函数可以自动转换数值为栏名,本例参数 1 会传回列号为 1 的单元格地址。

(2) SUBSTITUTE(ADDRESS(1,E2,4),1,"")

利用 SUBSTITUTE 函数将列号 1 置换为空字符串("")。

Excel-栏号和栏名互转(CODE,MID,ADDRESS,SUBSTITUTE)


分享到:


相關文章: