Формула Excel для дополнительных данных из странно отформатированного списка - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть .csv с номерами телефонов, и я хотел бы извлечь конкретную информацию из столбца, чтобы я мог импортировать ее в другую программу.

По сути, данные - это номера телефонов, которые просматриваютсясписок DNC - но телефонные номера выглядят так:

9995551212, 1234567890 DNC, 4432325555

Итак, первый и последний номера безопасны для вызова, средний номер следует удалить..

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

Честно говоря, я не знаю, как это сделать.

Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Извлечение номера телефона (UDF)

Скопируйте следующий код в стандартный модуль (в VBE: Insert>Add Module).

Параметры 2-го (", *Аргументы 1007 * ") и 3-й (" ,") настраиваются (по умолчанию) для вашего удобства, но могут быть изменены.

Код

Function EPN(SourceString As Variant, Optional ByVal SplitDelimiter = ",", _
        Optional ByVal JoinDelimiter = ", ") As String

    Dim strC As String    ' Current String
    Dim strT As String    ' Target String
    Dim vntS As Variant   ' String Array
    Dim i As Long         ' String Array Element Counter

    ' Split Source String to String Array.
    vntS = Split(CStr(SourceString), SplitDelimiter)
    ' Loop through elements of String Array.
    For i = 0 To UBound(vntS)
        ' Write current element of String Array to Current String.
        strC = Trim(vntS(i))
        ' Check if current string is 'recognized' as a number.
        If IsNumeric(strC) Then
            ' Check if Target String is not empty ("").
            If strT <> "" Then  ' Target String is NOT empty.
                ' Concatenate current Target String, Join Delimiter _
                ' and Current String.
                strT = strT & JoinDelimiter & strC
              Else              ' Target String IS empty (only once).
                ' Write Current String to Target String.
                strT = strC
            End If
        End If
    Next
    ' Write Target String to EPN (Extract Phone Number).
    EPN = strT

End Function

ИспользованиеВ Excel

Используйте, например, =EPN(A1) и скопируйте вниз.

=EPN("asdfasf, 9999,234324 ,234DNC5342,erter,E234,dsfa")

приведет к 9999, 234324.

0 голосов
/ 25 февраля 2019

Попробуй

=if(iferror(find("dnc",A1,1),0)>0,"",A1)

Так что find ищет dnc, если найдет его, тогда если ставит пробел.

enter image description here

Редактировать, читая комментарий, если данные представляют собой просто текст в одной ячейке, то «текст в столбцы» будет извлечен ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...