Récupérer le nom de domaine d’une URL (Excel & Google Sheet)
Par arthur-and-ashes,
Publié le 14 juillet 2020
Il existe une formule excel infaillible qui permet de transformer une URL en nom de domaine. Pour récupérer le domaine et son extension (domaine.extensiondedomaine) d’une adresse web, on va utiliser une formule assez complexe sur Excel, car ce logiciel windows ne reconnait pas les RegEx (Expressions régulières) en natif. Cependant, il est possible de détecter facilement les noms de domaines en VBA, c’est à dire en créant sa propre fonction sur excel grâce à des macros.
Voici ce que nous attendons comme transformation :
- https://meilleurs-films.fr/contactez-nous/ => meilleurs-films.fr
- http://www.squad-venture.com/escapegames/ => squad-venture.com
- arthur-and-ashes.com/projects => arthur-and-ashes.com
- https://www.impots.gouv.fr/portail/ => impots.gouv.fr
Attention : ici ces formules vont également extraire les sous domaines avec le domaine.
Récupérer le nom de domaine d’une URL avec Excel ou Google Doc
La formule finale qui nous permet d’effectuer cette transformation sur Excel est :
=GAUCHE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;"www.";"");"http://";"");"https://";"");SIERREUR(TROUVE("/";SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;"www.";"");"http://";"");"https://";""))-1;NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;"www.";"");"http://";"");"https://";""))))
Google sheet vous permet d’utiliser des expressions régulières directement dans les formules du tableur. Voici deux formules à utiliser sur Google sheet pour extraire les noms de domaines :
=REGEXREPLACE(REGEXREPLACE(A2;"(http(s)?://)?(www.)?";"");"/.*";"")
=trim(REGEXEXTRACT(REGEXREPLACE(REGEXREPLACE(A2,"https?://",""),"^(w{3}\.)?","")&"/","([^/?]+)"))
Note : Pour traduire ces formules en anglais, regardez la version anglaise de cet article !
Si vous êtes curieux de connaître comment cette fonction marche, lisez les parties 2 et 3.
Le fonctionnement de la fonction REGEXREPLACE().
Cette fonction de Google Sheet est très simple. Elle va détecter le schéma (pattern) d’une chaine de caractère (string) et la remplacer par une autre. Cette fonction comporte donc 3 arguments :
- L’argument qui désigne le texte (ou la cellule) à analyser,
- L’argument qui désigne l’expression régulière à remplacer,
- L’argument qui désigne le texte de remplacement.
Ici, nous allons donc supprimer tous les caractères qui s’apparentent aux requêtes http ou https, mais aussi aux www qui pourraient être copntenues dans l’url. De même, nous allons supprimer tous les caractères contenus après le nom de domaine, c’est à dire après le premier slash (/).
Il va donc falloir utiliser 2 fois la fonction regexreplace(), pour les chaines de caractères avant le nom de domaine, ainsi que celles après :
REGEXREPLACE(A2;"(http(s)?://)?(www.)?";"")
va remplacer les éventuelles requêtes « http:// », « https » ou « www ».REGEXREPLACE(A2;"/.*";"")
va remplacer tous les caractères compris après le premier slash (/).
Extraire un nom de domaine d’une URL en VBA
Si vous écrivez des fonctions sur excel (macro) ou si vous faites du traitement de données avec VBA, voici la fonction qu’il faut utiliser :
Function ExtractDomain(ByVal URL As String) As String If InStr(URL, "//") Then URL = Mid(URL, InStr(URL, "//") + 2) End If If Left(URL, 4) Like "[Ww][Ww][Ww0-9]." Then URL = Mid(URL, 5) End If ExtractDomain = Split(URL, "/")(0) End Function