Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Trouver la dernière valeur non vide selon 2 critères

Merlin258413

XLDnaute Occasionnel
Bonjour à tous,
Je cherche une formule me permettant de trouver la dernière valeur selon 2 critères (la tâche et la date sous le format aaaamm).
Pouvez vous m'aider svp en colonne F et G les résultats attendus
Encore merci pour votre aide
Bonne journée
 

Pièces jointes

  • Classeur1.xlsx
    11.3 KB · Affichages: 12
Solution
Re,
Oui, plusieurs pb :
1) la fonction PRENDRE(t;;1), prend la première colonne du tableau, PRENDRE(t;;-1) prends la dernière, (alors que PRENDRE(t;;6) prends les 6 premières comme tu l'as modifié !)
Ta colonne BUDGET n'étant plus la dernière du tableau, il faut adapter. Le mieux est de recomposer un tableau à 3 colonnes avec ASSEMB.H et ça roule.
2) Tes noms de colonnes commencent par des espaces et ça pose pas mal de soucis, je les ai enlevés sur les colonnes concernées des deux tableaux
3) J'ai rajouté le paramètre si vide de la fonction FILTRE, pour les cas ou la tâche n'est pas trouvée
Ce qui donne :
VB:
=LET(t;TRIER(ASSEMB.H(TAB[No tache];TAB[Mois (AAAAMM)];TAB[Budget Production Cumule]);2);f;PRENDRE(FILTRE(t;(PRENDRE(t;;1)=[@[No...

ALS35

XLDnaute Impliqué
Re,
Ma proposition supposait que les dates étaient classées en ordre croissant, dans ton essai cela n'est plus vrai pour la tâche c. Ce cas est-il possible ?
Edit : une autre proposition, on peut adapter selon les colonnes réelles de ton tableau final :
VB:
=LET(t;TRIER(Tableau1;2);f;PRENDRE(FILTRE(t;(PRENDRE(t;;1)=[@tache])*(PRENDRE(t;;-1)<>""));-1;-1);f)
Cordialement
 
Dernière édition:

Merlin258413

XLDnaute Occasionnel
Re,
Ma proposition supposait que les dates étaient classées en ordre croissant, dans ton essai cela n'est plus vrai pour la tâche c. Ce cas est-il possible ?
re je pense que cela nécessite une opération supplémentaire de reclassement. si nous n'avons pas d'autres solutions c'est déjà vraiment très bien. Mais il est vrai que je peux tout mettre à la chaine
Merci
 

Merlin258413

XLDnaute Occasionnel
Bravo excellent merci beaucoup
 

Merlin258413

XLDnaute Occasionnel
Bravo excellent merci beaucoup
Re votre formule est super mais lorsque j'essaie de l'adapter à mon fichier cela ne fonctionne pas je ne sais pas pourquoi déjà certainement que je ne maitrise pas la fonction Let pouvez vous m'aider svp
C'est le meme principe mais sur 2 onglets différents je ramène en colonne J de ma feuil1 les donnéess de mon tableuau TAB colonne 25 en fonction de ma tâche et ma date
 

Pièces jointes

  • cas test.xlsx
    32.7 KB · Affichages: 6

ALS35

XLDnaute Impliqué
Re,
Oui, plusieurs pb :
1) la fonction PRENDRE(t;;1), prend la première colonne du tableau, PRENDRE(t;;-1) prends la dernière, (alors que PRENDRE(t;;6) prends les 6 premières comme tu l'as modifié !)
Ta colonne BUDGET n'étant plus la dernière du tableau, il faut adapter. Le mieux est de recomposer un tableau à 3 colonnes avec ASSEMB.H et ça roule.
2) Tes noms de colonnes commencent par des espaces et ça pose pas mal de soucis, je les ai enlevés sur les colonnes concernées des deux tableaux
3) J'ai rajouté le paramètre si vide de la fonction FILTRE, pour les cas ou la tâche n'est pas trouvée
Ce qui donne :
VB:
=LET(t;TRIER(ASSEMB.H(TAB[No tache];TAB[Mois (AAAAMM)];TAB[Budget Production Cumule]);2);f;PRENDRE(FILTRE(t;(PRENDRE(t;;1)=[@[No Tache]])*(PRENDRE(t;;-1)<>"");"");-1;-1);f)
À tester.
Cordialement
 

Pièces jointes

  • cas test modifié.xlsx
    37.9 KB · Affichages: 3

Merlin258413

XLDnaute Occasionnel
Merci beaucoup je teste mais ca à l'air de fonctionner
 

job75

XLDnaute Barbatruc
Bonjour Merlin258413, ALS35,

Pas besoin des nouvelles fonctions de Microsoft 365, voyez les 3 noms définis Critere Mois Buget.

Ce sont des matrices, il suffit de les utiliser dans la formule en Feuil1!J3 :
Code:
=SIERREUR(INDEX(Budget;EQUIV(MAX(Mois);Mois;0));"")
Comme ALS35 j'ai supprimé les espaces superflus dans les titres des colonnes.

A+
 

Pièces jointes

  • cas test.xlsx
    31.8 KB · Affichages: 2

Merlin258413

XLDnaute Occasionnel
merci beaucoup ca fonctionne
 

job75

XLDnaute Barbatruc
En fait il suffit de définir le nom Mois après avoir sélectionné Feuil1!J3 :
Code:
=SI((Feuil1!$A3=TAB[No tache])*ESTNUM(TAB[Budget Production Cumule]);TAB[Mois (AAAAMM)] )
Puis d'entrer en Feuil1!J3 :
Code:
=SIERREUR(INDEX(TAB[Budget Production Cumule];EQUIV(MAX(Mois);Mois;0));"")
 

Pièces jointes

  • cas test.xlsx
    31.8 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…