0

我需要为 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
4

2 回答 2

1

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

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-->[

于 2013-03-21T05:48:37.060 回答
0

您需要的是永远不会使用的单个字符。假设它是&.

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

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

将所有 & 更改为 0。

于 2013-03-21T04:10:28.107 回答