Utilisation de EQUIV
Recherche de toutes les notes de zaza dans la liste (B3:C8)

en E3, inscrire la formule =SI(ESTERREUR(EQUIV("zaza*";DECALER($B$3:$B$8;E2;0);0)+E2);"";EQUIV("zaza*";DECALER($B$3:$B$8;E2;0);0)+E2)
et la recopier vers le bas jusqu'en E8
en F3, inscrire la formule :
=SI(E3="";"";INDEX(C$3:C$8;E3))
et la recopier vers le bas jusqu'en F8
=EQUIV("zaza*";B3:B8;0) renvoie la position de la première zaza dans B3:B8, soit 1, donc B3
la position de la deuxième sera logiquement trouvée avec =EQUIV("zaza*";B4:B8;0) soit 3, donc B6…
=EQUIV("zaza*";DECALER($B$3:$B$8;E2;0);0)+E2 inscrit en E3 et recopié vers le bas permet donc de trouver la position de tous les zaza dans la matrice B3:B8
Pour éviter d'afficher #N/A dans les cellules E6:E8 (il n'y a plus d'autres zaza), on fait un test d'erreur :
=SI(ESTERREUR(EQUIV("zaza*";DECALER($B$3:$B$8;E2;0);0)+E2);"";EQUIV("zaza*";DECALER($B$3:$B$8;E2;0);0)+E2)
En cas d'erreur, on replace la fonction par "", c'est à dire un texte vide.
Pour trouver les notes de zaza, il suffit d'utiliser la fonction INDEX
= INDEX(C$3:C$8;E3) renvoie la E3 ème valeur de C3:C8
pour éviter les problèmes avec les cellules vides, on fait un test : SI(E3=""….
=SI(E3="";"";INDEX(C$3:C$8;E3)) recopié vers le bas donne donc toutes les notes de zaza
Remarque
: il eût été plus simple d'utiliser un filtre !

Utilisation de GRANDE.VALEUR , EQUIV et INDEX
Classer une liste par notes

GRANDE.VALEUR(notes ; rang) donne la note de la nième classée
EQUIV (note ; colonne des notes) donne la ligne correspondant à la note note
INDEX (colonne des noms ; ligne correspondant à note) renvoie le nom de la nième classée


 

Utilisation de GRANDE.VALEUR et EQUIV, formules matricielles
Rechercher la meilleure note de chaque individu de la liste

sélectionner W3:W7, inscrire dans la barre de formule :
=INDEX($B$1:$B$9;GRANDE.VALEUR(SI(EQUIV($B3:$B7;$B3:$B7;0)=LIGNE()-2;LIGNE($B3:$B7);0);LIGNE($B3:$B7)-2))
valider la formule par CTRL+MAJ+Entrée (formule matricielle)
En X3, inscrire dans la barre de formules :
=MAX(($C$3:$C$7)*($B$3:$B$7=W3))
valider la formule par CTRL+MAJ+Entrée (formule matricielle)
recopier vers le bas jusqu'en X7
=EQUIV($B3;$B$3:$B$7;0) va donner la position de truc (texte de B3) dans la matrice B3:B7
en fait, la formule donne la position du premier "truc" s'il y en a plusieurs
la formule matricielle sur 6 lignes {=EQUIV($B3:$B7;$B3:$B7;0)} donne donc la position des noms inscrits en B3:B7 dans la liste B3:B7. S'il n'y avait pas de doublons, elle renverrait {1;2;3;4;5;6}.
Dans le cas précis elle renvoie {1;2;1;1;5} puisque EQUIV("truc";$B$3:$B$7;0) renvoie toujours 1.
Les numéros qui sont différents de {1;2;3;4;5;6} permettent donc de repérer les doublons.
Les doublons sont définis par la condition =SI(EQUIV($B3:$B7;$B3:$B7;0)=LIGNE()-2;…..
LIGNE()-2 correspond en effet à {1;2;3;4;5;6} puisque la liste démarre en ligne 3
La matrice {=SI(EQUIV($B3:$B7;$B3:$B7;0)=LIGNE()-2;LIGNE($B3:$B7);0)} va donc renvoyer les numéros de ligne des noms qui ne sont pas en doublon, et 0 pour les doublons.
Pour classer les doublons en dernier, on utilise GRANDE.VALEUR(liste;n) qui donne la ènième valeur d'une liste.
La matrice (sur 5 lignes) {=GRANDE.VALEUR(SI(EQUIV($B3:$B7;$B3:$B7;0)=LIGNE()-2;LIGNE($B3:$B7);0);LIGNE($B3:$B7)-2)} renvoie les numéros de ligne des noms qui ne sont pas en doublons.
La fonction INDEX permet de retrouver les noms dans la liste
{=INDEX($B$1:$B$9;GRANDE.VALEUR(SI(EQUIV($B3:$B7;$B3:$B7;0)=LIGNE()-2;LIGNE($B3:$B7);0);LIGNE($B3:$B7)-2))}
reste à partir des noms, à trouver la meilleure note, ce que fait en X3 la formule matricielle :
{=MAX(($C$3:$C$7)*($B$3:$B$7=W3))}
 
Avec des formules un peu plus compliquées, on peut éliminer les zéros en W6:X7 :
En W3:W7, formule matricielle
{=SI(ESTERREUR(INDEX($B$3:$B$7;PETITE.VALEUR(SI(EQUIV($B$3:$B$7;$B$3:$B$7;0)=LIGNE(INDIRE
CT("1:"&LIGNES($B$3:$B$7)));EQUIV(B3:B7;B3:B7;0);"");LIGNE(INDIRECT("1:"&LIGNES($
B$3:$B$7))))));"";INDEX($B$3:$B$7;PETITE.VALEUR(SI(EQUIV($B$3:$B$7;$B$3:$B$7;0)=LIGNE(IND
IRECT("1:"&LIGNES($B$3:$B$7)));EQUIV(B3:B7;B3:B7;0);"");LIGNE(INDIRECT("1:"&LIGNE
S($B$3:$B$7))))))}
En X3, formule matricielle {=SI(W3<>"";MAX(($C$3:$C$7)*($B$3:$B$7=W3));"")} à recopier vers le bas.
Remarque
: encore un cas où l'utilisation d'un filtre est plus rapide
 

Graphique évolutif
Comment faire en sorte que le graphique se mette à jour quand on ajoute une ligne ?
Par exemple pour un graphique historique de cours de bourse, quand on ajoute une donnée (le dernier cours de clôture par exemple).
De multiples solutions sont possibles :

  1. modifier manuellement la plage source à chaque nouvelle saisie

  2. Graphique / Données Source / Plage de données ou série,
    Modifier la plage de données en l'allongeant.
  3. copier les nouveaux points de données dans le graphique

  4. Sélectionner les nouvelles valeurs (valeurs et étiquettes ou abscisses), Edition / copier
    Sélectionner le graphique / Edition / collage spécial / Ajouter les cellules comme nouveaux points
  5. faire un graphique plus grand d'une ligne que nécessaire.

  6. Avant d'ajouter une donnée, insérer une nouvelle ligne entre le tableau et cette dernière ligne qui reste vierge.
    Le tableau de données du graphique, limité par cette ligne vierge, devient donc élastique.
    Inconvénient de la méthode, il ne faut pas oublier d'insérer une nouvelle ligne à chaque saisie.
  7. utiliser un graphique en nuage de points

  8. Prévoir une zone de graphique suffisamment large pour permettre l'ajout de nouvelles données
    Les cellules vides ne sont pas prises en compte par le graphique en nuage de points.
    L'échelle de l'axe des abscisses se règle automatiquement, et la taille de l'axe est donc toujours adaptée au graphique Le graphique grandit avec le tableau
  9. utiliser une plage nommée variable comme zone de données source


La plage qui sert de données sources s'adapte à la longueur du tableau de données
Pour définir la plage : Insertion / nom / définir /
plagex =DECALER($A$2;;;NBVAL($A:$A);1)
Insertion / nom / définir / plagey =DECALER($B$2;;;NBVAL($A:$A);1).
Utiliser les plages ainsi nommées comme plages source pour le graphique :
Graphique / Données Source / Série / Valeurs =graf.xls!plagey / Etiquettes de l'axe =graf.xls!plagex
(graf.xls est le nom du fichier Excel contenant les données source).
 

Ajouter des étiquettes sur chaque point d'un graphique
Une lacune d'Excel : Excel ne sait pas afficher automatiquement à coté du point autre chose que la valeur (y) ou la donnée x (étiquette pour les courbes, valeur de l'abscisse pour les nuages de points). Les étiquettes doivent être changées l'une après l'autre manuellement.
Il est impossible de remédier à ce problème sans macro.
Un mauvais palliatif, dans le cas d'un graphique "en courbe", consiste à créer dans le graphique une seconde courbe identique à la première, ce qui permet de créer un axe des abscisses secondaire qui peut porter des étiquettes différentes du premier.
Il suffit de masquer l'un des axes (graphique / options / axes) pour obtenir une courbe avec ses étiquettes.
L'intérêt est tout relatif puisqu'on ne peut pas utiliser cette technique pour un graphe en nuage de points…


 
 

Formats conditionnels : mettre en évidence les trois plus grandes valeurs d'un tableau

Sélectionner le tableau.
Format / Mise en forme conditionnelle / la valeur de la cellule est supérieure ou égale à =GRANDE.VALEUR($B$2:$G$16;3)
GRANDE.VALEUR($B$2:$G$16;3) représente la troisième plus grande valeur du tableau.
On pourrait facilement mettre (en même temps) d'une autre couleur les trois plus petites valeurs du tableau en utilisant une deuxième condition basée sur la fonction PETITE.VALEUR..
 

Formats conditionnels : test de cohérence sur une série de données
Le tableau présente les résultats des valorisations d'une série de sociétés par différentes méthodes.
Comment mettre en évidence les valeurs aberrantes ?

Le format conditionnel est basé sur des critères qui détectent les valeurs qui s'écartent de plus de 20% de la moyenne des valorisations.
 
Autre exemple du même genre, détecter l'évolution des ratios boursiers d'un mois sur l'autre :
Placer sur une même feuille les ratios boursiers des deux mois. Problème, le nombre de sociétés varie et les sociétés n'apparaissent pas sur la même ligne.
Sélectionner le tableau des ratios les plus récents, avec en colonne AR les noms des sociétés.
Format / mise en forme conditionnelle / si la valeur de la cellule est inférieure à =0.8*RECHERCHEV($AR139;$A:$AP;1+COLONNE(AU139)-COLONNE($AR139);FAUX) / format fond bleu / si la valeur de la cellule est inférieure à =1.2*RECHERCHEV($AR139;$A:$AP;1+COLONNE(AU139)-COLONNE($AR139);FAUX) / format fond bleu.