Recherche verticale à 2 critéres

Bonjour,

J'ai extrait sur internet une longue liste de voyage (sur 1 colonne) d'un tout opérateur mise à jour quotidiennement et affichant à chaque fois : un jour de départ, une durée et un prix.

Comment faire une recherche verticale à 2 critères par exemple le jour du départ et la durée (il n'y a qu'une seule réponse possible) et obtenir en résultat le prix indiqué sur la ligne en dessous?

Voir extrait de mon tableau.

Merci par avance

capture

Bonjour,

une solution avec une fonction personnalisée à mettre dans un module VBA standard

Function prixdateduree(plage, dated, duree)
    Set re = plage.Find(duree, lookat:=xlWhole)
    If Not re Is Nothing Then
        fa = re.Address
        Do
            If re.Offset(-1) = dated Then
                prixdateduree = re.Offset(1)
                Exit Function
            Else
                Set re = plage.FindNext(re)
            End If
        Loop Until re.Address = fa
    End If
    prixdateduree = CVErr(xlErrNA)
End Function

appel de la fonction à partir d'excel

par exemple à mettre en D1

si la date est un type date

=prixdateduree(A:A,DATEVALUE("09/12/2018"),"14J/12N")

si la date est un type texte

=prixdateduree(A:A,"Dim 09 Déc 2018","14J/12N")

Bonjour,

Tu dis :

(il n'y a qu'une seule réponse possible)

Une alternative au code de h2so4 (que je salut bien !) avec formule Excel :

=SI(C2=INDIRECT("A"&EQUIV(C1;A:A;0)+1);INDIRECT("A"&EQUIV(C1;A:A;0)+2);"")

avec la date en C1 (par exemple Lun 10 Déc 2018) et la durée en C2 (par exemple 15J/13N)

Bonjour,

Une autre proposition réalisée avec Récupérer et transformer.

(Power Query)

Cette solution demande de respecter un format déterminé.

A te relire.

Cdlt.

9alain16.xlsx (23.16 Ko)
snip 20180708174308

Bonjour,

Le résultat peut être numérique ou alphabétique.

=SIERREUR(INDEX(result;EQUIV(1;(dates=D1)*(codes=D2);0));"inconnu")

valider avec maj+ctrl+entrée

Ceuzin

6rechv2crit.zip (8.60 Ko)

Merci à tous

J'utilise la fonction:

=SIERREUR(INDEX(result;EQUIV(1;(dates=D1)*(codes=D2);0));"inconnu")

qui fonctionne très bien.

J'ai essayé cette fonction

=SI(C2=INDIRECT("A"&EQUIV(C1;A:A;0)+1);INDIRECT("A"&EQUIV(C1;A:A;0)+2);"")

Mais j'ai des erreurs (que je ne m'explique pas)

Salutations à tous

Bonjour,

Tu aurais pu préciser que la réponse provenait d'un autre forum.

Le multipostage est à éviter !...

Cdlt.

la réponse est de ceuzin

Bonjour,

Le résultat peut être numérique ou alphabétique.

=SIERREUR(INDEX(result;EQUIV(1;(dates=D1)*(codes=D2);0));"inconnu")

valider avec maj+ctrl+entrée

Ceuzin

Re,

Tu as 2 réponses identiques sur 2 forums à 10 minutes d'intervalles.

Ces 2 réponses proviennent de la même personne, soit JBoisgontier !... (que nous saluons tous )

Mon propos portait surtout sur ton multipostage.

Cdlt.

Rechercher des sujets similaires à "recherche verticale criteres"