Tri depuis la fin du contenu des cellules

Fermé
julie06220 - 2 juin 2016 à 17:37
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 juin 2016 à 10:37
Bonjour,

j'ai une liste de noms de domaines de sites internet dans excel. J'en ai 80 000. Je voudrai trier par extensions des noms de domaines. Exemples au début tous les.aa puis les .ab etc

Au final je ne dois garder que les .com; .fr; .eu; .gouv; .net; .mc; .ch; .lu ; .be; .asso

qui pourrait m'aider?
Merci
Julie




A voir également:

9 réponses

PHILOU10120 Messages postés 6394 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 janvier 2025 811
2 juin 2016 à 19:47
Bonjour

Pouvez-vous envoyer un échantillon d'une vingtaine de lignes pour réaliser une formule qui extraira les extensions dans une nouvelle colonne
0
Bonjour,

Voici un echantillon exemple de ce fichier :

nomdedomaine1.fr
nomdedomaine2.com
nomdedomaine3.fr
nomdedomaine4.ru
nomdedomaine5.fr
nomdedomaine6.com
nomdedomaine7.sk
nomdedomaine8.fr
nomdedomaine9.com

Notre but est d'épurer facilement une grosse liste de noms de domaines, en ne gardant que les domaines dont nous avons besoin.

Merci
Cdt
Julie
0
Utilisateur anonyme
3 juin 2016 à 23:14
Bonsoir Julie,

Je vous ai déjà répondu avec mon message #3 ; lisez les informations,
mais pour le fichier Excel 2003, celui-ci est mieux car je l'ai optimisé :

Exercice pour julie06220 (optimisé)

Les noms de domaines dont vous n'avez pas besoin sont toujours présents
en fin de liste. Peut-être préférerez-vous tel que ? Mais si vraiment vous
préférez les supprimer définitivement, indiquez-le moi et je n'aurai qu'une
petite adaptation à rajouter.

Je vous rappelle que si besoin, vous pouvez me demander tout complément
d'information que vous jugerez utile.

Cordialement.  😊
 
0
Bonsoir Julie,

Votre exercice nécessite effectivement une colonne supplémentaire
pour les extensions. Voici le fichier Excel 2003 correspondant :

Exercice pour julie06220

Vous verrez que tous les noms de domaine qui ne font pas partie de
votre liste de domaines à conserver ont "z" comme extension dans
la colonne supplémentaire, afin que le tri les place en fin de liste :
les lignes correspondantes ne sont pas supprimées.

Donc tous les noms de domaines dont vous avez besoin
sont depuis le début de la liste, et triés selon l'extension.

Ouvrez le fichier, et faites < Ctrl >< t > pour lancer le tri.

Faites < Alt >< F11 > et affichez le Module1 pour voir la macro TNDE :
Tri des Noms de Domaine selon Extension.

Si votre liste de noms de domaine est en colonne B, et que le premier
nom de domaine est en ligne 2, vous pouvez laisser tel que ; sinon,
ce sera à adapter.

N'hésitez pas à me demander des renseignements si nécessaire.

Cordialement.  😊
 


Si le problème est réglé, merci d'utiliser le lien situé tout en haut de page,
juste sous le titre : « Marquer comme Résolu ».
0
Raymond PENTIER Messages postés 58801 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 janvier 2025 17 264
3 juin 2016 à 00:43
Bonjour Julie.

Sans faire appel à une macro, tu peux utiliser la colonne libre la plus proche de ta liste A:A et y mettre la formule =STXT(A:A;TROUVE(".";A:A);9)

Ensuite tu peux à ton gré effectuer un tri, un filtre, ou les deux. https://www.cjoint.com/c/FFcwQWZLDAs

Cordialement.
0
Utilisateur anonyme
3 juin 2016 à 02:45
Bonjour Raymond,

Tu as raison... si on peut être sûr qu'il n'y a qu'un seul point ( . ) !

Car s'il y en a plusieurs (et dans une adresse internet, ça peut très bien arriver),
ta formule « butera » sur le premier point rencontré, et ne trouvera donc pas
le dernier ! C'est pourquoi ça oblige à chercher le premier point depuis la fin !

Exemple d'adresse internet : eco.conseil@wanadoo.fr

Ta formule trouvera le 1er point, entre « eco » et « conseil »,
et « sortira » ces 9 caractères : « .conseil@ » !

Ma macro trouve le premier point depuis la fin, entre « wanadoo » et « fr »,
et sortira donc le bon nom de domaine.

Si tu as une formule pour faire cela, je suis vraiment preneur !

Cordialement.  😊
 
