Fonction de recherchev de bas en haut

gdcobra91

XLDnaute Junior
Bonjour,

Je souhaite récupérer une valeur de la dernière cellule correspondant à la même tâche (cf fichier joint) afin d'initialiser la charge initiale.

Autrement dit, pour l'exemple ds le fichier joint, à chaque fois que j'ajoute une nouvelle ligne concernant une tâche déjà commencée alors la charge init doit être égale au dernier RAF (et non pas au premier de la feuille).

J'avais essayé la fonction recherchev mais cela récupère la 1ere valeur trouvée.

Existe-t-il une fonction ou une méthode pour résoudre ce pb.

Merci.

ps: En PJ le fichier présentant le pb posé.
 

Pièces jointes

  • Excel.GIF
    Excel.GIF
    5.4 KB · Affichages: 310
  • Excel.GIF
    Excel.GIF
    5.4 KB · Affichages: 230
  • Excel.GIF
    Excel.GIF
    5.4 KB · Affichages: 204

Monique

Nous a quitté
Repose en paix
Re : Fonction de recherchev de bas en haut

Bonjour,

A essayer
En B3
=INDEX(C$1:C2;MAX(SI(A$2:A2=A3;LIGNE(C$2:C2))))

Copié collé, ça donne en B5
=INDEX(C$1:C4;MAX(SI(A$2:A4=A5;LIGNE(C$2:C4))))

Formule matricielle, à valider par ctrl, maj et entrée

Un fichier Excel aurait été mieux qu'une image.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Fonction de recherchev de bas en haut

Bonjour,


Code: Champ colonne A
Result: Champ colonne C

=INDEX(result;MAX(SI(code=E1;LIGNE(INDIRECT("1:"&LIGNES(code)));0)))
valider avec Maj+ctrl+entrée

JB
Formation Excel VBA JB
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 100
  • Classeur1.xls
    13.5 KB · Affichages: 102
  • Classeur1.xls
    13.5 KB · Affichages: 119

Tibo

XLDnaute Barbatruc
Re : Fonction de recherchev de bas en haut

Bonjour,

L'idéal est de joindre un fichier Excel plutôt qu'une image...

Sinon, la solution pourrait se trouver avec une formule matricielle :

Code:
=INDEX(B1:B6;MAX((A1:A6=D1)*LIGNE(A1:A6)))

Formule matricielle à valider par CTRL + MAJ + ENTREE



A1:A6 = plage critères

B1:B6 = plage résultat

D1 = critère

Le tout, sans certitude de ma part.

Si pas ça, reviens avec un "vrai" fichier Excel et plus d'explications


@+

Edit : Bing ! Salut Jacques. J'ai l'impression que les esprits se sont croisés. En espérant que ça corresponde aux souhaits de gdcobra.

@+

Edit 2 : rebing ! salut Monique. Je ne t'avais pas vue.

@+
 
Dernière édition:

gdcobra91

XLDnaute Junior
Re : Fonction de recherchev de bas en haut

Merci bcp pour votre aide. Voici le fichier Excel en PJ avec les explications. N'hésitez pas à me faire des remarques.

Encore merci pour votre aide.
 

Pièces jointes

  • Excel_calcul_charge.zip
    18.5 KB · Affichages: 52

gdcobra91

XLDnaute Junior
Re : Fonction de recherchev de bas en haut

Merci bcp Monique!

La feuille List_Taches se remplit correctement par contre je ne comprends pas tes formules utilisées ds la colonne "Charge restante" de la feuille "Activité_quotidienne". Les fonctions DECALER à droites sont-elles pour informations ou servent-elles à la ou les feuilles Excel?

Extrait des informations de la feuille Activité_quotidienne (colonne 1: n° tâche, colonne 2: charge initiale, colonne 3: charge conso, et colonne 4: charge RAF):
1 20 1 15
2 13 5 11
2 12 4 12

Normalement, pour la tâche 2 (identifiée dans l'exemple par les lignes 2 et 3), dans la ligne 3, la valeur 12 (colonne n°2) devrait être 11 (colonne n°3) (c'est-à dire égal au RAF de la ligne précédente). Que faut-il faire pour avoir ce résultat?

N'hésitez pas à me demander des explications plus précises.

Merci.
 

Monique

Nous a quitté
Repose en paix
Re : Fonction de recherchev de bas en haut

Bonjour,

Si c'est la 1ère fois que l'on a tel nombre en colonne A,
on reporte la valeur correspondante de la colonne B de la feuille "ListTaches"
Sinon, (si on a déjà rencontré ce nombre dans les lignes du dessus)
on va chercher, dans la même feuille ("ActivitéQuotidienne")
la dernière valeur de la colonne D correspondant à ce nombre,
dernière valeur dans les lignes du dessus.
Ouf ! C'est ça ?

