Mise en forme conditionnelle avec formule vectorielle

Bonjour,

Je voudrais faire une mise en forme conditionnelle (faire un surlignage) des 2 plus grandes valeurs d'une colonne C pour chacune des séries identifiées dans la colonne B.
Ma formule est : {=C2>=(GRANDE.VALEUR(($B$2:$B$100=B2)*$C$2:$C$100;2))}
Mais je n'arrive pas à rentrer cette formule dans la fenêtre qui s'ouvre pour la mise en forme conditionnelle avec formule; est-ce normal. Il y a-t-il une solution ?
Merci ce votre aide.

Bonjour à tous,
=C2>=GRANDE.VALEUR(($B$2:$B$100=B2)*$C$2:$C$100;2)

ça suffit

Crdlmt

Bonjour Enmiquel ,

Quand on saisit une formule matricielle comme condition de MFC, il est inutile de la valider avec la combinaison des trois touches Ctrl+Maj+Entrée.

Excel sait déterminer par lui-même si la formule est matricielle ou non et agit en conséquence.

D'ailleurs sur les Excel récents, même la validation des formules matricielles sur feuille de calcul se fait maintenant avec la seule touche Entrée.

Merci à tous les deux.

Votre aide est superbement efficace.

Aie aie aie,
Maintenant j'essaie de faire la même chose sur les plus petites valeurs
=C2<=PETITE.VALEUR(($B$2:$B$100=B2)*$C$2:$C$100;2)
mais évidemment ça ne marche pas car pour toutes les lignes ou Bi est différent de B2 alors la formule donne 0 et c'est la plus petite valeur.
Comment faire dans ce cas là ?

=ET(C2<>0;C2<=($B$2:$B$100=B2)*$C$2:$C$100;2))

Crdlmt

? ? Je ne comprends pas cette formule. Il n'y a plus le petite.valeur et à quoi fait référence le ;2 de la fin de la formule ?
Merci de votre aide.

=ET(C2<>0;C2<=PETITE.VALEUR(($B$2:$B$100=B2)*$C$2:$C$100;2))

ma souris a glissé : un copier/coller defaillant !

Crdlmt

Je crois que ça marche en faisant :
=c2<=PETITE.VALEUR((SI($B$2:$B$40=B2;1;9999))*$c$2:$c$40;2)

pas chez moi

Ce qui fonctionne c'est

=PETITE.VALEUR(GRANDE.VALEUR(($B$2:$B$40=B2)*$c$2:$c$40;LIGNE(INDIRECT("$1:"&SOMME(($c$2:$c$40=$B$2)*1))));2)

Crdlmt

ps;

j'ai corrigé la formule !

hé bé :))
J'essaierai demain. Mais est-ce normal les deux fois où il y a "$$c$2" ?

c'est bien, tu suis .....Ben non

le principe de la formule, c'est avec grande valeur, on fait une matrice de la plage sans ses zéros

LIGNE(INDIRECT("$1:"&SOMME(($c$2:$c$40=$B$2)*1))

puis là, on peut utiliser petite.valeur

Merci.
J'ai mis un peu de temps car cela ne marche pas si il n'y a qu'une seule valeur de type C2 dans la colonne C (alors que je veux surligner les 2 plus petites).
J'ai donc rajouter un test du genre
si(nb.si($c$2:$c$100;c2)=1; faux; d2<=petite.valeur(grande.valeur..... )
... sauf que ça ne marche pas :((
voici la formule
=SI(NB.SI($C$2:$C$100;C2)=1;FAUX;D2<=PETITE.VALEUR(GRANDE.VALEUR(($C$2:$C$100=C2)*$D$2:$D$100;LIGNE(INDIRECT("$1:"&SOMME(($C$2:$C$100=$C2)*1))));2))

cette formule fonctionne en forme vectorielle quand je la mets par exemple dans la colonne E (j'ai les "vrai" et "faux" là où il faut, mais cela ne marche pas quand je la copie dans la fenêtre de formule de mise en forme conditionnelle.

oups,
finalement ma formule marche.... j'avais juste du texte dans une cellule en col D, et donc pas possible de faire le produit
($C$2:$C$100=C2)*$D$2:$D$100

C'est super, mais quelle difficulté alors que c'est "relativement" plus simple pour surligner les plus grandes valeurs.... (le relativement est trés relatif :)))
Merci encore de votre aide.

Alors mets en resolu et mets a jour ta version d'excel dans ton profil, car pour ceux qui n'ont pas de mac "16.41 pour mac" ça correspond a quoi sous windows (2016,2021, 365 ???).

Avec 365, la formule eut été différente et plus simple !

Crdlmt

Rechercher des sujets similaires à "mise forme conditionnelle formule vectorielle"