Извлечение чисел из ячейки в Excel - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть столбец, в котором ячейки содержат номера телефонов в следующем формате:

To: +6112312414 Will Smith To: +61832892357 Tom Hopkins To: +447857747717 Julius Caesar

Или

From: +44712423110 Jack Russel To: 112312414 Mr XYZ To: +61832892357 Hulk

Мне нужно извлечь номера телефонов получателей в отдельный столбецимена не требуются, например,

+6112312414, +61832892357, +447857747717 для первого примера и 112312414, +61832892357 для второго примера.Может кто-нибудь, пожалуйста, помогите с этим?Спасибо!

Ответы [ 5 ]

0 голосов
/ 26 сентября 2018

Сначала вы должны преобразовать ячейку в столбцы, после чего вы должны перейти в пустую ячейку и написать эту команду = B1 & "" & "," & "" & F1 & "" & "," & "" &J1

эта команда для вашего первого примера, потому что ссылочные ячейки в команде содержат числа, если вы хотите применить ту же команду, просто измените ссылочную ячейку, как вы хотите enter image description here

0 голосов
/ 26 сентября 2018

Использовать TEXTJOIN в качестве массива

=TEXTJOIN(", ",TRUE,IF(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$1:INDEX(A:A,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*99+1,99))="To:",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$1:INDEX(A:A,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99)),""))

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

TEXTJOIN был представлен в Office365 Excel

enter image description here

0 голосов
/ 26 сентября 2018

Выберите пустую ячейку рядом со списком, для которого вы хотите извлечь только число, и введите следующую формулу =SUMPRODUCT(MID(0&A2,LARGE(INDEX(ISNUMBER(--MID(A2,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10)

(A2 обозначает первые данные, которые вы хотите извлечь только из списка из чисел),затем нажмите Shift + Ctrl + Enter и перетащите маркер заполнения, чтобы заполнить диапазон, необходимый для применения этой формулы.

0 голосов
/ 26 сентября 2018

Попробуйте следующую пользовательскую функцию:

Public Function PhoneList(st As String) As String
    Dim v As String
    PhoneList = ""
    v = Replace(st, "To: ", Chr(1))
    arr = Split(v, " ")
    For Each a In arr
        If InStr(a, Chr(1)) > 0 Then
            PhoneList = PhoneList & ", " & a
        End If
    Next a
    PhoneList = Replace(PhoneList, Chr(1), "")
    PhoneList = Mid(PhoneList, 3, 9999)
End Function

enter image description here

0 голосов
/ 26 сентября 2018

Вы можете извлечь данные из столбца, используя текст в столбец.Примените другой метод и выберите двоеточие для извлечения:.Тогда у вас останется «пробел» + число ... обратите внимание, что пробел обозначает только один пробел.Затем используйте столбец замены всех, чтобы удалить пробел, и у вас останется только число +.

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