заменить буквы на следующую по алфавиту
AlvesHugo
Дата: Понедельник, 24.04.2017, 20:15 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
буквы на следующую букву заменить АБВ = БВГ ЯЭ = АЮ СТУФ = ТУФХ должны измениться
буквы на следующую букву заменить АБВ = БВГ ЯЭ = АЮ СТУФ = ТУФХ должны измениться AlvesHugo
Ответить
Сообщение буквы на следующую букву заменить АБВ = БВГ ЯЭ = АЮ СТУФ = ТУФХ должны измениться Автор - AlvesHugo Дата добавления - 24.04.2017 в 20:15
AlexM
Дата: Понедельник, 24.04.2017, 20:56 |
Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
1. нужен ваш файл с примером. 2. название темы не соответствует задаче. 3. максимальное количество букв в строке
1. нужен ваш файл с примером. 2. название темы не соответствует задаче. 3. максимальное количество букв в строке AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение 1. нужен ваш файл с примером. 2. название темы не соответствует задаче. 3. максимальное количество букв в строке Автор - AlexM Дата добавления - 24.04.2017 в 20:56
Michael_S
Дата: Понедельник, 24.04.2017, 21:02 |
Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация:
373
±
Замечаний:
0% ±
Excel2016
AlexM , для AlvesHugo , можно сделать скидку - "Страна: Эль Сальвадор" Кроме файла-примера
AlexM , для AlvesHugo , можно сделать скидку - "Страна: Эль Сальвадор" Кроме файла-примераMichael_S
Ответить
Сообщение AlexM , для AlvesHugo , можно сделать скидку - "Страна: Эль Сальвадор" Кроме файла-примераАвтор - Michael_S Дата добавления - 24.04.2017 в 21:02
AlvesHugo
Дата: Понедельник, 24.04.2017, 21:10 |
Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
ТЕКСТ МОЖЕТ БЫТЬ ДОЛГО A1 = АБВ = СИМВОЛ(КОДСИМВ(ПСТР(A1;1;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;2;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;3;1))+1)
ТЕКСТ МОЖЕТ БЫТЬ ДОЛГО A1 = АБВ = СИМВОЛ(КОДСИМВ(ПСТР(A1;1;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;2;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;3;1))+1) AlvesHugo
Сообщение отредактировал AlvesHugo - Понедельник, 24.04.2017, 21:11
Ответить
Сообщение ТЕКСТ МОЖЕТ БЫТЬ ДОЛГО A1 = АБВ = СИМВОЛ(КОДСИМВ(ПСТР(A1;1;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;2;1))+1)&СИМВОЛ(КОДСИМВ(ПСТР(A1;3;1))+1) Автор - AlvesHugo Дата добавления - 24.04.2017 в 21:10
gling
Дата: Понедельник, 24.04.2017, 23:45 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2575
Репутация:
713
±
Замечаний:
0% ±
2010
Можно наверно сразу написать UDF, но я не умею. Макросы должны быть включены.
Можно наверно сразу написать UDF, но я не умею. Макросы должны быть включены. gling
ЯД-41001506838083
Сообщение отредактировал gling - Понедельник, 24.04.2017, 23:57
Ответить
Сообщение Можно наверно сразу написать UDF, но я не умею. Макросы должны быть включены. Автор - gling Дата добавления - 24.04.2017 в 23:45
AlexM
Дата: Вторник, 25.04.2017, 00:53 |
Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
[vba]Код
Function Char_incr(iString As String) As String Dim a() As Byte, b(), i As Long a() = StrConv(iString, vbFromUnicode) ReDim Preserve b(0 To UBound(a)) On Error Resume Next 'если в строке будет буква я For i = 0 To UBound(a) b(i) = Chr(a(i) + 1) Next Char_incr = Join(b, "") End Function
[/vba]
[vba]Код
Function Char_incr(iString As String) As String Dim a() As Byte, b(), i As Long a() = StrConv(iString, vbFromUnicode) ReDim Preserve b(0 To UBound(a)) On Error Resume Next 'если в строке будет буква я For i = 0 To UBound(a) b(i) = Chr(a(i) + 1) Next Char_incr = Join(b, "") End Function
[/vba] AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Вторник, 25.04.2017, 00:54
Ответить
Сообщение [vba]Код
Function Char_incr(iString As String) As String Dim a() As Byte, b(), i As Long a() = StrConv(iString, vbFromUnicode) ReDim Preserve b(0 To UBound(a)) On Error Resume Next 'если в строке будет буква я For i = 0 To UBound(a) b(i) = Chr(a(i) + 1) Next Char_incr = Join(b, "") End Function
[/vba] Автор - AlexM Дата добавления - 25.04.2017 в 00:53
buchlotnik
Дата: Вторник, 25.04.2017, 00:59 |
Сообщение № 7
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
AlexM , Алексей, но ведь в этом варианте не получится;AlvesHugo , поясните, что делать с Ё ? и буквы всегда заглавные?
AlexM , Алексей, но ведь в этом варианте не получится;AlvesHugo , поясните, что делать с Ё ? и буквы всегда заглавные?buchlotnik
Сообщение отредактировал buchlotnik - Вторник, 25.04.2017, 01:03
Ответить
Сообщение AlexM , Алексей, но ведь в этом варианте не получится;AlvesHugo , поясните, что делать с Ё ? и буквы всегда заглавные?Автор - buchlotnik Дата добавления - 25.04.2017 в 00:59
Светлый
Дата: Вторник, 25.04.2017, 07:46 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1853
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Пример решения без VBA с итерациями. Сброс - A1=0, Замена - A1=1:Код
=ЕСЛИ(A$1;ЕСЛИ(ДЛСТР(B2)<ДЛСТР(A2);B2&СИМВОЛ(КОДСИМВ(ПСТР(A2;ДЛСТР(B2)+1;1))+1-(ПСТР(A2;ДЛСТР(B2)+1;1)="Я")*32);B2);"")
Буква "ё" не учитывается, но можно нагромоздить формулу.
Пример решения без VBA с итерациями. Сброс - A1=0, Замена - A1=1:Код
=ЕСЛИ(A$1;ЕСЛИ(ДЛСТР(B2)<ДЛСТР(A2);B2&СИМВОЛ(КОДСИМВ(ПСТР(A2;ДЛСТР(B2)+1;1))+1-(ПСТР(A2;ДЛСТР(B2)+1;1)="Я")*32);B2);"")
Буква "ё" не учитывается, но можно нагромоздить формулу. Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Пример решения без VBA с итерациями. Сброс - A1=0, Замена - A1=1:Код
=ЕСЛИ(A$1;ЕСЛИ(ДЛСТР(B2)<ДЛСТР(A2);B2&СИМВОЛ(КОДСИМВ(ПСТР(A2;ДЛСТР(B2)+1;1))+1-(ПСТР(A2;ДЛСТР(B2)+1;1)="Я")*32);B2);"")
Буква "ё" не учитывается, но можно нагромоздить формулу. Автор - Светлый Дата добавления - 25.04.2017 в 07:46
AlexM
Дата: Вторник, 25.04.2017, 08:40 |
Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
buchlotnik , можно поменять строку b(i) = Chr(a(i) + 1) на b(i) = UCase(Chr(a(i) + 1)) С Ё не работает.
buchlotnik , можно поменять строку b(i) = Chr(a(i) + 1) на b(i) = UCase(Chr(a(i) + 1)) С Ё не работает.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение buchlotnik , можно поменять строку b(i) = Chr(a(i) + 1) на b(i) = UCase(Chr(a(i) + 1)) С Ё не работает.Автор - AlexM Дата добавления - 25.04.2017 в 08:40
buchlotnik
Дата: Вторник, 25.04.2017, 17:23 |
Сообщение № 10
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
AlexM , Алексей, я лишь обратил внимание, что Я должна обратно в А переходить. Сам вот такую конструкцию соорудил: [vba]Код
Function preobr$(t$) Dim i%, j%, chars() As Byte, codes() chars() = StrConv(t, 128) j = UBound(chars) ReDim codes(0 To j) For i = 0 To j codes(i) = Chr(((chars(i) - 191) Mod 32) + 192) Next preobr = Join(codes, "") End Function
[/vba] но она соответственно только для верхнего регистра (точнее нижний в верхний перекидывает) и без Ё. Эти вопросы я ТС и адресовал
AlexM , Алексей, я лишь обратил внимание, что Я должна обратно в А переходить. Сам вот такую конструкцию соорудил: [vba]Код
Function preobr$(t$) Dim i%, j%, chars() As Byte, codes() chars() = StrConv(t, 128) j = UBound(chars) ReDim codes(0 To j) For i = 0 To j codes(i) = Chr(((chars(i) - 191) Mod 32) + 192) Next preobr = Join(codes, "") End Function
[/vba] но она соответственно только для верхнего регистра (точнее нижний в верхний перекидывает) и без Ё. Эти вопросы я ТС и адресовалbuchlotnik
Ответить
Сообщение AlexM , Алексей, я лишь обратил внимание, что Я должна обратно в А переходить. Сам вот такую конструкцию соорудил: [vba]Код
Function preobr$(t$) Dim i%, j%, chars() As Byte, codes() chars() = StrConv(t, 128) j = UBound(chars) ReDim codes(0 To j) For i = 0 To j codes(i) = Chr(((chars(i) - 191) Mod 32) + 192) Next preobr = Join(codes, "") End Function
[/vba] но она соответственно только для верхнего регистра (точнее нижний в верхний перекидывает) и без Ё. Эти вопросы я ТС и адресовалАвтор - buchlotnik Дата добавления - 25.04.2017 в 17:23
RAN
Дата: Вторник, 25.04.2017, 19:52 |
Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Вот за что я Select Case люблю. [vba]Код
Function q$(s$) Dim i& For i = 1 To Len(s) Select Case Asc(Mid$(s, i, 1)) Case 192 To 196, 198 To 222: Mid(s, i, 1) = Chr(Asc(Mid$(s, i, 1)) + 1) Case 197: Mid(s, i, 1) = Chr(168) Case 168: Mid(s, i, 1) = Chr(198) Case 223: Mid(s, i, 1) = Chr(192) End Select Next q = s End Function
[/vba]
Вот за что я Select Case люблю. [vba]Код
Function q$(s$) Dim i& For i = 1 To Len(s) Select Case Asc(Mid$(s, i, 1)) Case 192 To 196, 198 To 222: Mid(s, i, 1) = Chr(Asc(Mid$(s, i, 1)) + 1) Case 197: Mid(s, i, 1) = Chr(168) Case 168: Mid(s, i, 1) = Chr(198) Case 223: Mid(s, i, 1) = Chr(192) End Select Next q = s End Function
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Вот за что я Select Case люблю. [vba]Код
Function q$(s$) Dim i& For i = 1 To Len(s) Select Case Asc(Mid$(s, i, 1)) Case 192 To 196, 198 To 222: Mid(s, i, 1) = Chr(Asc(Mid$(s, i, 1)) + 1) Case 197: Mid(s, i, 1) = Chr(168) Case 168: Mid(s, i, 1) = Chr(198) Case 223: Mid(s, i, 1) = Chr(192) End Select Next q = s End Function
[/vba] Автор - RAN Дата добавления - 25.04.2017 в 19:52