Partager via

Formule pour obtenir un report de la dernière valeur la plus récente

Anonyme
2022-11-16T09:48:41+00:00

Bonjour,

Sous Excel, j'ai un tableau de suivi des heures supplémentaires :

Quand je saisis un nom dans "agent", je voudrais que la case "solde début de mois" m'indique le solde "à reporter" le plus récent connu.

J'ai trouvé avec la formule =SOMME.SI.ENS([à reporter];[Agent];[@Agent];[Période];MOIS.DECALER([@Période];-1)) comment avoir la correspondance avec le mois précédent mais comment remonter au-delà ? Par exemple, pour monsieur Machin Bidule, comment faire apparaitre en C6 le résultat G4 alors qu'il n'y a pas eu de saisie en février ?

En gros, comment faire, en fonction de l'agent saisi, pour connaître son solde en début de période ?

Merci pour votre aide !

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2022-11-16T12:08:56+00:00

Pour recopier les cellules, regarde le tuto ici (c'est facile à faire, mais pas à expliquer) :

https://www.youtube.com/watch?v=b75ulP-EiKM

Pour la formule, avec cette disposition :

En C7, la partie ($A$4:A6=[@agent])

donne la matrice VRAI;VRAI;FAUX

Le produit ($A$4:A6=[@agent])*($B$4:B6)

donne {44531;44562;0} (les deux dates correspondant à l'agent aaa).

Donc, MAX(($A$4:A6=[@agent])*($B$4:B6)) donne la dernière date pour ce même agent.

La partie ($B$4:B6=MAX(($A$4:A6=[@agent])*($B$4:B6)))

renvoie : {FAUX;VRAI;FAUX}, le VRAI correspond à la2ème ligne de la plage B4:B6, donc B5 qui contient la plus grande date concernant "aaa".

La partie : ($B$4:B6=MAX(($A$4:A6=[@agent])*($B$4:B6)))

renvoie {0;100;0}

SOMME additionne les valeurs de la matrice.

(ce qui me permet de constater que le premier ($A$4:A6=[@agent]) ne sert à rien). La formule se simplifie donc :

=SIERREUR(SOMME(($B$4:B6=MAX(($A$4:A6=[@agent])*($B$4:B6)))*$G$4:G6);"")

Pour passer d'une partie de la formule à sa valeur, il faut la surligner et appuyer sur la touche F9 :

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

3 réponses supplémentaires

  1. Anonyme
    2022-11-16T12:29:27+00:00

    Waouh, respect! ça c'est de la maîtrise!

    Merci beaucoup Daniel!

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-11-16T11:18:54+00:00

    Merci Daniel pour ton aide.

    Comment puis-je faire pour copier cette formule pour qu'elle s'applique dans toute la colonne C?

    Pouvez-vous m'expliquer comment vous êtes arrivés à cette formule?

    Belle journée à vous

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2022-11-16T11:06:15+00:00

    Bonjour,

    Essaie, en C6 :

    =SIERREUR(SOMME(($A$4:A5=[@agent])*($B$4:B5=MAX(($A$4:A5=[@agent])*($B$4:B5)))*$G$4:G5);"")

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire