INDEX + EQUIV - Deux valeurs

Bonjour,

J'utilise la fonction INDEX + EQUIV pour rechercher des valeurs dans un code dans un tableau et me renvoyer une valeur correspondante ( dans mon cas le nombre d'article commander pour un article donnée). Mais le problème c'est que de temps en temps cet article pour cette commande est présent deux fois dans le tableau ( à cause d'un nombre maximum d'article par commande le logiciel qui édite le tableau excel créé deux commandes identiques) ce qui fait que la valeur que j'ai correspond toujours à la première commande.

De plus, il me donne aussi la date de livraison du premier article trouvé alors que j'aimerai qu'il me donne la date de livraison la plus récente.

Voici un exemple pour illustrer mon propos (dsl mais le fichier est confidentiel):

Article Qté Date

A 40 08/04/15

A 25 10/04/15

B 20 12/04/15

Ma formule : INDEX('Feuille1'!A:O;EQUIV(K7;'Feuille1'!O:O;0) me renvoie 40 et celle qui correspond à la date me renvoie 08/04/15 alors que j'aimerai qu'ils me rendent respectivement 65 (somme des deux) et 10/04/15 (la plus récente)

Merci beaucoup parce que là je suis bloqué

Bonjour. Bienvenu sur le Forum

L'exemple joint

Cordialement

50kbennani.xls (15.00 Ko)

Bonjour,

Merci pour la réponse, mais j'ai oublié de dire que le tableau en question était sur une autre feuille.


Voilà une reconstitution (regardes la feuilles 2 aussi)

Merci

29kbennani.zip (6.33 Ko)

Bonjour

Voilà

Cordialement

64kbennani-1.zip (6.23 Ko)

Bonjour Amadéus, kbennani, le forum

Une solution VBA

Option Explicit

Sub Articles()
Dim a, i As Long, j As Long, txt As String, n As Long
    With Sheets(1).Range("A1").CurrentRegion
        a = .Value: n = 1
        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For i = 2 To UBound(a, 1)
                txt = a(i, 1)
                If Not .exists(txt) Then
                    n = n + 1
                    .Item(txt) = n
                    For j = 1 To UBound(a, 2)
                        a(n, j) = a(i, j)
                    Next
                Else
                    a(.Item(txt), 2) = a(.Item(txt), 2) + a(i, 2)
                    If a(.Item(txt), 3) < a(i, 3) Then
                        a(.Item(txt), 3) = a(i, 3)
                    End If
                End If
            Next
        End With
        Application.ScreenUpdating = False
        With .Offset(, .Columns.Count + 1)
            .CurrentRegion.Clear
            .Cells(1).Resize(n, UBound(a, 2)).Value = a
            With .CurrentRegion
                .Font.Name = "calibri"
                .Font.Size = 10
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .Borders(xlInsideVertical).Weight = xlThin
                .BorderAround Weight:=xlThin
                With .Rows(1)
                    .Font.Size = 11
                    .Interior.ColorIndex = 38
                    .BorderAround Weight:=xlThin
                End With
                .Columns.AutoFit
            End With
        End With
    End With
    Application.ScreenUpdating = True
End Sub

klin89

et tout simplement en TCD ?

37kbennani-tcd.zip (7.24 Ko)
Rechercher des sujets similaires à "index equiv deux valeurs"