Si Et, trop d'imbication

Lolote83

XLDnaute Accro
Bonjour à tous,
Dur dur la reprise, on oublie tout pendant les vacances.
Ma question :
Je cherche en fonction d'une valeur saisie en cellule D12 (nommée xVAL) d'obtenir une correspondance dans un tableau de deux colonnes.
- Au dela de 10 (compris) et jusqu'à 14, je veux obtenir 2
- Au dela de 15 (compris) et jusqu'à 20, je veux obtenir 4
- Au dela de 20 (compris), je veux obtenir 6

J'ai bien réussi avec des "SI(ET" imbriqués mais mon exemple est simplifié à 3 données.
Si j'ai 25 données, cette formule risque d'être complexe voire impossible à faire.
J'ai pensé à des "sommeprod", des "equiv", "index equiv", "décaler" mais impossible de m'en sortir.
Je reste persuadé qu'il existe une solution matricielle mais mon cerveau me joue des tours.
Merci à tous les formulistes

@+ Lolote83
 

Fichiers joints

gosselien

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Bonjour,

en H26 peut être :

=SI(ESTNA(RECHERCHEV(H24;$C$24:$D$48;2;VRAI));"";RECHERCHEV(H24;$C$24:$D$48;2;VRAI))

P?
 

Dranreb

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Bonjour.
- Au dela de 10 (compris) et jusqu'à 14, je veux obtenir 2
- Au dela de 15 (compris) et jusqu'à 20, je veux obtenir 4
- Au dela de 20 (compris), je veux obtenir 6
(on dit "à partir de" quand c'est inclus)
Ben là c'est simplement en D13 :
Code:
=MIN(MAX(0;ENT(xVAL/5-1)*2);6)
Je n'avais pas vu la suite. INDEX/EQUIV ferait parfaitement l'affaire.

Edit: Bonjour R@chid :)
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Bonjour @ tous,
Code:
=ENT(MAX(MIN(xVAL;20)-5;0)/5)*2

@ + +

Edit : Bonjour Dranreb ;):D
 

Paf

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Bonjour Lolote83, CHALET53, gosselien,


Supprimé, pas lu jusqu'au bout !

A+

Edit : Bonjour Rachid
 
Dernière édition:

Lolote83

XLDnaute Accro
RESOLUT : Si Et, trop d'imbication

Bonjour à tous.
Effectivement, il y avait plus simple.
Merci à tous et à bientôt
Cordialement
@+ Lolote83
 

Lolote83

XLDnaute Accro
Re : Si Et, trop d'imbication

Juste une petite remarque,
Les solutions de Rachid et DranReb fonctionnent bien pour le petit exemple (3 données) mais pas adapté au tableau du dessous (voir à compter de la ligne 26).
La solution de Gosselin est OK.
Du coup, j'ai essayé avec un INDEX EQUIV car dixit DranReb
Je n'avais pas vu la suite. INDEX/EQUIV ferait parfaitement l'affaire.
mais encore une fois, je sèche.
Une solution autre pour le fun !!!!
@+ Lolote83
 

tototiti2008

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Bonjour à tous,

Chalet (en message #2) t'a proposé un INDEX/EQUIV, à adapter pour tes plages du bas
 

Dranreb

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

En H26 :
Code:
=INDEX($D$24:$D$48;EQUIV(H$24;$C$24:$C$48))
Remarque: il faudrait devant une ligne avec 0 | 0 pour que ça ne mette pas #N/A en dessous de 10
Ou sinon :
Code:
=SI(H$24>=$C$24;INDEX($D$24:$D$48;EQUIV(H$24;$C$24:$C$48));0)
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Re,
Juste une petite remarque,
Les solutions de Rachid et DranReb fonctionnent bien pour le petit exemple (3 données) mais pas adapté au tableau du dessous (voir à compter de la ligne 26).
La solution de Gosselin est OK.
Du coup, j'ai essayé avec un INDEX EQUIV car dixit DranReb mais encore une fois, je sèche.
Une solution autre pour le fun !!!!
@+ Lolote83
j'ai pas vu :cool: le reste de la question.

@ + +
 

Lolote83

XLDnaute Accro
Re : Si Et, trop d'imbication

Merci DranReb pour le INDEX EQUIV.
Je l'utilise très souvent mais j'y adjoint (sur la fonction EQUIV) le dernier critère avec 1,0 ou -1 comme dans l'exemple ci-après.
=INDEX($D$27:$D$51;EQUIV(H$27;$C$27:$C$51;0))
Je ne savais pas que l'on pouvais omettre ce critère et la ça fonctionne.
J'ai appris encore quelque chose aujourd'hui mais du coup quand mettre ou ne pas mettre ce dernier critère ?

Pour Rachid,
j'ai pas vu le reste de la question.
Pas de souci, tu m'as déjà par le passé bien aidé.

MERCI
@+ Lolote83
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Re,
Code:
=SIERREUR(INDEX(D24:D48;EQUIV(H24;C24:C48));)

@ + +
 

Dranreb

XLDnaute Barbatruc
Re : Si Et, trop d'imbication

Non, 0 comme 3ième critère cherche la valeur exacte. C'est 1 qui est assumé par défaut.
  • Si la valeur de l'argument type est 1, la fonction EQUIV trouve la valeur la plus élevée qui est inférieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre croissant : ...-2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI.
  • Si la valeur de l'argument type est 0, la fonction EQUIV trouve la première valeur exactement équivalente à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche peuvent être placées dans un ordre quelconque.
  • Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre décroissant : VRAI, FAUX, Z-A, ..., 2, 1, 0, -1, -2, ..., et ainsi de suite.
  • Si l'argument type est omis, la valeur par défaut est 1.
 

Discussions similaires


Haut Bas