2013-03-21 4 views
0

Мне нужно сделать новый код продукта для 6000+ записей. Чтобы сделать это быстро и расшифровать его в будущем, мне нужно поместить формулу из старого кода в новый код.excel добавление 1 на все буквенно-цифровые строки

выборочные коды:

yas111 
bd224 
sax112 
sd00015 
sp00114 

Если моя формула +1, конечный результат shoulb быть:

zbt222 
ce335 
tby223 
te11126 
tq11225 

номер будут +1, а буквы увеличивают к следующей букве алфавита , Я попытался заменить функцию, ее работу. но он не может читать оба, если есть номер, который уже используется. Пример:

Substitute(substitute(a1,"0","5"),"5","0") 

Это только для чтения 1. результат будет

0 = 0 
5 = 0 

, но я стараюсь, чтобы получить этот результат:

0 = 5 
5 = 0 
+0

Как вы можете быть уверены, что они не будут сталкиваться с существующими кодами? –

+1

Что будет после zzz999? – teylyn

ответ

1

Чтобы сделать это в чистой формуле первенствовать будет по-моему неуправляемо комплекса. Лучше всего было бы ти Используйте 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 ->[

+0

Спасибо, мой плохой .. 9 должно быть 0. возможно, должно быть исключение для 9 и z. как бы я это сделал? –

+0

Просто отделите бит 'asc (...)', проверьте его для предельных случаев и верните требуемый символ. Дайте ему пойти и отправить обратно, если вы застряли –

+0

Я не знаю, как использовать vba udf. Я не программист. Я попробовал, но не могу понять. Вы можете мне помочь? или можно ли разместить здесь файл? –

0

Что вам нужно, это один символ который никогда не будет использоваться. Предположим, что это &.

Вооруженный с этим никогда не используется символ, то вы можете сделать это следующим образом:

изменить все ваши Заболоцкого к &.
Изменить все ваши Y-х до Z.
Изменение всех ваших крестиков на Y.
Изменить все ваши W-х в X.
.
. и т.п. и т.п.
.
Изменить все ваши & «с 0.

+0

Я полагаю, что кто-то отказал мне по уважительной причине ...? –

+0

Спасибо за помощь. Но не работает ... Когда я назначил w на x и x на y. результат для этого был w = y x = y –

+1

Вы должны сделать это в обратном порядке. Как только вы измените все Z на &, вы знаете, что нет Z. Поэтому безопасно менять Y на Z.Тогда нет Y, поэтому вы можете изменить X на Y. и т. д. Как только вы закончите, вы можете изменить те, которые раньше были Z, в то, что вы на самом деле хотели. –