Google Sheets mfc avec MAX/MIN si valeur en double dans une autre colonne

Bonjour a tous,

Je gère un tableau de commande avec plusieurs produits dans une colonne et les prix dans une autre (plage H8:O, I8:J est fusionné).

Chaque produit peut être vendu par différents fournisseurs, donc le prix d'une produit peut varier.

Je souhaiterais faire une mise forme conditionnelle dans la colonne du prix pour connaitre tout le temps le prix le plus chère et le moins chère de chaque produit.(plus chère en rouge et moins chère en vert).

J'ai essayé plusieurs formules mais ca ne fonctionne pas juste une me paraît proche du résultat souhaité,la voici:

=N8=ARRAYFORMULA(MAX(SI(NB.SI($H$8:$H;$H8:$H)>1=VRAI;$N$8:$N)))

Voici une capture d'écran du résultat obtenu avec cette formule:

mfc max

Voici une capture d'écran du résultat que je souhaiterais:

espere mfc max

Merci d'avance.

je ferais la chose suivante

un query pour chercher le min et le max de chaque produit en une formule, que j'ai mis ici en U7

=query({H8:H,N8:N},"select Col1,Min(Col2),Max(Col2) group by Col1")

ensuite l'indication min/max dans une colonne en une formule unique ici en O8

=iferror(arrayformula(if(N8:N=vlookup(H8:H,U:W,2,0),"min",if(N8:N=vlookup(H8:H,U:W,3,0),"max",))))

ensuite tu peux mettre une MFC

image

D'accord, donc tu penses qu'il n'y a aucun moyen de faire uniquement une mise en forme conditionnelle en fonction des colonnes déjà existantes sans avoir a en ajouter?

si c'est possible sans ajouter de colonne

mais avec le query quand même

pour max (rouge)

=$N8=vlookup($H8,$U:$W,3,0)

pour min (vert)

=$N8=vlookup($H8,$U:$W,2,0)
image

Ta formule collée en U7 me donne cette erreur

error mfc max

Voici la formule que j'ai mise:

=QUERY({H8:H;N8:N};"select Col1,Min(Col2),Max(Col2) group by Col1")

J'ai changé le virgules par des point-virgule

en changeant de région, il faut aussi remplacer la virgule par antislash ici

{H8:H,N8:N}
image

c'est pour cela que c'est parfois utile de partager les fichiers

la formule est donc

=query({H8:H\N8:N};"select Col1,Min(Col2),Max(Col2) group by Col1")

dans une matrice virtuelle encadrée par {}

en FR et US ; veut dire empiler

en FR \ et en US , veut dire juxtaposer

Ok super, pour l'instant ca fonctionne comme ca, le top aurait été de ne pas rajouter de colonnes pour l'esthétique..

J'ai essayé une formule qui identifie produit par produit, je trouve le montant maximum dans la colonne mais ca colorise tous les même montants de la colonne.

=N8=MAXIFS($N$8:$N;$H$8:$H;"POELE")

Voici ce que ca donne:

mfc max

oui, j'avais bien pensé à MINIFs et MAXIFs mais je n'ai pas trouvé rapidement et je me suis rabattu sur mes habitudes comme query (qui ne peut pas être mis dans une formule de MFC comme toutes les fonctions matricielles)

Bon tout fonctionne c'est parfait..

Merci aussi pour le petit cours de ponctuation, j'ai bloqué sur ce problème il y a pas longtemps donc maintenant je comprends.

Dernière question sur le sujet,

Si je paye par exemple le même produit 3 fois au même prix, les 3 montants sont colorisés.

Est-ce qu'il serait possible de coloriser seulement le dernier, celui le plus bas?

très complexe en MFC "directe", et je ne sais même pas par quel bout le prendre

mais si on poursuit avec le query un peu modifié cela doit pouvoir se faire

query

=arrayformula(query({H8:H,N8:N*1000+row(N8:N)},"select Col1,Min(Col2),Max(Col2) group by Col1"))
-ou-
=arrayformula(query({H8:H\N8:N*1000+row(N8:N)};"select Col1,Min(Col2),Max(Col2) group by Col1"))

MFC vert

=and($N8=int(vlookup($H8,$U:$W,2,0)/1000),row($N8)=mod(vlookup($H8,$U:$W,2,0),1000))
-ou-
=and($N8=int(vlookup($H8;$U:$W;2;0)/1000);row($N8)=mod(vlookup($H8;$U:$W;2;0);1000))

MFC rouge

=and($N8=int(vlookup($H8,$U:$W,3,0)/1000),row($N8)=mod(vlookup($H8,$U:$W,3,0),1000))
-ou-
=and($N8=int(vlookup($H8;$U:$W;3;0)/1000);row($N8)=mod(vlookup($H8;$U:$W;3;0);1000))
image

mais cela dépend de la plage de données ! j'ai pris ici des valeurs entières et un nombre de lignes inférieur à 999

J'ai réussi a obtenir une réponse sur un autre forum uniquement avec une mise en forme conditionnelle.

Donc pour les valeurs les plus élevées (en rouge) :

=(NB.SI.ENS(I$8:I;I8;O$8:O;">"&O8)=0)*(NB.SI.ENS(I8:I;I8;O8:O;O8)=1)

et le valeurs les moins élevées (en vert):

=(NB.SI.ENS(I$8:I;I8;O$8:O;"<"&O8)=0)*(NB.SI.ENS(I8:I;I8;O8:O;O8)=1)

Voila, j'espère que ca aidera quelqu'un.

génial, merci pour ce partage !

Rechercher des sujets similaires à "google sheets mfc max min valeur double colonne"