Faire afficher le nombre le + grand

F

Fred

Guest
Bonjour à toutes et à tous,

Après quelques vacances la reprise.

Voici mon problème :

J'ai une 1ère colonne qui fait office de classement, une 2ème colonne avec des chiffres (ce sotn des âges) et une 3ème colonne avec un choix de sexe "H" ou "F"et dans une cellulle je voudrais faire afficher chiffre du classement qui représente le 1er homme le plus jeune, ou le 1er homme le plus âgé ou la 1ère femme la plus jeune ou encore la 1ère femme la plsu vieille.
exemple :
1 32 H
2 28 H
3 45 F
4 50 H
5 21 F
6 16 H
7 10 F

1er homme le plus jeune : le 6
1er homme le plus vieux : le 4
1ère femme la plus jeune : le 7
1ère femme la plus vieille : le 3

Merci d'avance à toutes et à tous.
 
F

Fred

Guest
euh pardon mais j'ai un petit soucis, quand j'ajoute une 3ème condition, à savoir F/H (pour un couple femme/homme) ou F/F (pour un couple F/F) je n'obtiens pas le résultat si j'ai F/H ou F/F, il me donne le 1er plus petit âge quelque soit si si c'est un H ou une F ou couple F/F ??

Voici ma 1ère formule pour déterminer l'âge :

{=PETITE.VALEUR(SI(OU(classement!F8:classement!F106=D$14;classement!F8:classement!F106=E$14;classement!F8:classement!F106=F$14);classement!D8:classement!D106);1)}

De classement!F8 à classement!F106 correspondent à la colonne du sexe, D14 correspond à F, E14 à F/F et F14 à F/H quant au classement!D8 à classement!D106 cela correspond à la colonne des âges.

et voici ma 2ème formule pour déterminer le numéro de classement :

{=INDEX(classement!A8:classement!A106;EQUIV(PETITE.VALEUR(SI(OU(classement!F8:classement!F106=D$14;classement!F8:classement!F106=E$14;classement!F8:classement!F106=F$14);classement!D8:classement!D106);1);classement!D8:classement!D106;0))}

De classement!A8:classement!A106 cela correspond au numéro de classement.

Voilà j'éspère que vous en avez assez pour m'aider à comprendre ce qui ne va pas ????
 
M

Monique

Guest
Re,

Je ne réussis pas à comprendre à quel résultat tu veux arriver.

Voici ta 1ère formule raccourcie, en nommant les plages :
=PETITE.VALEUR(SI(OU(sexe=D$14;sexe=E$14;sexe=F$14);age);1)
Elle te donne l'âge du plus jeune, quelque soit le sexe.
OU(sexe=D$14;sexe=E$14;sexe=F$14)
revient à dire : que ce soit F, ou bien que ce soit FF ou bien FH
Sinon, tu as un âge pour un couple : c'est une moyenne ?
Cette formule te donne l'âge du 2è, quelque soit le sexe :
=PETITE.VALEUR(SI(OU(sexe=D$14;sexe=E$14;sexe=F$14);age);2)

Ta 2è formule avec les plages nommées :
=INDEX(numero;EQUIV(PETITE.VALEUR(SI(OU(sexe=D$14;sexe=E$14;sexe=F$14);age);1);age;0))
elle aussi ne peut te renvoyer que le n° du plus jeune, qu'il soit F ou FF ou FH
Le n°, quelque soit le sexe :
=INDEX(numero;EQUIV(PETITE.VALEUR(SI(OU(sexe=D$14;sexe=E$14;sexe=F$14);age);2);age;0))

Mais où sont les H de tout à l'heure ?
Tu devrais peut-être séparer H, F, HF et la suite ?
Ou bien joindre un fichier allégé et zippé.
 
F

Fred

Guest
merci je voulais t'envoyer un fichier allége de mon prog. et tu vas rire mais sur le fichier que je voulais te joindre cela fonctionne impec alors que sur mon prog cela ne marche pas, je vais reprendre les lignes que j'ai rajouté il doit y avoir une erreur.

Merci et je te tiendrai au courant si cela c'est arrangé.
 
F

Fred

Guest
ggggrrrrrrrrrr

regardes le fichier joint, pas de blème avec les cases remplies , impec cela marche mais dès qu'une case en l'occurence là en classement!C8 tu ne mets rien et ben bing il me mets le résultat du plus jeune mais c'est un homme et non une femme ???!!!!
 

