Mettre en évidence le maximum de chaque série

Fermé
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 30 mars 2017 à 13:58
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 31 mars 2017 à 09:40
Bonjour,

Dans un tableau xlsx de ce type :

NOM PRENOM DU AU

DURAND Pierre 01/09/2016 01/10/2016
DURAND Pierre 02/10/2016 11/12/2016
DURAND Pierre 03/01/2017 05/02/2017
DUPONT Jacques 05/09/2016 01/10/2016
DUPONT Jacques 01/01/2017 13/06/2017
BLANC Georges 06/09/2016 13/09/2016
BLANC Georges 15/09/2016 31/08/2017
etc

je souhaite mettre en évidence la date "AU" la plus récente de chaque nom différent : ce qui est en gras dans l'exemple ci-dessus.
Pour ce qui est de récupérer la valeur max, à priori la foinction MAX pourrait le faire mais pour il me manque le concept de "pour chaque nom différent lu"

Auriez-vous idée d'un truc simple de préférence (sans vba ce serait top)

Merci

5 réponses

eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 392
Modifié le 22 juin 2018 à 16:03
En fait ça fonctionne, je me suis planté avec la fonction

=$AO2=MAX(SI($V$2:$V$1000=$V2;$AN$2:$AO$1000)

j'ai mis la valeur 2 pensant que cela concernait la deuxième ligne du tableau, la première étant constituée d'en-têtes. Il faut bien mettre 1 comme proposé.
Cela n'a manifestement rien à voir

Serait-il possible à ce propos d'avoir une explicitation de cette formule ? Cela m'aiderait à mieux comprendre

Merci en tout cas pour cette aide concluante.
Je ne mets pas encore résolu car j'aurais peut être encore une ou deux questions. Je fais qques essais et reviens dans pas longtemps.

Bonne journée

Edit:

Pour déterminer les individus qui sont disponibles à ce jour, soit ceux dont la dernière date de fin de contrat est inférieure à aujourd'hui, il suffit d'entrer dans la formule de MFC + mise en couleur de son choix :

=ET($AR2=MAX(SI($W$2:$W$1000=$W2;SI($AR$2:$AR$1000<AUJOURDHUI();$AR$2:$AR$1000)));SOMMEPROD(($W$2:$W$1000=W2)*($AQ$2:$AQ$1000<=AUJOURDHUI())*($AR$2:$AR$1000>=AUJOURDHUI()))=0)

Considérant les colonnes suivantes dans n'importe quel tableau :

AR = date de fin de contrat au format JJ/MM/AAAA
AQ = date de début de contrat au format JJ/MM/AAAA
W = Matricule (chaque agent a son propre matricule)

pour chaque matricule, la plage correspondante à toutes les périodes est balayée. Le dernier contrat est mis en forme en couleur si la date la plus récente est inférieure à aujourd'hui.
1
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
30 mars 2017 à 14:21
Bonjour ,

En utilisant la fonction MAX.SI si votre excel est récent (version 2016).

Sinon :
=MAX(SI(A1:A5="Dupont";D1:D5;""))

ATTENTION : Ceci est une formule matricielle : à valider en appuyant simultanément sur Ctrl Shift et Enter

Cordialement,
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
30 mars 2017 à 14:23
Bonjour
voyez ici, à adapter
https://mon-partage.fr/f/wudifs8i/
crdlmnt


0
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 392
30 mars 2017 à 16:05
Bonjour,

merci pour vos réponses.
Les plages étant amenées à évoluer (ajout de lignes au fur et à mesure) j'ai choisi et adapté la deuxième solution. Néanmoins on dirait qu'il y a 2 problèmes :

- seules les avant dernières dates sont mises en surbrillance, et non pas les dernières, exemple : 15/02/2017 est surligné au lieu de 12/04/2017

- certains noms ont plusieurs dates sélectionnées, par exemple :

31/08/2016 23/10/2016
24/10/2016 07/05/2017


=> pour DUPONT

08/03/2017 29/03/2017
30/03/2017 26/04/2017


=> pour BLANC

Dans mon tableau la date de fin est la colonne AO, la colonne "NOM" est la colonne V et la colonne date de début est AN

D'où l'adaptation :

=$AO2=MAX(SI($V$2:$V$500=$V2;$AN$2:$AO$1000)

J'ai mis 1000 car le tableau fait actuellement 650 lignes et évoluera.
Je n'ai pas fait la même chose pour la colonne date de début : fallait-il ?

Merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié le 30 mars 2017 à 16:43
Re
  • je ne vois pas le problème que vous évoquez du moins pas dans mon exemple.S'il subsiste, déposez un modèle de vos infos ici:

https://mon-partage.fr
et revenez ici (ou en privé si vous préférez) coller le lien créé sur le site
  • Pour la colonne début, il n'est pas utile de placer une MFC si vous êtes sur que la date maxi pour chaque nom est bien dans l'autre colonne (j'ai proposé les deux options au cas où), mais ça c'est vous qui savez
  • dans votre formule veillez à ce que les champ en V et AO aient bien la même hauteur (un à 500 l'autre à 1000)
  • si votre MFC ne s'adresse qu'à la colonne O, limitez le champ de dates considérées à AO2:AO1000, chercher dans AN n'est pas utile


crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié le 31 mars 2017 à 09:41
Alors petite explication

vous pouvez placer la formule dans une cellule pour voir ce qui se passe, mais sans l'égalité du début:

=MAX(SI($V$2:$V$1000=$V2;$AN$2:$AO$1000))

cette formule est matricielle par défaut dans une MFC, mais pas dans une cellule

elle doit donc alors être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées. Elle s'affiche automatiquement entre accolades dans la barre de formule

Elle est matricielle car elle analyse la page ligne par ligne

SI($V$2:$V$1000=$V2
détecte les lignes de V qui contiennent la valeur (texte ou num) de V2

MAX(.........;$AN$2:$AO$2000)
compare toutes les valeurs de la plage, mais uniquement sur les lignes détectées précédemment pour en ressortir la valeur maximum.
C'est aussi simple que ça

Vous pouvez donc, par exemple, avec cette formule, faire un tableau avec la liste exhaustive des noms de la colonne V et en face, tirer cette formule sur la hauteur de la liste pour avoir la date au plus tard pour chacun des noms

(Dans la MFC, en complément elle se rapporte à une égalité entre une cellule de la plage et le max trouvé =AO2=.......)


crdlmnt
0