Formule trop longue

Bonjour à tous,

j'ai cette formule

=SI(ET(A1=1;B1="PVC");F1;SI(ET(A1=1;B1="fonte");G1;SI(ET(A1=1;B1="béton");H1;SI(ET(A1=1;B1="pex");I1;SI(ET(A1=1;B1="prv");J1;SI(ET(A1=1;B1="PEHD");""))))))

mon problème est que j'aimerais prolonger la formule afin que A1= 1 ou 1.01 ou 1.02.....ainsi de suite jusqu'à 1.23. pour chaque item pvc ,fonte , béton etc. comme dans la formule. Existe t-il une solution afin de ne pas avoir à écrire une formule interminable genre =SI(ET(A1=1;B1="pvc");F1;SI(ET(A1=1.01;B1="pvc");F1;SI.etc...etc..

Merci d'avance pour votre aide

Bonjour Decabong, bonjour à tous

La solution est très certainement le VBA !!

Bonne soirée

Bonjour
As tu essayé avec SI.CONDITIONS ou SI.MULTIPLE qui sont beaucoup plus efficaces
La fonction SI.CONDITIONS vérifie si une ou plusieurs conditions sont remplies et renvoie une valeur correspondant à la première condition vraie. L’utilisation de cette fonction revient à utiliser plusieurs instructions SI imbriquées, mais elle reste bien plus facile à lire quand plusieurs conditions se suivent.
=SI.CONDITIONS(test_logique1; valeur_si_vrai1; test_logique2; valeur_si_vrai2; test_logique3; valeur_si_vrai3)

Dans le test logique tu peux mettre le ET

La fonction SI.MULTIPLE évalue une valeur par rapport à une liste de valeurs et renvoie le résultat correspondant à la première valeur correspondante. S’il n’y a pas de correspondance, une valeur par défaut facultative peut être renvoyée

=SI.MULTIPLE(Valeur à évaluer, Valeur de correspondance1...[2-126], Valeur à renvoyer en cas de correspondance1...[2-126], Valeur à renvoyer en cas de non-correspondance)

Tu peux évaluer jusqu’à 127 conditions pour la première et 126 valeurs et résultats correspondants pour la seconde

Aurais tu un fichier ce serai plus simple?

@Patty5046 pas besoin de VBA pour ceci

Hello,

Pourquoi ne pas faire une table de correspondance et une simple recherchev ?

@+

Bonsoir à tous !

Une proposition ?

Bonjour à tous,

SI(ET(A1>=1;A1<=1,23;B1="PVC");etc ....

???
Crdlmt

Bonsoir à tous de nouveau !

Autre proposition :

Remarque : La valeur en A1 ne doit avoir que 2 décimales. Sinon, prendre proposition 1 !

Merci beaucoup pour vos solution. Elles sont toutes applicable dans mon cas et m'a éclaircie énormément sur une façon de faire pour une application plus complexe dans mes travaux

Bravo pour votre rapidité et votre service

coucou

sans savoir à quoi sert la val en A1 (mystère)

INDEX(F1:J1;EQUIV(B1;tItem[Item];0))

cordialement

Bonsoir à tous de nouveau !

sans savoir à quoi sert la val en A1 (mystère)

A déclencher la recherche de l'équivalence de B1 ?

Bonsoir à tous de nouveau !

Merci beaucoup pour vos solution. Elles sont toutes applicable dans mon cas et m'a éclaircie énormément sur une façon de faire pour une application plus complexe dans mes travaux

Bien...!

Je vous remercie de ce retour.

Bonsoir à tous de nouveau !

sans savoir à quoi sert la val en A1 (mystère)

A déclencher la recherche de l'équivalence de B1 ?

donc en gros

si(a1>=1;INDEX(F1:J1;EQUIV(B1;tItem[Item];0));"")

après "etude " j'avais un equiv

EQUIV(A1;LIGNE(1:23)/10;1)

mais faut savoir a quoi se rapporte la val renvoyée

Rechercher des sujets similaires à "formule trop longue"