如何使用Excel函数用列标签填充单元格?

时间:2018-08-20 06:21:01

标签: excel excel-formula

尊敬的成员,我想用列标签(例如,AA,AB,AC .... AZ,BA,BB等)填充单元格。但是,我一直在使用具有下拉功能的功能来实现此目的。经过试用,我得到的功能至少可以说很久。如果我使用这些公式保存excel文件,则excel的大小将很大。

在不牺牲太多文件大小的情况下,有人知道任何更有效的方法吗?

许多高级功能。 真的

这是我通过试用打乱的功能: = IFERROR(IF(LEN(A1)= 1,IF(IF((2 *(CODE(RIGHT(A1,1))))-32)/ 53 <> 4,IF((2 *(CODE(RIGHT(A1) ,1)))-32)/ 37 = 4,1,0),1)= 1,IF((2 *(CODE(RIGHT(A1,1)))-32)/ 53 <> 4,IF( (2 *(CODE(RIGHT(A1,1)))-32)/ 37 = 4,CHAR(ROW($ A $ 65)),CHAR(ROW(INDIRECT(“ A”&CODE(RIGHT(A1,1))) +1)))),CHAR(ROW($ A $ 97)))&IF((2 *(CODE(RIGHT(A1,1))))-32)/ 53 <> 4,IF((2 *(CODE( RIGHT(A1,1)))-32)/ 37 = 4,CHAR(ROW($ A $ 65)),CHAR(ROW(INDIRECT(“ A”&CODE(RIGHT(A1,1))+ 1)))))) ,CHAR(ROW($ A $ 97))),IF((2 *(CODE(RIGHT(A1,1))))-32)/ 53 <> 4,IF((2 *(CODE(RIGHT(A1,1) )))-32)/ 37 = 4,CHAR(ROW($ A $ 65)),CHAR(ROW(INDIRECT(“ A”&CODE(RIGHT(A1,1))+ 1))))),, CHAR(ROW( $ A $ 97))))),IF(IF((2 *(CODE(RIGHT(A1,1)))-32)/ 53 <> 4,IF((2 *(CODE(RIGHT(A1,1))) )-32)/ 37 = 4,1,0),1)= 1,CHAR(CODE(LEFT(A1,LEN(A1)))+ 1)&IF(LEN(A1)= 2,“”,CHAR( ROW(INDIRECT(“ A”&IF(CODE(RIGHT(LEFT(A1,LEN(A1)-1),1))= 90,ROW($ A $ 65),ROW($ A $ 97)))))))&CHAR (ROW($ A $ 97)),LEFT(A1,LEN(A1)-1)&IF((2 *(CODE(RIGHT(A1,1)))-32)/ 53 <> 4,IF((2 * (CODE(RIGHT(A1,1)))-32)/ 37 = 4,CHAR(ROW($ A $ 65)),CHAR(ROW(INDIRECT(“ A”&CODE(RIGHT(A1,1))+ 1) ))),CHAR(ROW($ A $ 97))))),“”)

1 个答案:

答案 0 :(得分:1)

根据您的评论,您希望基于A1单元格中的字母以字母顺序排列运行顺序(很抱歉,我没有下载任何文件,尽管您应该更适当地更新问题)。

这里有一个简短的公式应该做到这一点:

=LEFT(ADDRESS(1,ROW(A1),4,TRUE),(ROW(A1)>26)+1)

将其放在单元格A1中,并将其向下拖动。这将以“ A”开头,但是当您将ROW(A1)更改为ROW(A3)时,它将以“ C”开头。

如果要扩展到“ ZZ”以外,则必须将公式更改为:

=LEFT(ADDRESS(1, ROW(A1), 4, TRUE), (ROW(A1)>26)+(ROW(A1)>702)+1)

您可以在单元格A1中使用的另一个公式:

=SUBSTITUTE(ADDRESS(1,ROWS(A$1:A1),4),1,"")

在这里,如果您不想以“ A”开头,则可以将A$1:A1更改为A$1:A3,例如以“ C”开头。此公式的作用已经超出了“ ZZ”。