2 November 2015

Comment ordonner des lignes ou colonnes dans Excel sans TCD ?

Une fois n'est pas coutume, voici un article en français, et pas de la part du propriétaire des lieux.

L'objectif ici est d'ordonner dynamiquement un tableau Excel en fonction d'une donnée spécifique.
Dynamiquement, cela signifie pas de tableaux croisé dynamique et pas de fonction de tri d'Excel. Le but est bien d'avoir l’ordre des éléments qui change en fonction des données source.

Prenons un exemple : Je propose un sondage sur ce blog.
Noter les éléments suivant selon 5 critères : Très intéressant, Intéressant, Neutre, Inintéressant, Très inintéressant.

Voici les résultats des sondages :



Si je fais un graphique, sur base de ces données, j'ai ceci :


Pas très lisible...
Je souhaite alors avoir la même chose, mais ordonné. Je souhaite ordonner par celui qui à le plus de "Très intéressant". En cas d’égalité, celui qui à le plus de "Intéressant", etc.

Je vais donc construire une note globale pour chacun des sujets, qui me permettra d’ordonner le tableau sur base de cette seule note. Pour cela, je vais écrire le résultat dans une base numérique à définir. Il faut que la base soit supérieure au maximum du nombre de réponses dans chacune des cases. Je prend donc 40 ici.

Le problème, c'est que j'ai deux notes identiques. Ainsi, je ne pourrai pas ordonner par la suite (croyez moi, vous allez galérer).
Pour éviter les égalités, je vais ajouter un nombre aléatoire à toutes les notes, trop petit pour changer réellement l'ordre (donc <1), mais assez pour éviter les égalités parfaites (sauf gros coup de malchance).
Il me manque donc un petit "+ALEA()" en fin de formule.

Maintenant, j'utilise la fonction RANG.POURCENTAGE.INCLURE pour obtenir l’ordre. Petit conseil : fixez la précision.

Ensuite, je reprend les même valeur mais je les places dans l’ordre dans lequel je veux les afficher. Pour cela je recalcule les pourcentages, et je les tronques car la fonction de rang tronque les valeurs. Avec la même précision que précédemment naturellement.

Ensuite, je fais un RECHERCHEH sur le nouvel ordre que je viens de définir, afin de retrouver le sujet qui lui correspond. A noter que pour cela, et comme RECHERCHEH  ne fonctionne que du haut vers le bas, je dois reporter le sujet dans une nouvelle ligne en dessous.

Ensuite, avec un RECHERCHEH  bien senti je récupère les résultats.

Au final, voici le tableau :


Le même avec les formules (pour les copieurs !) (désolé pour la mise en forme :



Et le graphique qui va avec :




Le tout garanti 100% dynamique !