INDEX - EQUIV à 2 conditions : impossible

Bonjour !

Voila toute la journée que j'ai passe pour essayer de trouver mon erreur. J'ai un fichier extrait de notre outil au travail et il y a 3 colonnes qui m'intéressent dans ma recherche (D, G et Z)

D represente numéro de fonds

G représente numéro/nom de compte (qui peut être un texte comme une série de nombres)

Z le montant

Les feuilles sont nommées ainsi :

Feuille 1 : Analyse

Feuille 2 : Data

Je veux : afficher le montant correspondant à mes deux critères que sont le numéro de fonds ainsi que numéro/nom de compte.

Ce tableau est complètement fictif car j'ai essayé de reproduire ce que j'ai réellement au boulot et comme ce sont des données sensibles...

J'ai donc deux feuilles : la première me servant a donner le résultat de la recherche et la deuxième contient l'extraction des données collées de notre outil interne.

Voila TOUTES les formules que j'ai essayées selon des sujets trouvés similaires sur internet :

=INDEX(Data!Z:Z;EQUIV(B5&C5;Data!D:D&Data!G:G;0)) avec concaténation tel quel ou avec également une cellule contenant la formule concaténer

=INDEX(Data!Z:Z;EQUIV(1;(Data!D:D=Analyse!B5)*(Data!G:G=Analyse!C5);0))

J'ai aussi essayé avec un SOMME PROD ou SI+RECHERCHEV

Avez-vous une solution a ce sujet s'il vous plait ou plutôt si vous pouvez m'éclaircir pourquoi ma formule bloque a partir de EQUIV selon l'aide a l'erreur de Excel.

Très bonne soirée a vous;

MS

10classeur3.xlsx (23.11 Ko)

Bonsoir,

une proposition, 2solutions

une solution via formule (avec ajout préalable d'une colonne)

une solution via fonction personnalisée

Function MatchSpe(ParamArray param())

'h2so4
'fonction exact match sur plusieurs colonnes
'appel = matchspe(valeur1,plagederecherche1,valeur2,plagederecherche2, ...)

'=matchspe(A1,data!A1:A20,b1,data!B1:B20,c1,data!D1:D20)

' toutes les plages (1 dimension) doivent avoir la même taille
' renvoie le numéro de la première ligne contenant les valeurs dans les plages indiquées
'
    t = param(1)
    For i = LBound(t) To UBound(t)
        If param(0) = t(i, 1) Then
            For j = 2 To UBound(param) Step 2
                If param(j) <> param(j + 1)(i, 1) Then j = 100: Exit For
            Next j
            If j < 100 Then MatchSpe = i: Exit Function    ' trouvé
        End If
    Next i
    MatchSpe = CVErr(xlErrNA)    'non trouvé
End Function
28simaso.xlsm (31.31 Ko)

Bonjour,

Merci beaucoup!

Ma journée est illuminée grâce à vous !

Rechercher des sujets similaires à "index equiv conditions impossible"