Rechercher une valeur dans une table de paramètre incomplète

Bonjour,

Désolé, je ne suis pas parvenu à trouver un titre explicite.

J'ai une table de paramètres (que je ne peux pas modifier) , avec 3 colonnes : version, critère, résultat.

Pour une version et un critère donné, je veux être capable de trouver le résultat.

Le problème est que dans ma table de paramètre, toutes les versions d'un critère ne sont pas affichés : la règle est que pour un critère donné, si je ne trouve pas la version désirée, alors je dois afficher le résultat de ce critère pour la version précédente la plus récente : par exemple, si je cherche version 8 critère A, alors je cherche le résultat de 8A sinon 7A sinon 6A sinon 5A sinon 4A sinon 3A sinon 2A sinon 1A.

Ci-joint un fichier Excel : le but est de trouver une formule automatisée dans la cellule G8, qui marche quels que soient les critères choisis dans les cellules H2 et H3.

Merci pour votre aide!

Thibault

11question-excel.xlsx (12.02 Ko)

Bonjour à tous !

En l'absence d'une information précise sur la version Excel utilisée (Profil à compléter...), je tente une proposition qui nécessite Excel 365 :

=RECHERCHEX(H3;DECALER(t_Param;;1;EQUIV(H2;t_Param[Version];1);1);DECALER(t_Param;;2;EQUIV(H2;t_Param[Version];1);1);"";0;-1)
10thiblight.xlsx (19.77 Ko)

Merci JFL pour ce retour!

Malheureusement, je n'ai pas Excel 365, mais Excel 2013 (je viens de compléter mon profil).

Du coup, cette solution ne marche pas chez moi, la fonction recherchex n'existe pas dans ma version d'Excel.

Bonjour de nouveau !

Du coup, cette solution ne marche pas chez moi, la fonction recherchex n'existe pas dans ma version d'Excel.

J'en suis désolé....

Il faut attendre qu'un maestro de la formule "ancienne", ou un spécialiste VBA, passe par ci.

Ils sont nombreux ici.

Pour le "fun"....

Une proposition via Power Query (complément gratuit à installer pour votre version Excel) :

7thiblight.xlsx (27.73 Ko)

Bonjour Thiblight, bonjour le fil

Voici une petite fonction personnalisée qui à l'air de fonctionner comme souhaité

Function GetResult(Version As Integer, Crit As String, RngParam As Range)
  Dim Ind As Long, VarTab() As Variant
  Application.Volatile
  ' Définir le tableau
  VarTab = RngParam
  ' Parcourir les éléments du tableau afin de trouver la valeur
  For Ind = UBound(VarTab) To 1 Step -1
    If VarTab(Ind, 1) = Version Then
      If VarTab(Ind, 2) = Crit Then
        GetResult = VarTab(Ind, 3)
        Exit For
      End If
    ' Si la version ligne de dessus est inférieure à l'actuelle
    ' et que la solution n'a pas été trouvée, on passe à cette version
    ElseIf VarTab(Ind - 1, 1) < Version Then
      Version = VarTab(Ind - 1, 1)
    End If
  Next Ind
End Function

A tester

@+

Merci beaucoup pour tous vos retours! Je clos le sujet.

Plusieurs solutions existent donc pour mon problème :

- utiliser la fonction recherchex, ce qui nécessite d utiliser Excel 365 (je l'ai testé sur le poste d'un collègue ayant Excel 365, cela marche bien en effet!) <- merci JFL!

- utiliser un code VBA ; vraiment super pratique cette fonction VBA (je suis débutant en VBA) <- merci BrunoM45!

(pour la solution Power Query, je ne sais pas comment ça marche les compléments, et ne peux de toute façon pas en installer à mon travail :P : merci quand même! )

Au final, je vais retenir la solution VBA, vu que j'ai Excel 2013 sur mon poste.

Bonne journée à vous

Rechercher des sujets similaires à "rechercher valeur table parametre incomplete"