Разберем реализацию с помощью базовых возможностей Excel. Для этого нам потребуется немного громоздкая формула:
=ПОДСТАВИТЬ( ПСТР( A1; ЕСЛИОШИБКА(НАЙТИ("//";A1)+2;1); ЕСЛИОШИБКА(НАЙТИ("/";A1;ЕСЛИОШИБКА(НАЙТИ("//";A1)+2;1))-ЕСЛИОШИБКА(НАЙТИ("//";A1)+2;1);ДЛСТР(A1))); "www.";"")
Для англоязычной версии:
=SUBSTITUTE(MID(A1, IFERROR(FIND("//",A1)+2,1), IFERROR(FIND("/",A1,IFERROR(FIND("//",A1)+2,1))-IFERROR(FIND("//",A1)+2,1),LEN(A1))), "www.","")
Не буду подробно расписывать, что делает каждая часть этой формулы в отдельности. Если необходимо - напишите в комментариях.
Если кратко, то цель формулы найти позицию до названия домена (до символов "//") и позицию следующего за именем домена первого слеша (символа "/"). После вернуть нам текст, который расположен между этими индексами. После того как домен найден из него можно удалить символы "www." функцией ПОДСТАВИТЬ.
Конечно, запомнить формулу выше проблематично, да и воспроизвести логику сходу может не получиться. Было бы удобнее, если бы она была под рукой и не в таком громоздком виде а понятной человеку.
Для этого мы добавили такую функцию в нашу надстройку и выглядит она следующим образом:
=ДОМЕН(URL)
Скачать надстройку Вы можете нажав на кнопку в начале или в конце этой страницы.
Если вы знакомы с макросами, то можете использовать данный код, чтобы встроить его в свой проект. Выглядит он намного понятнее чем формула в Excel.
Public Function ДОМЕН(URL As String) As String Dim pos As Long URL = Replace(URL, "www.", "") URL = Replace(URL, "https://", "") URL = Replace(URL, "http://", "") pos = InStr(1, URL, "/") If pos > 0 Then ДОМЕН = Left(URL, pos - 1) Else ДОМЕН = URL End If End Function