Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Albel

XLDnaute Nouveau
Bonjour,

Après avoir essayé de trouver un sujet qui pouvait m'éclairer, je m'en remets à vous si vous avez une solution à mon problème.

En fait, j'entre des nombres (colonne B) pour différents pays (colonne A) et comme le même pays peut apparaître plusieurs fois, j'aimerais dans la colonne C, obtenir la valeur max de la colonne B pour tous les pays de la colonne A.
Le problème vient bien entendu de la colonne A qui peut contenir de nombreux doublons. Donc la colonne C doit uniquement extraire une valeur max pour chacun des pays identiques.

Pour plus de clarté, je vous mets un fichier en exemple

Merci beaucoup par avance,

Albel
 

Pièces jointes

  • Exemple.xls
    21.5 KB · Affichages: 77
  • Exemple.xls
    21.5 KB · Affichages: 81
  • Exemple.xls
    21.5 KB · Affichages: 86

Excel-lent

XLDnaute Barbatruc
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Bonjour et bienvenu sur le forum Albel,

Le sujet suivant aurais pû t'éclairer pour trouver la solution.

En tout cas, pour ma part elle m'a aidé à te répondre :)

Formule à coller en C1 :
(attention c'est une formule matricielle, donc pour valider la saisie cliquer sur "CTRL" + "SHIFT" + "ENTRE")
Code:
=SI(MAX(SI($A$1:$A$8=A1;$B$1:$B$8))=B1;MAX(SI($A$1:$A$8=A1;$B$1:$B$8));"")

Ensuite, il te restera plus qu'à la recopier vers le bas.

Comme tu l'auras peut-être deviné, je me suis inspiré de la réponse de Laurent (n°6) :
Code:
=MAX(SI($D$1:$D$2000=$K23;I$1:I$2000))

Bonne après midi
 

Albel

XLDnaute Nouveau
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Merci beaucoup Excel-lent, j'avais déjà vu cette formule mais je n'avais pas voulu l'essayer car je croyais qu'il fallait toujours faire CTRL + MAJ + ENTREE pour mettre à jour une cellule contenant une formule matricielle.
Du coup, j'ai quand même essayé et c'est bète mais je crois que je viens d'apprendre quelque chose de très important sur Excel (oui je sais, je suis assez nouveau dessus...)

Du coup, tout fonctionne parfaitement, encore merci :)

Albel
 

Albel

XLDnaute Nouveau
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Excusez-moi, je me repenche sur mon fichier excel et en tombant sur un autre problème, je vois que j'ai oublié de mentionner un autre point...

Le fichier précédent fonctionne très bien sauf lorsque par exemple deux pays sont identiques en colonne A et leurs valeurs sont égales et sont en même temps les valeurs max.

C'était le problème de doublons dont je parlais tout à l'heure que j'ai complètement oublié de vérifier...

Je remets un fichier avec les réponses que j'aurais voulu obtenir (j'ai remis le même nom de fichier par contre..)

Je ne sais pas du tout comment m'y prendre pour éviter ces doublons ... J'aurais bien des idées, mais cela devient très rapidement une usine à gaz alors quand il y a une centaine de ligne voire plus, cela devient ingérable.

Encore merci à la personne qui aura un moment pour se pencher dessus...

Albel
 

Pièces jointes

  • Exemple.xls
    23.5 KB · Affichages: 86
  • Exemple.xls
    23.5 KB · Affichages: 82
  • Exemple.xls
    23.5 KB · Affichages: 82

CISCO

XLDnaute Barbatruc
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Bonsoir à tous

Une solution en pièce jointe prenant en compte ta dernière remarque concernant les doublons avec max, toujours avec une formule matricielle.

@ plus
 

Pièces jointes

  • Albel.xls
    23 KB · Affichages: 105

Albel

XLDnaute Nouveau
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Merci pour cette réponse qui m'a l'air vraiment efficace!
Je ne connaissais pas l'association de ESTNUM(EQUIV()) mais je vais essayer de bien me pencher dessus pour la comprendre.

Encore merci à tout le monde, vous m'avez rendu un grand service ;)
 

CISCO

XLDnaute Barbatruc
Re : Renvoi des valeurs d'une colonne en fonction d'une autre colonne

Bonjour à tous

...de ESTNUM(EQUIV()) ....
Encore merci à tout le monde, vous m'avez rendu un grand service ;)

J'aurai bien voulu faire avec NB.SI,(pour voir si le nom&max était déja affiché au dessus de la ligne en cours) mais cette fonction ne peut pas toujours travailler avec des plages complexes, obtenues par exemple avec une autre fonction, & ici. J'ai donc contourné le problème en passant par ESTNUM(EQUIV()). Il y a certainement d'autre solutions.

@ plus
 

Discussions similaires

Réponses
2
Affichages
87

Statistiques des forums

Discussions
312 502
Messages
2 089 040
Membres
104 010
dernier inscrit
Freba