Pour, par exemple, B4 :
=INDEX(D$1:D3;MAX(SI(A$1:A3=A4;LIGNE(D$1:D3))))
MAX(SI(A$1:A3=A4;LIGNE(D$1:D3))) renvoie le n° de la dernière ligne ayant, en A1:A3, le même nombre qu'en A4
INDEX(D$1:D3 ; n° de ligne) renvoie le contenu

Sinon, les formules Decaler(), c'est juste une info :
les plages nommées par formule (par Insertion - Nom - Définir)

Remplacer les smileys par : (deux points) et un D
C'est dans le fichier, de toute façon
 

Pièces jointes

  • MaxSiGdcobraV1.zip
    15.4 KB · Affichages: 65
Dernière édition:

gdcobra91

XLDnaute Junior
Re : Fonction de recherchev de bas en haut

Merci bcp Monique!! Tu as bien compris le pb posé ;-)

Ça marche pas mal ;-) (je suis peut être trop exigent, faut dire que je travaille dans la qualité. lol). J'ai remarqué si je supprime l'ensemble de lignes ds la feuille Activité_quotidienne, alors j'obtiens des #REF dans la feuille List_Taches, dans la colonne RAF et il ne semble pas possible de réinitialiser la formule (sauf si on supprime toutes les données... à voir..).

Pire, il semble que si on supprime toutes les données (hors formule évidemment) de la feuille Activité_quotidienne alors la formule ne marche plus ds la feuille List_Tache (colonne RAF). Si on rajoute une ligne concernant la 1ere tache, alors la formule re-fonctionne.

En soi, ce n'est pas si génant car normalement on ne doit pas supprimer des lignes ds Activité_quotidienne, mais bon, ça aurait pu être parfait !! ;-p

Merci encore. Si vous ne pouvez pas m'aider une nouvelle fois, ce n'est pas grave, c'est déjà très bien ;-)
 

Monique

Nous a quitté
Repose en paix
Re : Fonction de recherchev de bas en haut

Bonjour,

En nommant autrement les plages pour qu’elles démarrent en ligne 1, (la ligne des titres) quitte à ce qu’elles n’aient qu’1 ligne de hauteur mais au moins 1 ligne.

à la place de
=DECALER(Activité_quotidienne!$A$2;;;NB(Activité_quotidienne!$A:$A))

nommer à partir de A1
=DECALER(Activité_quotidienne!$A$1;;;NB(Activité_quotidienne!$A:$A)+1)

ou bien comme ça mais… ne pas laisser vide la ligne 1 de titres :
=DECALER(Activité_quotidienne!$A$1;;;NBVAL(Activité_quotidienne!$A:$A))
 

Pièces jointes

  • MaxSiGdcobraV2.zip
    15.6 KB · Affichages: 53

gdcobra91

XLDnaute Junior
Re : Fonction de recherchev de bas en haut

Cette version ne marche pas du tout si on supprime toutes les données (hors formule) de la feuille Activité_quotidienne (et en laissant tel quel la feuille List_Taches), alors on obtient dans la feuille List_Taches (champ: Charge RAF) soit RAF soit #VALEUR! soit un RAF d'une autre tâche.

Pour ce faire, ds Activité_quotidienne, j'ai commencé par remplir la tache 2 puis 1 puis 3. J'obtiens ds ChargeRAF de la feuille List_Taches:
pour la tache 2:#VALEUR!
pour la tache 1:RAF
pour la tache 3:2 (en réalité, c'était le RAF de la charge 1!).

:(

Je vais donc me rabattre sur la version 1 qui marche mieux !

Merci encore. ;-)
 

gdcobra91

XLDnaute Junior
Re : Fonction de recherchev de bas en haut

Deuxième petite question:

Je souhaiterai calculer la somme des charge conso pour chaque tâche et noté cette somme dans le feuille List_Taches (exemple ds le fichier joint).

J'ai essayé avec une somme d'index mais ça ne marche pas: =SOMME(INDEX(Activité_quotidienne!$C$2:$C$300;A2))

Pouvez-vous m'aider.

Merci.
 

cbea

XLDnaute Impliqué
Re : Fonction de recherchev de bas en haut

Bonsoir,

Voici une solution avec SOMMEPROD.
 

Pièces jointes

  • MaxSiGdcobraV1_conso.zip
    15.7 KB · Affichages: 44
  • MaxSiGdcobraV1_conso.zip
    15.7 KB · Affichages: 46
  • MaxSiGdcobraV1_conso.zip
    15.7 KB · Affichages: 42

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH