Excel - Обрежьте текст после того, как он найдет комбинацию цифр, за которыми следует буквенный символ

Как обрезать приведенный ниже текст, содержащий буквенно-цифровые символы, а также описание.

Пример текста: BACA-AA01A-withsomediscription, BACA-AA01Bс некоторым описанием

Каждый код заканчивается комбинацией цифр и букв. «BACA-AA01A», «BACA-AA01B». ПОЭТОМУ МНЕ НУЖНА ФОРМУЛА EXCEL, ГДЕ Я МОГУ ОБРЕЗАТЬ ТЕКСТ ПОСЛЕ НАЙДЕНИЯ КОМБИНАЦИИ ЦИФРОВЫХ И АЛФАВНЫХ.

Всегда ли в коде стоит один символ после числа? Это фиксированная длина? Не могли бы вы просто вырезать код, используя команду «Данные, текст в столбцы» и выбрав фиксированную длину?

Harassed Dad 17.12.2018 11:22

Я могу обрезать или использовать формулу LEFT, если код заканчивается той же фиксированной длиной, но длина кода составляет от 9 до 16. и да, он всегда будет заканчиваться одним символом после числа.

Ashish 17.12.2018 11:27
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
46
2

Ответы 2

Вот функция - вставьте это на страницу модуля, и вы можете использовать функцию в электронных таблицах.

Public Function Leftish(s As String)
'returns first n chars which fit pattern *nn?
Dim x As Long
Dim flag As Boolean
Dim a As String
For x = 1 To Len(s)
    a = a & Mid(s, x, 1)
    If IsNumeric(Right(a, 1)) Then flag = True
    If (flag And Not IsNumeric(Right(a, 1))) Then Exit For
Next x
Leftish = a

End Function

превосходный мужчина, невероятный, это именно то, что я ищу. Спасибо. После этого я хочу изучить VBA. Не могли бы вы предложить мне учебные ресурсы или онлайн-курс, где я могу получить прочную основу для VBA?

Ashish 17.12.2018 11:43

Приведенный выше код по-прежнему помогает мне без каких-либо проблем, продолжая задавать тот же вопрос, могу ли я получить описание или что-то еще после кода продукта в отдельную ячейку рядом с кодом продукта, который ваш VBA обрезает в соответствии с приведенным выше кодом. Пример. У меня есть код продукта «BACA-AA01Bwithsomediscription», и теперь ваш код VBA может извлекать «BACA-AA01B», но мне также нужна следующая оставшаяся часть без пробела в начале, если таковая имеется в следующем столбце «withsomediscription»

Ashish 27.02.2019 10:41

Если у вас есть указанная выше функция в ячейке D1 и текст в C1, то в ячейке E1 вы можете использовать = RIGHT (C1, LEN (C1) -Len (D1)), чтобы получить остаток

Harassed Dad 28.02.2019 11:43

В этом примере мы используем Shee1, и данные отображаются в столбце A. Пытаться:

Option Explicit

 Sub Test()

    Dim Lastrow As Long, i As Long
    Dim WholeString As String, Part1 As String, Part2 As String

   'Use Sheet1
    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 2 To Lastrow
            'Clean and trim the whole string
            WholeString = Application.Clean(Application.Trim(.Range("A" & i).Value))
            'Get the firts 10 characters because BACA-AA01A & BACA-AA01B has ten characters each
            Part1 = Application.Clean(Application.Trim(Left(WholeString, 10)))
            .Range("B" & i).Value = Part1
            'Get the remain characters
            Part2 = Application.Clean(Application.Trim(Mid(WholeString, 11, Len(WholeString) - 10)))
            .Range("C" & i).Value = Part2
        Next i

    End With

 End Sub

Вывод:

Другие вопросы по теме