1

Я пытаюсь найти формулу для извлечения номеров счетов из ячеек, которые могут содержать дополнительную информацию. Номер счета всегда начинается с "A" или "U", а затем имеет 6 номеров, например, A123456 или U654321.

В ячейке может быть только номер счета или дополнительные данные, например, "ADT CASH DEPOSIT A235999" или "FNB APP PAYMENT FROM A230275"

2 ответа2

2

Это альтернативная функция, которая выполняет поиск в обратном направлении (первая буква, а не цифра), избегает поиска в местах, где число не может соответствовать, и делает это без учета регистра:

Public Function AccountNo(thiscell As Range) As String
    Dim numlen As Integer, cellText As String
    Dim i As Long, rest As String, firstletter As String

    AccountNo = ""
    numlen = 6
    cellText = thiscell.Text
    For i = 1 To Len(cellText) - numlen
        firstletter = UCase(Mid(cellText, i, 1))
        If (firstletter = "A" Or firstletter = "U") Then
            rest = Mid(cellText, i + 1, numlen)
            If IsNumeric(rest) Then
                AccountNo = firstletter & rest
                Exit Function
            End If
        End If
    Next i
End Function
1

Этот UDF определяет номер счета, независимо от того, где он находится:

Public Function accounts(cellText As String)
    accounts = ""
    numberlength = 6
    posText = 0
    lenText = Len(cellText)
    For i = 1 To lenText
        midText = Mid(cellText, i, numberlength)
        If IsNumeric(midText) = True Then
            posText = i
            letterText = Mid(cellText, posText - 1, 1)
            If (letterText = "A" Or letterText = "U") Then
                accounts = Mid(cellText, posText - 1, numberlength + 1)
                i = lenText
            End If
        End If
    Next i
End Function

Скопируйте код, откройте Visual Basic / Macros, в ThisWorkbook вставьте новый модуль и вставьте код с правой стороны.

Чтобы использовать его, если текст находится в ячейке A1 , то в ячейку B1 необходимо поставить =accounts(A1) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .