XL 2010 Formule avec date la plus ancienne sur doublons

Cherrylie

XLDnaute Junior
Bonjour à tous,

J'essaye de mettre une formule dans mon tableau qui me mettrait "OUI" dans la colonne "Archiver ?" mais seulement si c'est la date la plus ancienne parmi les lignes qui correspondent au même "code formation". (voir tableau en exemple en pièce jointe)

J'ai essayé la formule suivante : =SI(ET(NB.SI([code formation];[@[code formation]])>1;MIN([DATE FORMATION])=[@[DATE FORMATION]]);"OUI";"NON")

Mais elle prend en considération toutes les lignes pour la date mini alors que je veux qu'elle cherche la date mini uniquement sur les lignes qui correspondent à mon code formation.

à savoir que le fichier joint n'est qu'un exemple, la version officielle s'alimentera régulièrement et le tableau sera beaucoup plus conséquent ce qui implique qu'il peut y avoir plus de deux lignes avec le même code formation.

Avez-vous une idée de formule qui pourrait me donner ce que je souhaite svp ?

J'espère que j'ai été suffisamment claire dans ma demande.

Merci d'avance à celui ou celle qui me proposera une solution :)
 

Pièces jointes

  • Classeur1.xlsx
    9.8 KB · Affichages: 6
Solution
Bonjour à tous,

A essayer cette formule matricielle
VB:
=SI($A2=GRANDE.VALEUR(SI([code formation]=[@[code formation]];[DATE FORMATION]);1);"Oui";"Non")
ou
Code:
=SI($A2=MAX(SI([code formation]=[@[code formation]];[DATE FORMATION]));"Oui";"Non")

JHA

chris

XLDnaute Barbatruc
Bonjour

Tes dates sont des textes et non des dates donc commence par régler cela puis en matriciel à valider par CTRL Shift Entrée
VB:
=SI([@[DATE FORMATION]]=MIN(SI([code formation]=[@[code formation]];[@[DATE FORMATION]];0));"OUI";"NON")
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer cette formule matricielle
VB:
=SI($A2=GRANDE.VALEUR(SI([code formation]=[@[code formation]];[DATE FORMATION]);1);"Oui";"Non")
ou
Code:
=SI($A2=MAX(SI([code formation]=[@[code formation]];[DATE FORMATION]));"Oui";"Non")

JHA
 

Pièces jointes

  • Classeur1 (1).xlsx
    11.8 KB · Affichages: 2

Cherrylie

XLDnaute Junior
Bonjour

Tes dates sont des textes et non des dates donc commence par régler cela puis en matriciel à valider par CTRL Shift Entrée
VB:
=SI([@[DATE FORMATION]]=MIN(SI([code formation]=[@[code formation]];[@[DATE FORMATION]];0));"OUI";"NON")
Bonjour Chris, Bonjour JHA,

Tout d'abord, merci pour vos réponses. J'ai essayé vos formules sur mon fichier source mais ça ne fonctionne pas. Pourtant, ça fonctionne bien lorsque le l'applique sur mon fichier exemple "Classeur 1".

Je n'y comprend plus rien, la disposition est la même et la mise en forme également mais les formules marchent sur un fichier mais pas sur l'autre.
 

chris

XLDnaute Barbatruc
RE

Comme dit sur ton classeur les dates ne sont pas des dates dont les minimum n'ont pas de sens

J'ai utilisé MIN car tu parlais de la plus ancienne.

Ton test NB.SI est effectivement pertinent si on n'a qu'une date et ta formule fonctionne si on a bien des dates

Le format ne change pas le type de la donnée...
 

Deadpool_CC

XLDnaute Accro
J'ai remis les dates au format date mais ça ne fonctionne pas... Il me met automatiquement "Non" sur toutes les lignes

Bonjour,
Mettre le format date ne suffit pas, il faut convertir les dates textes en date réelles excel.
Sélectionne la colonne ou tu as tes dates texte
dans onglet [données] utilise convertir (choisir délimité, "Suivant", "Suivant", choisir "date" et "Terminer")
ta colonne devrait maintenant contenir des vraies dates Excel et non pas du texte ressemblant à une date.
 

Cherrylie

XLDnaute Junior
Re ! Bonjour à tous !

C'est bon, j'ai réussi à résoudre le problème et à mettre la formule qu'il faut. J'ai juste rajouté une colonne dans laquelle j'ai remis la date mais en format nombre et appliqué la formule de JHA et ça a fonctionné :)


Merci à tous pour votre aide !
Thanks Thank You GIF by bluesbear
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Formule SI
Réponses
4
Affichages
405

Statistiques des forums

Discussions
315 126
Messages
2 116 489
Membres
112 763
dernier inscrit
issam2020