Pièces jointes

  • AGE.xls
    16.5 KB · Affichages: 71
  • AGE.xls
    16.5 KB · Affichages: 81
  • AGE.xls
    16.5 KB · Affichages: 88
J

Jean-Marie

Guest
Bonjour,

Tu devrais plutôt écrire ceci, à valider par Ctrl+Shift+entrer

=PETITE.VALEUR(SI(((classement!E5:E12=D$10)*(classement!E5:E12=E$10)+(classement!E5:E12=F$10))=0;65536;classement!C5:C12);1)

Pour l'instant, je n'ai pas d'explication, prise individuellement les conditions renvoient bien faux ou la valeur.

Bonne journée

@+Jean-Marie
 
M

Monique

Guest
Bonjour,

En résumé, ça donne cette formule :
=PETITE.VALEUR(SI((((sexe=Fe)+(sexe=FF)+(sexe=FH))*(AgePil>0));AgePil);1)
Les lettres Fe, FF et FH sont des cellules nommées contenant F, FF et FH

Condition à l'intérieur de la formule :
SI(((sexe=Fe)+(sexe=FF)+(sexe=FH))*(AgePil>0))
Le + équivaut à OU et le * équivaut à ET
= n'importe lequel de ces 3 sexes, et que la cellule âge soit > 0

Mais c'est dommage qu'il n'y ait pas une colonne sexe pour le pilote et une pour le navigateur.
 

Pièces jointes

  • AGE_Fred.zip
    4.7 KB · Affichages: 63
F

Fred

Guest
Merci Jean Marie et Monique.

Il est vrai que vous vous rejoignez tout les deux.
Monique j'aime bien le dernier fichier que tu m'as envoyé.
D'ailleurs je l'ai adopté.

Comme tu l'a dis Monique, j'ai fait une colonne supplémentaire pour le sexe du navigateur, ce qui facilite la recherche pour le navigateur.

Mais j'aimerais encore un dernier truc pour ce prog, c'est comment faire ressortir la 1ère femme du classement et le 1er homme du classement (qu'ils soient en solo ou en équipage).

Merci pour vos exemples c'est un régal de lire vos fonctions.
 
M

Monique

Guest
Bonsoir,

Recherchev ne va pas accepter 36 conditions.

Rang de la première femme du classement :
=PETITE.VALEUR(SI((((sexe=Fe)+(sexe=FH)+(sexe=FF)));classement);1)
Son nom :
=INDEX(nom;EQUIV(PETITE.VALEUR(SI((((sexe=Fe)+(sexe=FH)+(sexe=FF)));classement);1);classement;0))
Rang du premier homme du classement :
=PETITE.VALEUR(SI((((sexe=Ho)+(sexe=FH)+(sexe=HH)));classement);1)
Son nom :
=INDEX(nom;EQUIV(PETITE.VALEUR(SI((((sexe=Ho)+(sexe=FH)+(sexe=HH)));classement);1);classement;0))
Tout en matriciel
Tu changeras les noms dans la formule si besoin.
 
F

Fred

Guest
Monique,

Je viens de m'apercevoir un truc bizarre dans le dernier fichier que tu m'as envoyé intitulé AGE_FRED.

Quand j'ai mis en pratique dans mon prog ce que tu m'as mis dans le fichier , j'ai constaté sur mon prog que quand j'avais deux âge identique avec un pilote homme et un pilote femme (exemple : mettre 22 en C5) et ben le résultat dans la feuille poduim s'en trouve perturbée, pour preuve avec 22 en C5, donc même âge pour un homme que pour une femme (22 en C8), la 1ère femme pilote la plus jeune se trouve être alors l'homme classé qui a 22 ans en C5 !!!!??

Là je pige plus car pourtant les fonctions ont l'air bonnes ???
 
J

Jean-Marie

Guest
Re...

La fonction EQUIV() renvoie la première valeur trouvée dans la plage correspondant à la recherche.

Il y a un fichier sur le forum que tu dois récupérer Lien supprimé, il t'expliquera comment prendre en compte les doublons.

@+Jean-Marie
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 756
Messages
2 091 735
Membres
105 060
dernier inscrit
DEDJAN Gaston