Quelle formule extrait le nom de domaine d'une adresse e-mail (bob@example.com -> example.com)?


8

Quelle formule Google Spreadsheets dois-je utiliser pour obtenir la partie domaine à partir d'une adresse e-mail?

Exemple: bob@example.comexample.com

Réponses:


4

J'utiliserais la formule suivante pour obtenir une URL.

Formule

=IF(ISEMAIL(A2),
   REGEXEXTRACT(A2,"@(.+)"),
   IF(ISURL(A2),
     A2,
     IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),
       REGEXEXTRACT(A2,"@(.+)"),
       "No valid entry"
     )
   )
 )

 Copy / Paste 
 =IF(ISEMAIL(A2),REGEXEXTRACT(A2,"@(.+)"),IF(ISURL(A2),A2,IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),REGEXEXTRACT(A2,"@(.+)"),"No valid entry")))

Expliqué

A1est validé comme étant une adresse e-mail. Si TRUE, alors utilisez la REGEXEXTRACTformule que vous avez construite. Si l'adresse e-mail s'avère ne pas être une adresse valide, validez pour une URL. Si l'URL s'avère ne pas être une URL valide, vérifiez s'il REGEXs'agit d'une URL valide. Afficher le texte Aucune entrée valide, aucune des IFaffirmations n'est vraie.

Capture d'écran

entrez la description de l'image ici

Exemple

J'ai créé un exemple de fichier pour vous: obtenir le domaine à partir de l'adresse e-mail


1
Si vous voulez les deux (ou cela ne vous dérange pas d'avoir les deux), =split(A2, "@")en A3, mettez boben A3 et example.comen A4. Un peu plus concis.
Wayne Werner

7

Cette formule fera le travail:

=regexextract(A1;"@(.*)")

Si aucun @n'est trouvé, la valeur d'origine est affichée.

La =regexextractfonction ( documentation ) exécute le paramètre d' expression régulière ( @(.*)) par rapport à la valeur de la cellule A1et renvoie le groupe correspondant.


1
Je ne suis pas un expert en REGEX (@Vidar est ....), mais (.*)c'est trop générique. Btw, si aucune correspondance n'est trouvée, cela générera une erreur.
Jacob Jan Tuinstra

Pourquoi est-il (.*)trop générique? Tu ne veux pas tout après @?
Holloway

@Trengot Je pensais à quelque chose dans la lignée de"@([A-Za-z0-9-.]+)")
Jacob Jan Tuinstra


1
@JacobJanTuinstra Cette expression régulière ne fonctionnera pas avec tous les noms de domaine, seulement ceux ASCII. Les noms de domaine peuvent contenir des

3

Si votre adresse e-mail (bob@example.com) est en A1

=index(split(A1,"@"),0,2) = exemple.com

=index(split(A1,"@"),0,1) = bob

Vous divisez le @ et utilisez l'index pour sélectionner la colonne que vous voulez dans le fractionnement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.