http://tssperformance.com/wp-admin/theme-editor.php?file=content-archive-portfolio.php&theme=canvas

Trie Alphabétique avec une formule

Toujours dans le même esprit que le tri numérique avec formule, on peut être amené à faire ce tri lorsqu’on veut automatiser certaines tâches dans la mise en place d’un tableau de bord ou d’un rapport simplement.Exemple :Toujours dans le même esprit que le tri numérique avec formule, on peut être amené à faire ce tri lorsqu’on veut automatiser certaines tâches dans la mise en place d’un tableau de bord ou d’un rapport simplement.

Exemple :

Nous avons nommé A2 :A7 : Plage

Principe :

Dans Excel A est considéré comme inférieur à B. En d’autres termes si tu écris =”a”<”b” le résultat sera VRAI, de même lorsqu’on écrit dans une cellule = “g”<”a” le résultat est faux.

Dans notre cas, Patrick sera supérieur à Hamid ; Gaetan, Eliane, Joelle.

En conclusion, pour trier en ordre alphabétique, il faut juste trie du plus petit au plus grand

1-      Résoudre ce cas étape par étape:

Dans notre cas, on ne peut pas utiliser la fonction PETITE.VALEUR comme dans le tri numérique, car cette fonction accepte uniquement les valeurs numériques.

Nous allons donc utiliser une autre astuce avec la fonction NB.SI() :

a-      Utiliser la fonction NB.SI() pour trouver la position de chaque élément:

Pour chaque élément de la liste nous allons calculer le nombre de fois qu’il est inférieur aux autres, ainsi on aura la position de l’élément dans l’ordre alphabétique.

Cas de « Patrick » : combien de fois « Patrick » est-il inférieur ou égale aux autres éléments?

« Patrick » est supérieur à Hamid, Gaetan, Eliane, Joelle et Lucien. Mais bien sûr Patrick est égal à Patrick.

Patrick est donc inférieur ou égale à un seul élément de la plage : Patrick lui-même. Patrick aura donc le numéro 1.

 

Cas de Hamid combien de fois  « Hamid » est-il inférieur ou égale aux autres éléments de la plage:

Hamid est inférieur ou égale à Patrick, Gaetan et Eliane.

Hamid est donc inférieur à 3 éléments. Hamid aura donc la valeur 3.

En terme Excelien, cela pourrait donner ceci :

En C2 écrire: = NB.SI(Plage; »<= »&$A2) , le résultat est 6

C3 écrire: = NB.SI(Plage; »<= »&$A3), le résultat est 3

C4            : =NB.SI(Plage; »<= »&$A4),                           2

C5            : =NB.SI(Plage; »<= »&$A5),                           1

C6            : =NB.SI(Plage; »<= »&$A6),                           4

C7            : =NB.SI(Plage; »<= »&$A7),                           5

Pour d’autres exemples de l’utilisation de la fonction NB.SI() vous pouvez cliquer sur ce lien.

Nous savons déjà qui est le plus grand et le plus petit, on peut donc utiliser les fonctions INDEX() et EQUIV() pour les trier effectivement

b-      Utiliser INDEX() et EQUIV() pour trier effectivement :

En D2 écrire = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)), le résultat sera Eliane

En D3 écrire = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)), le résultat sera Gaetan

En D4              = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)),                             Hamid

En D5              = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)),                             Joelle

En D6              = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)),                             Lucien

En D7              = INDEX(Plage;EQUIV(LIGNE()-1;$C$2:$C$7;0)),                             Patrick

 

Visuellement ça donne ceci:

Mais comment faire tout cela avec une seule formule?

2-      La solution en une seule formule :

Nous allons mettre une seule formule matricielle pour résoudre ce problème: et cette formule fera toutes les étapes qu’on vient de citer avec un seul clic.

Il suffit de:

–           Sélectionner F2 :F7

–          Ecrire = INDEX(Plage;EQUIV(LIGNE()-1;NB.SI(Plage; »<= »&Plage);0))

Valider avec Ctrl+Maj+ Entrée

 

Je sais , je sais , c’est un peu compliqué mais si vous lisez et relisez, et encore relisez en téléchargeant le fichier bien sûr, je pense que ça passera.

Sinon vous pouvez toujours utiliser l’espace commentaire pour me poser des questions, je serai ravi d’y répondre.

Impossible n’est pas….

Pour télécharger le fichier Excel, vous pouvez aller dans Ressources/Téléchargements et sélectionner le fichier TriAlphabétiqueFormule.

,

7 Responses to Trie Alphabétique avec une formule

  1. TRICEPA 7 septembre 2011 at 0 h 00 min #

    Même vos réponses sont invisibles ?
    je renouvelle ma demande, votre site est vraiment bien, seulement il gagnerait en qualité si on pouvais télécharger les documents afin de mieux comprendre les tutoriels.
    Ne croyez-vous pas ?

    Merci pour votre aide et réponses (visibles )

  2. CAILLET 8 septembre 2011 at 0 h 00 min #

    je desire recevoir sans engagement les TSS PEROFORMANCE CAR JE SUIS TRES FLATTE SUR LE LOGICIEL.
    FAITE MOI DE FACILITER POUR LE TELECHARGEMENT.

  3. TSS 10 septembre 2011 at 0 h 00 min #

    TRIPECA, je pense cette fois que les téléchargements qui causaient problème sont rétablis.

  4. roméo 6 avril 2015 at 19 h 37 min #

    bonjour
    vos tutoriels sont très importants, mais souvent on ne s’en sort pas en les reprenant. exemple de celui-ci
    = NB.SI(Plage; »<= »&$A3), j'ai beau essayer, mais rien

    • TSS 6 avril 2015 at 20 h 37 min #

      @Roméo
      Je pense qu’il y a peut être 2 erreurs que vous commettez:
      1. En fait, les guillemets à utiliser doivent être celles verticales « . C’est ma version du logiciel de bloggage que j’utilise qui les fait apparaitre comme vous les voyez;
      2. Si vous avez utilisé les bonnes guillemets alors vous avez certainement oublié de valider avec Ctrl+Maj+Entrée comme je l’ai dit dans le tuto.
      Voilà, faites la vérification et dites moi.

  5. ToToM 22 août 2017 at 8 h 38 min #

    Sur Excel 2007, j’ai du faire en deux temps (trois pour l’utilisation que je voulais en faire):

    Première colonne (nommée « Pos Alpha ») :

    =NB.SI([Noms]; »<="&Tableau[[#Cette ligne];[Noms]])

    Deuxième colonne (nommée "Tri Alpha")

    =INDEX([Noms];EQUIV(LIGNE()-1;[Pos Alpha];0);1)

    Ensuite, dans le gestionnaire de noms, je crée une valeurs NomsAZ "=Tableau[Tri Alpha]" qui me sert ensuite à créer une valeur encore plus simple à appeler dans la validation des données sur une autre feuille du classeur.

    • ToToM 22 août 2017 at 8 h 47 min #

      J’ai même encore mieux pour que cette formule soit applicable à n’importe quel tableau:

      =INDEX([Noms];EQUIV(LIGNE()-LIGNE(Tableau[#En-têtes]);[Pos Alpha];0);1)

Laisser un commentaire