0
Raymond PENTIER Messages postés 58801 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 janvier 2025 17 264 > Utilisateur anonyme
3 juin 2016 à 03:35
Oui, j'y ai pensé ... Mais comme à mon habitude, je réponds strictement à la question posée, avec les exemples proposés, afin de ne pas alourdir la réponse, peut-être inutilement.
Il appartient au demandeur de réclamer un complément d'information ou de reformuler sa question.

D'autre part, je ne connais pas VBA, et je dois me débrouiller avec les fonctions, formules et manipulations classiques d'Excel.

En prenant l'hypothèse que les extensions ont au maximum 4 caractères après le dernier point (et en supposant qu'il y au moins 2 caractères entre l'avant-dernier et le dernier points) ma formule en C devient
=STXT(DROITE(B:B;5);TROUVE(".";DROITE(B:B;5));6)

Tu préfères ?
0
Utilisateur anonyme > Raymond PENTIER Messages postés 58801 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 janvier 2025
Modifié par albkan le 3/06/2016 à 22:28
 
Bonsoir Raymond et Philou,

Je rappelle les 2 hypothèses de Raymond (dans son message #6) :

A)  « En prenant l'hypothèse que les extensions ont au maximum
      4 caractères après le dernier point »

B)  « en supposant qu'il y a au moins 2 caractères entre l'avant-
      dernier et le dernier points »

================================

J'ai testé la dernière formule de chacun de vous ; voici ce que j'ai constaté :

1) Vos formules ne marchent pas si l'extension a 5 caractères ou plus,
    mais c'est bien conforme à l'hypothèse A) ; comme je ne pense pas
    qu'en pratique, on puisse rencontrer ce cas, ça ne devrait donc pas
    poser de problème.

2) Vos formules ne marchent pas s'il y a un seul caractère entre l'avant-
    dernier point et le dernier point, mais c'est conforme à l'hypothèse B) ;
    dans la pratique, je ne pense pas que le cas puisse se rencontrer,
    mais cette fois, j'en suis moins sûr que pour le cas 1) ; donc si jamais
    ça arrive : plantage ! Exemple : pour « nomdedomaine.org.e.fr »,
    on a « e.fr » au lieu de « .fr ».

3) Ça ne marche pas s'il y a un seul caractère après le dernier point ;
    cette fois, ce n'était pas dans les hypothèses de départ A) et B) ;
    mais même sans en être tout à fait sûr, je crois qu'en pratique,
    ça n'arrive jamais. Exemple : pour « nomdedomaine.org.eu.a »,
    on a « eu.a » au lieu de « .a ».

4) Pour « nomdedomaine.org.eu.fr », c'est ok : ça sort bien « .fr »

5) S'il y a plus d'un point ( . ) : hormis les cas 1) à 3), vos formules marchent
    très bien grâce à vos utilisations de DROITE(B:B;5)

6) S'il y a un seul point ( . ) : vos formules marchent très bien, dans tous
    les cas
, pour une extension de 1 à 4 caractère(s) ; et oui, même pour
    un seul caractère : « nomdedomaine.a » retourne bien « .a »

7) Pour l'Audit de formules intégré à Excel, c'est gratuit ; pour mon propre
    Audit de formules, c'est 100 € chacun. Je plaisante, inutile de sortir vos
    porte-monnaies !  😉

================================

Par acquis de conscience, j'ai vérifié ceci dans Excel 2003 et dans Excel 2007 :

1) Est-ce qu'un paramètre de la fonction TROUVE() permet de faire
une recherche depuis la fin ? Hélas : NON.

2) Est-ce qu'un paramètre de la fonction CHERCHE() permet de faire
une recherche depuis la fin ? NON plus.

3) Y a-t-il une fonction retournant une chaîne de caractères inversée ? NON.

Peut-être dans une des versions ultérieures à 2007 ?

----------------------------------------------------------

Remarques

a) TROUVE() est sensible à la casse (majuscules ou minuscules) alors que
    CHERCHE() ne l'est pas ; mais comme on recherche un point ( . ), ça ne
    fait aucune différence.

b) VBA a une fonction InStrRev() qui retourne la position d'une chaîne
    de caractères dans une autre à partir de la fin ; et bien sûr, ça aide
    beaucoup pour faire cet exercice !

================================

Conclusion

La méthode VBA marche avec certitude dans tous les cas de figure, y compris
les cas 1) à 3) notés au tout début, c'est pourquoi je continue à la préférer.

Mais pour quiconque veux absolument éviter le VBA et utiliser uniquement
des formules, celles que vous avez données ont tout l'air d'être les meilleures.

Une seule petite nuance : comme dans chaque formule DROITE(B:B;5) apparaît
2 fois, j'aurai utilisé une colonne supplémentaire pour le calcul de DROITE(B:B;5),
afin d'éviter un double calcul et donc une double recherche.

