У меня есть книга Excel, в столбце A каждая ячейка содержит все URL-адресасайт(это означает сотни URL-адресов в одной ячейке).
Среди всех URL-адресов в одной ячейке я хочу извлечь только тот URL-адрес, который содержит словоконтакт
Например:
Ячейка А1:http://examplesite.com/index.html; http://examplesite.com/login.php; http://examplesite.com/contact.html; http://examplesite.com/about.html
Ячейка А2:http://hello.publish.com/alumni; http://hello.publish.com/contact-us; http://hello.publish.com/sitemap; http://hellopublish.com/projects
И так далее
Я хотел бы иметь этот вывод в столбце B
Ячейка B1: http://examplesite.com/contact.html
Ячейка B2: http://hello.publish.com/contact-us
решение1
Попробуйте следующееУсерДопределенФсоборование(УДФ):
Public Function FindContact(inpt As String) As String
ary = Split(inpt, "; ")
For Each a In ary
If InStr(1, a, "contact") > 0 Then
FindContact = a
Exit Function
End If
Next a
FindContact = ""
End Function
Пользовательские функции (UDF) очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте текст и закройте окно VBE
Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить UDF:
- откройте окно VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы использовать UDF из Excel:
=НайтиКонтакт(A1)
Чтобы узнать больше о макросах в целом, см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
а для получения подробной информации о UDF см.:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Для работы этого метода должны быть включены макросы!
решение2
Поскольку все ваши данные идут вниз по вертикали, команда для вас — это команда VLookup
. Сначала в столбце B установите идентификатор для каждого URL, начиная с 1 и продолжая до конца. Сделайте это, перетащив черную точку в углу до конца вниз, пока не встретится конечный URL. пример: VLookup("contact",$A1:$B13,2,TRUE)
.