Quelle formule extrait le nom de domaine d'une adresse e-mail ([email protected] -> example.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

Jacob Jan Tuinstra
la source
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.

nic
la source
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
@Trengot Voir stackoverflow.com/a/7111947/1536038
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 ([email protected]) 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.

ITechGeek
la source