Cordialement.  😊
 

P.S. Je rappelle que la macro de Philou retourne les mêmes résultats que
ceux de Raymond, à ceci près qu'il n'y a pas de point devant l'extension ;
mais ça suffit pour pouvoir obtenir un tri correct.
 
0
PHILOU10120 Messages postés 6394 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 janvier 2025 811 > Utilisateur anonyme
4 juin 2016 à 10:30
Merci pour toutes ces information, mais comme dit Raymond on répond à la question du demandeur
Un point c'est tout! Comme vous avez pu le voir j'ai demandé des précision, dans mon poste un pour éviter tous les problèmes que vous citez.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PHILOU10120 Messages postés 6394 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 janvier 2025 811
3 juin 2016 à 11:07
Bonjour

Essayer ceci

=DROITE(DROITE(B:B;5);5-TROUVE(".";DROITE(B:B;5)))
0
Utilisateur anonyme
3 juin 2016 à 21:46
Bonsoir PHILOU10120, je t'invite à lire mon message #8,
qui est pour Raymond PENTIER et toi. Cordialement.  😊
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
Modifié par eriiic le 3/06/2016 à 23:50
Bonjour à tous,

Pour avoir l'extension du domaine par formule :
=STXT(A2;MAX((STXT(A2;LIGNE(1:99);1)=".")*LIGNE(1:99))+1;99)

formule matricielle à valider avec shift+ctrl+entrée

eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Merci à tous vos réponses

Tout cela me semble bien compliqué!

J'ai du mal m'exprimer.

Je voudrai qu'excel tri ma colonne en inversant le SENS. Depuis le dernier caractère du la cellule.
dans les anciens excel, cette fonction se trouvait facilement dans la fonction tri. L'on avait de A à Z ou Z à A et sens gauche à droite ou droite à gauche. C'est exactement cela que je recherche.
Merci
Julie
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
4 juin 2016 à 11:30
Bonjour,

Non, excel n'a jamais offert la possibilité de trier depuis le dernier (ou xième) caractère.
Il faut extraire l’extension dans une colonne et faire le tri sur cette colonne. Ca n'a rien de compliqué.
eric
0
Utilisateur anonyme
4 juin 2016 à 15:19
Bonjour Julie,

J'ai l'impression que vous n'avez pas lu mon message #3 et mon message #10,
et je pense qu'ils peuvent être une solution à votre problème.

Pouvez-vous regarder le fichier Excel 2003 « Exercice pour julie06220 (optimisé) »
et me dire ce que vous en pensez ? Il suffit de charger ce fichier, et d'appuyer sur
< Ctrl >< t > pour lancer le tri. Merci d'avance.

Bien sûr, si je me suis trompé et que ça ne résout pas ce que vous voulez,
n'hésitez pas à me le dire. Idem si ça convient, mais qu'il faut rajouter des
petites adaptations.

En attente de vous lire prochainement.

Cordialement.  😊
 
0
Raymond PENTIER Messages postés 58801 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 janvier 2025 17 264
4 juin 2016 à 19:39
Non, Julie ! Certainement pas !

Aucune version d'aucun tableur n'a jamais, jusqu'ici, permis de trier en partant du dernier caractère !
Quand tu écris "L'on avait de A à Z ou Z à A ..." tu confonds avec tri alphabétique croissant (de A à Z) ou décroissant (de Z à A) ; mais toujours par rapport aux premiers caractères !

Et oui, effectivement c'est compliqué, puisque tu veux une manipulation qui n'existe pas, qui n'a jamais été prévue, et dont pas grand-monde ne se sert ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
Modifié par michel_m le 4/06/2016 à 11:55
bonjour,

pour l'instant, j'ai programmé en VBa une méthode rapide donnant la liste e des sites comportant que les suffixes de ta liste

Edit 11h55: supprimé point1 ; j'avais mal lu la demande initiale

2: il y a t il d'autres données dépendantes de l'URL dans d'autres colonnes ?

3/ D'autre part, compte tenu du nombre de lignes, ce serait sympa que tu nous mettes un extrait de ta liste avec 3000 ou 4000 lignes avec la colonne où elle est située. cela facilitera grandement le travail. Merci d'avance.
pour cela
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse

Dans l’attente



 Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
5 juin 2016 à 10:37
Bonjour

reprise pour essai sur 80000 lignes
quelques modifications sur les codes car refus de la fonction transpose au delà de 65000 lignes.... :-/
ce qui annule ma tartine précédente

test rapidité:
80000 lignes en >=1 seconde

http://www.cjoint.com/c/FFfiKOyd0ft

0