Tri alphabétique "à l'envers" sous Excel

Bonjour,

J'ai besoin de réaliser sous Excel ( ou Calc éventuellement ) un tri alphabétique à l'envers, c'est à dire qui trie les mots par la dernière lettre ( et non par la première)
pour avoir une liste du genre d'un dictionnaire de rime

la
cela
...
nabab
baobab
...
le
aime
lime
rime
etc.

Quelqu'un a-t-il une idée de macro ? d'astuce ? de fonction à activer ? etc.

Merci

8 réponses

  1. Bonjour,

    J'utiliserai plutot la fonction STXT au lieu de DROITE

    voici un exemple:

    http://www.cijoint.fr/cj201012/cij57H4FCG.xls
    1
    1. Contributeur
      Bonjour
      essayez cette formule en A1 à tirer sur la hauteur du champ qui édite à l'envers les 6 dernières lettres du mots
      =DROITE(A1;1)&STXT(A1;NBCAR(A1)-1;1)&SI(NBCAR(A1)>2;STXT(A1;NBCAR(A1)-2;1);"")&SI(NBCAR(A1)>3;STXT(A1;NBCAR(A1)-3;1);"")&SI(NBCAR(A1)>4;STXT(A1;NBCAR(A1)-4;1);"")&SI(NBCAR(A1)>5;STXT(A1;NBCAR(A1)-5;1);"")&SI(NBCAR(A1)>6;STXT(A1;NBCAR(A1)-6;1);"")

      Crdlmnt

      Ps soit selon ce modèle
      http://www.cijoint.fr/cjlink.php?file=cj201012/cijj8tH1xA.xls

      Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
      1
      1. Merci beaucoup, c'est exactement ce qu'il me fallait.
        Avant ça, je devais basculer mes listes de mots Excel vers Access, mettre un filtre sur les terminaisons et réexporter sur Excel. C'était assez mal commode.
        0
    2. Contributeur
      Bonjour tout le monde,

      Pour compléter une proposition par fonction personnalisée :
      Function envers(chaine As String) As String  
          Dim i As Long  
          For i = 1 To Len(chaine)  
              envers = Mid(chaine, i, 1) & envers  
          Next i  
      End Function

      Ex (à partir du classeur de tcherno) : Classeur1.xls
      1
      1. Bonsoir eriiic,

        Tu as vraisemblablement envoyé une mauvaise pièce jointe (d'ailleurs je soupçonne maguy "le boulet"d'avoir crée un nouveau pseudo concernant cette pièce jointe)
        0
      2. Contributeur
        oupsss...
        J'ai corrigé le lien, merci :-)
        eric
        0
    3. Contributeur
      Ouep, une idée de magouille =)
      La fonction "DROITE" permet de récupérer le (ou les) dernier caractère de la cellule cible. Donc une seconde colonne avec cette fonction, et ensuite un tri croissant basé sur cette colonne. A la limite, plusieurs colonnes pour un tri suivant l'avant dernière lettre, l'antépénultième, et ainsi de suite =)
      0
      1. Bonjour ,

        Si vos données sont en colonne A1 je creerais une colonne an A2 avec cette formule :
        =DROITE(DROITE(A1;1)&DROITE(A1;2)&DROITE(A1;3)&DROITE(A1;4)&DROITE(A1;5)&DROITE(A1;6)&DROITE(A1;7)&DROITE(A1;8)&DROITE(A1;9)&DROITE(A1;10);NBCAR(A1))

        Et vous faites le tri sur cette nouvelle colonne.

        Pour ce cas je ne prends en compte que les mots de 10 lettres maxi , si vous voulez plus augmentez le nombre de &DROITE(A1;x)

        Dieu a t'il créé le cerveau ou est-ce l'inverse ?
        Heureux les simples d'esprit parce que le royaume des cieux leur appartient.
        0
        1. dsl , c'est pas bon , je cherche
          0
        2. =GAUCHE((DROITE(A1;1)&DROITE(A1;2)&DROITE(A1;3)&DROITE(A1;4)&DROITE(A1;5)&DROITE(A1;6)&DROITE(A1;7)&DROITE(A1;8)&DROITE(A1;9)&DROITE(A1;10));NBCAR(A1))

          la ca va mieux
          0
        3. zut marche pas non plus !!! c'est pas le jour !
          0
      2. Bien tchernosplif , oui j'en etais arrivé à cette conclusion mais c'est coton , il faut gérer les erreurs.
        .
        0
        1. bonjour,
          peut on avoir un exemple du genre
          -1° colonne la liste originale
          -2° colonne la liste triée que tu veux obtenir
          bonne suite
          0
          1. En même temps... pour les rimes, ce seraient plutôt les phonèmes (sons) qui comptent, et il y en a moins que de terminaisons.

            Il faudrait idéalement découper les mots dans leurs phonèmes (atomes), puis trier (indexer) sur base du dernier.
            0