Formule index, choix de la dernière récurrence

Bonjour,

J'ai un tableur dans lequel j'entre manuellement un code ainsi que son résultat (le fichier joint est une version très simplifié). Je cherche à obtenir, pour chacun des codes, le résultat.

J'ai réussi à l'obtenir avec la fonction (INDEX(A3:B14;EQUIV(D2;A3:A14;0);2)

Par contre, lorsque le code apparait plusieurs fois, le résultat obtenu est celui de la première récurrence du code.

Quelle serait la formule pour obtenir le résultat de la dernière récurrence?

Merci à l'avance de votre aide

36test-index.xlsx (33.89 Ko)

Bonsoir,

Une solution avec une formule matricielle :

=INDEX($B$3:$B$14;MAX(($A$3:$A$14=D$2)*LIGNE($1:$12)))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Je te laisse compléter la formule avec SIERREUR

@+

bonjour

=INDEX($B$3:$B$5;SOMMEPROD(GRANDE.VALEUR(($A$3:$A$5=D$2)*(LIGNE($A$1:A$3));1))) pour Sa

c'estpret pour incrementer vers la droite

cordialement

Bonsoir

thibo, tulipe

une différence avec les formules proposées

Matricielle

=SI(ESTERREUR(DECALER($B$1;MAX(LIGNE($A$3:$A$14)*($A$3:$A$14=D$2))-1;;;));0;DECALER($B$1;MAX(LIGNE($A$3:$A$14)*($A$3:$A$14=D$2))-1;;;))

Je suis en Excel 2003, donc, il faudra adapter, sauf erreur par:

=_xlfn.IFERROR(((DECALER($B$1;MAX(LIGNE($A$3:$A$14)*($A$3:$A$14=D$2))-1;;;));0)

Cordialement

24test-index.zip (10.63 Ko)

Merci beaucoup pour vos réponses rapides

Il faut dire toutefois que je suis loin d'être connaissante en excel. La seule formule que j'ai réussi à faire fonctionné est celle de Tulipe. Par contre, aussitôt que je veux l'appliquer dans un autre cas (soit une liste de code plus longue) ça ne fonctionne plus.

Je ne comprend la formule en soit et principalement à quoi correspond LIGNE (A1;A3).

La formule actuelle (qui fonctionne donc):

=SIERREUR(INDEX(B3:B14;SOMMEPROD(GRANDE.VALEUR((A3:A14=D2)*(LIGNE(A1:A3));1)));0)

Je vais continuer à démystifier tout cela et je vous reviens là-dessus!

Merci encore

bonsoir

j'ai triché un peu car en realite j'aurai du saisir

=INDEX($B$3:$B$5;SOMMEPROD(GRANDE.VALEUR(($A$3:$A$5=D$2)*(LIGNE($A$3:A$5)-2);1)))

parceque le tableau commence à la ligne 3 donc pour retomber sur 1 il faut bien oter 2

la fonction LIGNE renvoie un n° de ligne qui correspond a la position des valeurs qui collent au critere (Sa)

cordialement

pour les autres fonctions proposées tu dois certainement bugger sur la façon de les valider

il faut que tu fasses ctrl maj Entée les 3 touches en memetemps ; des accolades {{{{ se mettent automatiquement a chaque extremite sinon c'est loupé

Bonjour à tous,

Si tu n'est pas allergique aux macros,

petit exercice sur le "CountIf" (NB.SI)

Sub essai() 'dernière valeur (résultat)
Dim Cel As Range, Ligne%
Dim Lg&, Lg2%, i%, x%
    Application.ScreenUpdating = False
        Lg = Range("a" & Rows.Count).End(xlUp).Row
        Lg2 = Columns("d:g").Find("*", , , , xlByRows, xlPrevious).Row + 1

    For Each Cel In Range("d2:g2") 'à régler
        For i = 3 To Lg
            x = Application.CountIf(Range("a" & i & ":a" & Lg), Cel)
            If x = 0 Then Exit For
            If x > 0 And Cells(i, "a") = Cel Then Ligne = Cells(i, "a").Row
        Next i
            If Ligne > 0 Then Cells(Lg2, Cel.Column) = Cells(Ligne, "b") 'résultat
            Ligne = 0
    Next Cel
End Sub

peut surement mieux faire !

Amicalement

Claude

16joyeuse-liste.xlsm (20.97 Ko)

Ça marche!

En effet, les autres formules fonctionnaient bien une fois activées.

Merci beaucoup à tous!

Rechercher des sujets similaires à "formule index choix derniere recurrence"