C’est un problème épineux qui nécessite un niveau de maîtrise des fonctions Excel que je n’ai pas actuellement. J'étudie le site Excel depuis trop longtemps et je ne progresse toujours pas.
J'essaie de prendre une URL compliquée comme:
et analysez-le pour que je reçoive ceci:
live.domain.net
Le plus proche que j'ai eu est avec ceci:
Ma logique:
=LEFT(A17, SEARCH(".net",A17)+3)
La raison pour laquelle je ne peux pas m'arrêter là est que la partie locale peut être variable parmi les milliers d'enregistrements, alors que seul le domaine est (par exemple, live.domain.net) constant.
Je sais aussi que je dois utiliser la fonction MID. J'essayais de trouver des solutions plus basiques, mais le plus gros problème est que je dois pouvoir désactiver le ".net" pour récupérer le domaine. , je dois donc définir le point de départ dans MID () comme ".net" - len (domain)
Quelqu'un pourrait-il m'aider à compléter cette formule?
Réponses:
Tout le monde ici semble se concentrer sur le
.com
ou.net
, mais les domaines ne se terminent pas toujours par.com
ou.net
... cependant, ils se terminent toujours avant le/
.Donc, commencez par trouver où commence le nom d'hôte:
Ensuite, recherchez la première barre oblique par la suite - c'est là que le nom d'hôte se termine :
Ou, juste au cas où il n'y a pas de chemin du tout:
Et tout extraire entre:
Si vous voulez jeter le composant de domaine le plus à gauche, vous pouvez utiliser
FIND(".",A1)
:Pour Salesforce, sans vérification d'erreur:
Remarque: Ceci a encore quelques hypothèses - par exemple, cela ne fonctionnera pas correctement si les URL ont un
username@domain
ouusername:password@domain
. LaFIND(".")
version suppose également qu'il existe au moins deux composants de domaine et ne fonctionnera pas correctementhttps://example/foo
. Elle nécessite des vérifications supplémentaires de la part d'IFERROR ().la source
http://foo/
-à- d. Et nonhttp://foo
), vous pouvez omettre complètement IFERROR (). Sinon, découvrez comment Salesforce rapporte les erreurs de FIND () ou SEARCH () ...Vous pouvez utiliser regexp via VBA
et obtenez votre nom d'hôte avec quelque chose comme ça:
groupe 1:
la source
Sans savoir quelles sont les conditions de votre pièce locale et où sont vos accrochages, je chercherais l'extension puis le premier
.
car vous n'avez pas dewww.
. Si vous le faites, recherchez le second.
. Je vous fournirai les parties, puis la formule réelle.Rechercher n'importe quelle extension que vous devez trouver.
À la recherche de votre premier
.
Puis combinez-les dans
=MID()
S'il n'y a pas toujours une partie locale, cela peut devenir plus compliqué. Il y a aussi d'autres façons de le faire si votre chaîne locale a toujours la même longueur ou a toujours une chaîne spécifique, ou certaines valeurs, etc.
Vous pouvez supprimer les
iferror
portions si vous connaissez toujours l'extension, ou vous pouvez ajouter des extensions supplémentaires.la source