String excel在所有字母数字字符串上添加1

String excel在所有字母数字字符串上添加1,string,excel,sum,formula,alphanumeric,String,Excel,Sum,Formula,Alphanumeric,我需要为6000多条记录创建一个新的产品代码。为了快速完成这项工作并在将来破译它,我需要将一个公式从旧代码转换为新代码 示例代码: yas111 bd224 sax112 sd00015 sp00114 如果我的公式是+1,最终结果应该是: zbt222 ce335 tby223 te11126 tq11225 数字将+1,字母将增加到字母表的下一个字母。 我尝试了替代函数,它起作用了。但如果已经使用了一个数字,则不能同时读取这两个数字。例如: Substitute(substitut

我需要为6000多条记录创建一个新的产品代码。为了快速完成这项工作并在将来破译它,我需要将一个公式从旧代码转换为新代码

示例代码:

yas111
bd224
sax112
sd00015
sp00114
如果我的公式是+1,最终结果应该是:

zbt222   
ce335
tby223
te11126
tq11225
数字将+1,字母将增加到字母表的下一个字母。 我尝试了替代函数,它起作用了。但如果已经使用了一个数字,则不能同时读取这两个数字。例如:

Substitute(substitute(a1,"0","5"),"5","0")
它将只显示1。 结果将是

0 = 0
5 = 0
但我试图得到这个结果:

0 = 5
5 = 0

你需要的是一个永远不会被使用的字符。假设它是
&

有了这个从未使用过的角色,你可以这样做:

将所有Z更改为&.
将所有Y更改为Z。
将所有X更改为Y。
将所有W更改为X。
.
. 等等等等,
.

将所有的&’更改为0。

在纯excel公式中执行此操作在我看来将非常复杂。最好的方法是使用vba
UDF

Function IncrCode(rng As Range) As Variant
    Dim strOld As String, strNew As String
    Dim i As Long

    strOld = rng.Cells(1, 1).Value
    strNew = ""
    For i = 1 To Len(strOld)
        strNew = strNew & Chr$(Asc(Mid$(strOld, i, 1)) + 1)
    Next
    IncrCode = strNew
End Function
这样说吧

=IncrCode(A1)
如果
A1
=
yas111
结果将是
zbt222

请注意,根据您的问题,所有字符都会增加到下一个ascii字符,例如
9
-->

z
-->
{


Z
-->
[

您如何确保它们不会与现有代码冲突?之后ZZ999会是什么?谢谢您的帮助。但不起作用…当我将w分配给x,x分配给y时。结果是w=y x=YY,您必须按相反的顺序执行。一旦您将所有Z更改为&'s,您就知道没有Z。因此,将y更改为Z是安全的。那么就没有Y了,所以你可以把X改成Y。等等。一旦你完成了,你可以把那些曾经是Z的&’改成你真正想要的。谢谢,我的错..9应该是0。也许9和Z应该有例外。我该怎么做?只需将
asc(…)分开
bit,测试它的极限情况并返回所需的字符。如果你遇到Stuck,请尝试并发回。我不知道如何使用vba udf。我不是程序员。我尝试过,但无法理解。你能帮我吗?或者你能在这里发布文件吗?工作!!谢谢你Chris Neilsen!我用替代函数代替z a钕磷