Страницы: 1
RSS
Преобразовать буквы строки в числа по алфавиту
 
Добрый день. Для формирования артикулов нужно некоторые символы переделать в уникальные числа.
Например, "абв" должно быть "123".
Нашел здесь такую формулу:
=ПОИСК(     ПСТР(B1;      СТРОКА(      ДВССЫЛ("1:"&ДЛСТР(B1))     );1);"абвгдеёжзийклмнопрстуфхцчшщъыьэюя")
Она выводит в столбец последовательно 1 2 3. Но как сделать так, чтобы все числа собирались в самой ячейке с формулой?
 
ruller, изучайте.
Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
 
Спасибо, изучил. Вы про то, что нужно таблицу соответствия букв и цифр? Я так просто не хочу, хочу одной формулой всё сделать.
 
Код
=ОБЪЕДИНИТЬ("";1;ПОИСК(ПСТР(B1;ПОСЛЕД(ДЛСТР(B1));1);"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"))
 
Цитата
написал:
Код=ОБЪЕДИНИТЬ("";1;ПОИСК(ПСТР(B1;ПОСЛЕД(ДЛСТР(B1));1);"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"))
Очень красиво! Спасибо большое.  
 
на случай если вы хотите функцию )))
Код
Function ConvertToNumericChars(rng As Range) As String
    Dim str As String
    Dim i As Long
    Dim j As Long
    Dim result As String
    Dim validChars As String
    validChars = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"

    ' Проходим по каждому символу в переданном диапазоне
    For i = 1 To Len(rng.Value)
        str = Mid(rng.Value, i, 1)
        ' Проверяем каждый символ на наличие в строке validChars
        For j = 1 To Len(validChars)
            If str = Mid(validChars, j, 1) Then
                ' Если найден соответствующий символ, добавляем его порядковый номер к результату
                result = result & j & "" 
                Exit For
            End If
        Next j
    Next i
    
    ' Удаляем последний пробел, если он есть
    If Right(result, 1) = " " Then
        result = Left(result, Len(result) - 1)
    End If
    
    ConvertToNumericChars = result
End Function
 
Цитата
ruller написал:
Например, "абв" должно быть "123".
а "кв" и "ах" тоже будут "123"...  ;)  :D  :D
Изменено: BodkhiSatva - 24.12.2024 16:33:35
 
Цитата
написал:
а "кв" и "ах" тоже будут "123"...      
Да, спасибо! Учел.
 
=СЦЕП(ЕСЛИОШИБКА(EXP(LN(КОДСИМВ(ПСТР(СТРОЧН(A1);ПОСЛЕД(ДЛСТР(A1));1))-223));""))
off
Цитата
Учел.
я один прочитал "У чел."?  )
Изменено: Павел \Ʌ/ - 14.03.2025 10:09:26
Страницы: 1
Читают тему
Наверх