Страницы: 1
RSS
Выбрать номера телефонов из строки
 
Всем привет. Вопрос такой : имеется столбец с числами, между рандомными числами спрятаны номера телефонов. Как я могу отсортировать таблицу, чтобы она мне выдавала только номера телефона. Как я подумал нужно задать "удалить все числа в строке, кроме девяти цифр после 89 и +79"
Изменено: pikarujke - 19.02.2016 00:41:56
 
Вы не только номера телефонов спрятали, но и файл заныкали :)
 
вот пример
 
=ЕСЛИ(ИЛИ(И(ЛЕВСИМВ(A7;2)="89";ДЛСТР(A7)=11);И(ЛЕВСИМВ(A7;3)="+79";ДЛСТР(A7)=12));A7;"нас дурят, это не телефон")
 
Код
=ЕСЛИ(ИЛИ(И(ЛЕВСИМВ(A1;2)="89";ДЛСТР(A1)=11);И(ЛЕВСИМВ(A1;3)="+79";ДЛСТР(A1)=12));A1;"")
Изменено: Sanja - 19.02.2016 00:38:16
Согласие есть продукт при полном непротивлении сторон
 
Неправильно мы подумали. Название темы: выбрать из строки!
=ЕСЛИ(ЕЧИСЛО(ПОИСК("89?????????";A1));ПСТР(A1;ПОИСК("89";A1);11);ЕСЛИ(ЕЧИСЛО(ПОИСК("+79?????????";A1));ПСТР(A1;ПОИСК("+79";A1);12);"увы"))
 
Спасибо, получилось. Такой вопрос ещё, а как мне удалить все строчки лишние теперь, чтобы оставить только номера. И удалить повторяющиеся?) И все эти номера были заданы не формулой, а цифрами, для дальнейшего редактирования.
Изменено: pikarujke - 19.02.2016 00:58:17
 
Фильтр по полученному столбцу, копировать видимые в другое место.

Цитата
И все эти номера были заданы не формулой, а цифрами,
Выделить, копировать, вставить как значения
 
у меня получился столбик из кучи номеров с 8,7 и в промежутках "увы" :) вот мне бы убрать строчки "увы".
 
А это что?
Цитата
удалить все числа в строке, кроме девяти цифр после 89 и +79
 
я проверил, в строчке где имеется +7, он на выходе даёт просто номер с 79...., всё в порядке с этим.
 
Цитата
мне бы убрать строчки "увы"
Уберите слово из формулы, оставьте пустую строку "".
Фильтр по столбцу (не пустые)
 
добрый день,только прочитал Вашу тему,вариант функции и макрос ,кнопка test
Код
Function yyy$(t$)
    With CreateObject("VBScript.RegExp"): .Pattern = "(\+79|89)(\d{9})"
       If .test(t) Then yyy = .Execute(t)(0).Submatches(1)
    End With
End Function
Изменено: sv2013 - 19.02.2016 09:55:24
 
Цитата
vikttur написал:  =ЕСЛИ(ЕЧИСЛО(ПОИСК("89?????????";A1));ПСТР(A1;ПОИСК("89";A1);11);ЕСЛИ(ЕЧИСЛО(ПОИСК("+79?????????";A1));ПСТР(A1;ПОИСК("+79";A1);12);"увы"))
Подскажите, а если в строке два сотовых номера, как формулу исправить. А то ищет только первый.
Изменено: vikttur - 26.07.2021 21:30:50
 
Пример надо показывать
 
Не смог таблицу прикрепить с одной строкой, ограничение 100 кб
 
Павел гер, файл с данными только в 2ух ячейках весит гораздо меньше 100 кб
Разбирайтесь
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Для нескольких телефонов
Код
Function Telefon1(txt As String) As String
    Dim str1 As String, i As Byte
    With CreateObject("VBScript.RegExp"): .Pattern = "\+?[7-8](-|\s)?\(?\d{3}\)?(-|\s)?\d{3}((-|\s)?\d{2}){2}": .Global = True
        Set objMatches = .Execute(txt)
        For i = 0 To objMatches.Count - 1
            str1 = str1 & "; " & objMatches.Item(i).Value
        Next
    End With
    Telefon1 = Mid(str1, 3)
End Function
 
Удалил ниже строки и столбы, стал полегче. Спасибо
 
Ну раз пример есть, тогда так:
Изменено: msi2102 - 27.07.2021 16:39:23
 
Цитата
msi2102 написал:
Ну раз пример есть, тогда так:
Спасибо Вам огромное за уделенное время. Скачал файл, все работает.
Только вот с макросами не успел подружиться. Скопировал ваш код, создал новый макрос на своём файле, вставил в него Ваш код, а он выдает ошибку за ошибкой.
В вашем файл открываю раздел МАКРОСЫ а он пустой.
Поможете понять в чем дело? Скрин ошибки прикрепил.
 
Откуда там появилось это:
Код
Sub Telefon1()
Сравните две картинки (Вашу и мою) и найдите отличия
Изменено: msi2102 - 29.07.2021 15:29:57
 
Это появилось после запуска вашего кода, он просит ввести имя макроса.
Я ввожу имя, он прописывает его ниже вашего кода.
Но после этого макрос никак не запускается.
Я по просмотренным видео подумал, что его надо вставить вначале.
Изменено: vikttur - 29.07.2021 17:21:13
 
Это не макрос, это пользовательская функция, еë не нужно запускать, она вводится как обычная формула в ячейку
Код
=Telefon1(адрес ячейки) 
удалите полностью всë, что копировали и дописали. Скопируйте функцию в модуль из файла или сообщения и пользуйтесь на здоровье
Изменено: msi2102 - 29.07.2021 19:56:16
 
Спасибо ОГРОМНОЕ за науку. Все получилось.
Изменено: vikttur - 30.07.2021 11:57:52
Страницы: 1
Наверх