Страницы: 1
RSS
Как заменить текст в ячейке, если этот текст содержит определенные значения?, Есть столбец с текстом, нужно проверить: если в тексте содержится определенный "кусок" известного текста, то заменить его только на этот "кусок".
 
Здравствуйте, знатоки!
Буду очень благодарна, если подскажете как решить такую задачу:
Дано: таблица1 с ФИО и эл.почтой (в разном написании ФИО, есть пробелы и различные запятые) и таблица2 только с адресами эл.почты. Все ячейки в таблице1 содержат в том числе адрес эл.почты.
Вопрос: как в первой таблице заменить все ячейки, содержащие один и тот же адрес эл.почты,на только адрес эл. почты НЕ используя автофильтр и разбиение по столбцам?
Простите, тему назвала криво, но как описать не на пальцах-не придумала :)
Пример во вложении.
 
Здравствуйте
Код
=ПРОСМОТР(;-ПОИСК(D$2:D$6;A2);D$2:D$6)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
написал:
Код=ПРОСМОТР(;-ПОИСК(D$2:D$6;A2);D$2:D$6)
СПАСИБО! А можете мне объяснить: почему (;-ПОИСК(D$2:D$6;A2);D$2:D$6) точку с запятой и минус ставится перед поиском?
 
Код
=ПРОСМОТР(0;-ПОИСК(D$2:D$6;A2);D$2:D$6)

Можно так написать формулу.
Ищем ноль в диапазоне с ошибками и отрицательным значением.
Дальше из справки
Цитата
Если функции ПРОСМОТР не удается найти искомое_значение, то в просматриваемом_векторе выбирается наибольшее значение, которое меньше искомого_значения или равно ему.
Изменено: Максим В. - 06.03.2024 20:26:11
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Тема Вытянуть из столбца А уникальные  адреса электронной почты
Код
Sub UniqMail()
Dim arr
Dim dic As Object
Dim i As Long
Dim iLastRow As Long
Dim iMail As String
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "<(.+)>"
      iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
     Range("D2:D" & iLastRow).ClearContents
     Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
     arr = Range("A2:A" & iLastRow).Value
  For i = 1 To UBound(arr)
    If .test(arr(i, 1)) Then
      iMail = .Execute(arr(i, 1))(0).submatches(0)
      dic.Item(iMail) = dic.Item(iMail) + 1
    End If
  Next i
   Range("D2").Resize(dic.Count, 2) = Application.Transpose(Array(dic.keys, dic.Items))
 End With
End Sub

Уникальные адреса электронной почты в столбце D , в столбце E их количество
В строках 13 и 14 электронные адреса не обрамлены <> и поэтому не подсчитаны
Страницы: 1
Наверх