Как бързо да извлека имейл адрес от текстов низ?
Когато импортирате някои имейл адреси от уебсайт в работен лист на Excel, там винаги се съдържа неуместен текст, но сега просто искате да извлечете чистите имейл адреси от текстовия низ (вижте следващите екранни снимки). Как можете бързо да получите само имейл адресите от текста на клетката?
Извличане на имейл адрес от текстов низ с формула Извличане на имейл адрес от текстов низ с дефинирана от потребителя функция |
Извличане на имейл адрес от текстов низ с формула
Тук ви представям дълга формула за извличане само на имейл адресите от текста в Excel. Моля, направете следното:
1. В съседната клетка B1 въведете тази формула =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN( А1))).
2. След това натиснете Въведете клавиш, след това изберете клетка B1 и плъзнете манипулатора за попълване до диапазона, който искате да съдържа тази формула. И имейл адресите в диапазона са извлечени от текстовия низ. Вижте екранна снимка:
Забележки:
1. Препинателните знаци след имейл адреса също ще бъдат извлечени.
2. Ако клетките не съдържат имейл адресите, формулата ще покаже стойности за грешка.
3. Ако има повече от един имейл адрес в клетка, формулата ще извлече само първия адрес.
Извличане на множество имейл адреси от текстови низове
Kutools за ExcelЕ Извличане на имейл адрес може да ви помогне да извлечете имейл адресите от текстовите низове бързо и удобно. Щракнете, за да изтеглите Kutools за Excel!
Kutools за Excel: с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. Изтеглете и изпробвайте безплатно сега!
Извличане на имейл адрес от текстов низ с дефинирана от потребителя функция
Освен горната формула, дефинирана от потребителя функция също може да ви помогне да получите имейл адреса от текстовия низ.
1. Задръжте натиснат ALT + F11 ключове и отваря Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния макрос в прозореца на модула.
Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If OutStr = "" Then
OutStr = getStr
Else
OutStr = OutStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
ExtractEmailFun = OutStr
End Function
3. След това запазете кода и въведете формулата =ExtractEmailFun(A1) в съседна празна клетка вижте екранната снимка:
4. И след това натиснете Въведете изберете клетка B1 и плъзнете манипулатора за запълване до диапазона, от който се нуждаете от формулата. И всички имейл адреси са извлечени от текста на клетката. Вижте екранна снимка:
Забележки:
1. Ако клетките нямат имейл адреси, ще се покажат празни клетки.
2. Ако има повече от един имейл адрес в клетка, всички имейли ще бъдат извлечени.
Извличане на имейл адрес от текстов низ с VBA код
Ако смятате, че формулите по-горе са обезпокоителни за вас, следният VBA код може да ви помогне да извлечете имейл адресите наведнъж.
1. Задръжте натиснат ALT + F11 ключове и отваря a Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния макрос в Прозорец на модула.
VBA: извличане на имейл адреси от текстов низ
Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
extractStr = arr(i, j)
outStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If outStr = "" Then
outStr = getStr
Else
outStr = outStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
arr(i, j) = outStr
Next
Next
WorkRng.Value = arr
End Sub
3. След това натиснете F5 ключ, за да стартирате този код, и трябва да изберете диапазон, който искате да използвате VBA в изскачащия диалогов прозорец, вижте екранната снимка:
4, След това кликнете OK, а имейл адресите са извлечени от избраните текстови низове. Вижте екранни снимки:
Забележки:
1. Ако клетките нямат имейл адреси, ще се покажат празни клетки.
2. Всички имейли ще бъдат извлечени, ако има повече от един имейл адрес в клетка.
3. Извлечените имейли ще покрият оригиналните данни, така че по-добре първо архивирайте данните, ако имате нужда.
Извлечете имейл адрес от текстов низ с Kutools за Excel с едно щракване
Горните методи изглеждат малко сложни за нашия начинаещ в Excel, тук мога да ви препоръчам бърз и лесен инструмент- Kutools за Excel, Със своята Извличане на имейл адрес помощна програма, можете да извлечете имейл адресите от текстовите низове без много усилия.
Kutools за Excel : с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. |
Ако сте инсталирали Kutools за Excel, моля, направете следното:
1. Изберете клетките, съдържащи текстовите низове.
2. Щракнете Kutools > Текст > Извличане на имейл адрес, вижте екранна снимка:
3. И един Извличане на имейл адрес ще се появи диалогов прозорец, изберете клетка, където искате да поставите резултата, вижте екранна снимка:
4, След това кликнете OK всички имейл адреси са извлечени от текстовите низове, вижте екранната снимка:
Кликнете, за да изтеглите и безплатна пробна версия Kutools за Excel сега!
Демонстрация: Извличане на имейл адрес от текстов низ с Kutools за Excel
Свързана статия:
Как да извлека домейни от множество имейл адреси в Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!