如何使用公式从 Excel 中的自定义列表中获取下一个值

如何使用公式从 Excel 中的自定义列表中获取下一个值

我需要从之前创建的列表中获取下一个值。自定义列表是字母“A、B、C....AA、AB、AC...”。当我从 B52:G52 应用它并在 B52 中写入“C”并将单元格拖到 G52 时,列表被应用,因此在 C52 = D、D52 = E ....

我如何通过公式知道下一个值是什么。如果我在 B52 中有“C”,那么在 C52 中的公式应该是“D”。

到目前为止,我有一个单元格 P1 包含字母“B”且单元格 B52=P1,并且在 C52 中有一个公式 =IF(C45; B52 + 1; ""),当单元格 C45 不为空(空白)时适用。

现在,如果我在 P1 中写入“C”,它会自动复制到 B52 中。当我在 C45 中写入内容时,单元格 C52 应该变为“D”。但“B52+1”部分是错误的。

感谢您的帮助。

答案1

如果你处理的是数字,那么使用B52+1就可以了,但是当你使用字母时,你需要使用CHAR()代码()函数,再加上在逻辑测试中只引用单元格C45而不定义要应用于单元格的测试,C45不会产生任何结果。要测试单元格是否C45为空,您需要进行逻辑测试C45<>""

如果你要从 AZ 开始,则需要将单元格中的公式更改C52

=IF(C45<>"",CHAR(CODE(B52)+1),"")

此公式的问题是,如果您使用此公式并经过下Z一个单元格,则会返回一个,[因为它使用了ASCII 字符集

当你想进一步从Z到时,AA你将需要一个更复杂的公式LEN()左边()正确的()功能。

因此单元格中的公式C52需要

=IF(C45<>"",IF(B52="Z","AA",IF(LEN(B52)=1,CHAR(CODE(B52)+1),(IF(RIGHT(B52)="Z",CHAR(CODE(LEFT(B52))+1)&"A",LEFT(B52)&CHAR(CODE(RIGHT(B52))+1))))),"")

这从到AZ从到ZAA然后给AAZZ

相关内容