Страницы: 1
RSS
Как выдернуть записи по ключевому полю из одной ячейки
 
Выгрузка лидов сайта происходит в экселевскую форму.
В одной заявке пользователь может выбрать заполнение различных вариантов - емэйлы, номера карт, ссылки на соцсети (сервис отслеживания утечек если что).
В выгрузке все данные занесены в одну ячейку.
Ключевые поля отделяются от значений :
Строчки разделены ;

Можно брать, засовывать в блокнот, потом обратно в ексель, там текст по столбцам - разделяет по двоеточию, соответственно там где ссылки https:// он тоже разделяет, надо потом обратно склеить. И если таких заявок несколько можно сидеть до седых волос.

Есть ли какой то более энергосберегающий способ выдернуть данные из одной ячейки, разделив их по назначению в разные столбцы просто?

Прикладываю пример выгрузки - ячейка в графе Доп.поле
 
Как есть пример - это хорошо. Еще бы показали - как надо. А то в столбце Доп.Поле стоят 3 адреса E-mail. Их, насколько я понял, надо разнести по разным столбцам. Каким? Их надо добавить? Куда? В начало/конец/середину?
А если в других полях тоже будут строки, которые надо разнести, то по каким столбцам это делать? Есть ли ограничение на максимальное количество доп.столбцов?
Ну и прочие мелочи... :)
Кому решение нужно - тот пример и рисует.
 
Цитата
Пытливый написал:
.Поле стоят 3 адреса E-mail.
Там 10 емейлов, 10 номеров карт и 10 адресов ссылок. Если встать на поле или раздвинуть, будет видно масштаб проблемы =)
Надо разбить на 3 столбика. Без ключевых полей Email 1, Email 2 и т.д. просто столбик с емейлами, столбик с номерами карт и столбик с адресами ссылок.
 
Цитата
Сергей Ки написал:
Строчки разделены ;
ну они скорее разделены переводом строки
Цитата
Сергей Ки написал:
где ссылки https:// он тоже разделяет,
так замените сперва ": " на что - то иное ведь пробела в HTTP:\\ нет. и по этому другом делите.
в целом
Цитата
Пытливый написал:
Еще бы показали - как надо

Цитата
Сергей Ки написал:
Если встать на поле или раздвинуть, будет видно масштаб проблемы =)
ну не скажу что это видно как проблему.
Изменено: БМВ - 13.10.2021 13:56:29
По вопросам из тем форума, личку не читаю.
 
Код
Option Explicit

Sub ВыделеннуюЯчейкуВмассив()
    ЯчейкуВмассив ActiveCell
End Sub

Sub ЯчейкуВмассив(Ячейка As Range)
    Dim arr As Variant
    arr = СтрокуВмассив(Ячейка.Value)
    If Not IsEmpty(arr) Then
        With Ячейка.Resize(UBound(arr, 1), UBound(arr, 2))
            .NumberFormat = "@"
            .Cells = arr
        End With
    End If
End Sub

Function СтрокуВмассив(Строка As String) As Variant
    If Строка <> "" Then
        Строка = Replace(Строка, "https:", "https#")
        Dim arr As Variant
        Dim brr As Variant
        Dim crr As Variant
        arr = Split(Строка, ";")
        ReDim brr(1 To UBound(arr) + 1, 1 To 2)
        Dim y As Long
        For y = 1 To UBound(brr, 1)
            If arr(y - 1) <> "" Then
                crr = Split(arr(y - 1), ":")
                brr(y, 1) = Trim(crr(0))
                If UBound(crr) > 0 Then
                    brr(y, 2) = Trim(crr(1))
                    brr(y, 2) = Replace(brr(y, 2), "https#", "https:")
                End If
            End If
        Next
        СтрокуВмассив = brr
    End If
End Function
 
Цитата
МатросНаЗебре написал: Option Explicit
Прошу прощения, а есть мануал - как этим воспользоваться?  :oops:

Цитата
Пытливый написал: А если в других полях тоже будут строки, которые надо разнести, то по каким столбцам это делать
В том то и дело что в выгрузке таких строк может быть и 10 и 100...
Сделал вторую страницу - должно быть. Там еще в заявке есть графа email - это электронная почта подписчика, соответственно для всех записей то будет ключевое поле )
 
Цитата
Сергей Ки написал:
как этим воспользоваться?    
Код
https://e-xcel.ru/index.php/makrosy/124-kak-vstavit-gotovyj-makros-v-rabochuyu-knigu
Не бойтесь совершенства. Вам его не достичь.
 
=IFERROR(TRIM(MID(SUBSTITUTE(SUBSTITUTE(MID('Заявки LPmotor'!$I$4;FIND(CODE(2);SUBSTITUTE('Заявки LPmotor'!$I$4;B$1;CODE(2);ROWS(F$2:F2)));LEN('Заявки LPmotor'!$I$4));";";REPT(" ";LEN('Заявки LPmotor'!$I$4));1);":";REPT(" ";LEN('Заявки LPmotor'!$I$4));1);LEN('Заявки LPmotor'!$I$4);LEN('Заявки LPmotor'!$I$4)));"")
По вопросам из тем форума, личку не читаю.
 
Накручена формула мастерски  ;) , не понятно как, но работает ) пробую понять логику =) спасибо

Цитата
МатросНаЗебре написал: Option Explicit
Мать моя женщина, я аж прослезился  :)  Вот это крутизна! Спасибо большое, вау эффект достигнут ))
Страницы: 1
Наверх