Si imbriqué

Fermé
raphael - 24 août 2016 à 16:13
 Utilisateur anonyme - 14 sept. 2016 à 18:00
Rebonjour, voici la formule que j'ai rentré mais excel ne l'accepte pas ...

Si jamais vous parvenez à identifier ce qui cloche ce serait très sympathique

=SI(64001<D20<66000;"5808";si(66001<D20<68000;"5948";si(68001<D20<70000;"6140";si(70001<D20<72000;"6288";si(72001<D20<74000;"6776";si(74001<D20<76000;"6980";si(76001<D20<78000;"7204";si(78001<D20<80000;"7408";si(80001<D20<82000;"7660";si(82001<D20<84000;"7940"))))))))))

Merci d'avance

6 réponses

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
Modifié par via55 le 24/08/2016 à 16:32
Bonjour

Effectivement tu ne peux pas écrire ta formule avec des encadrement <<, il faut la bâtir ainsi :
=SI(D20<66000;"5808";SI(D20<68000;"5948";SI( etc

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
1
en les mettant en maj c'est pareil...
0
merci bcp de votre aide je vais essayer tout ca
0
Bonjour raphael,

Ton énoncé comporte des anomalies :

1) Dans un exercice avec des tranches, c'est souvent :
    a <= x < b (donc x compris entre a inclus et b exclu)
    et non pas : a < x < b (x compris entre a exclu et b exclu) ;
    je te propose donc de faire ton exercice selon la 1ère ligne.

2) Quelle valeur doit être retournée si D20 < 64000 ?
    Quelle valeur doit être retournée si D20 >= 84000 ?
    En l'absence de ces indications, ma formule retournera "?" ;
    ce sera à toi d'adapter.

Du fait que l'intervalle de toutes les tranches est le même (2000),
on peut très facilement simplifier la formule de cette façon :

=SI(OU(D20<64000;D20>=84000);"?";CHOISIR((ENT(D20-64000)/2000)+1;"5808";"5948";"6140";"6288";"6776";"6980";"7204";"7408";"7660";"7940"))

Je te laisse la tester et me dire ce que tu en penses.

Ce serait même mieux encore avec des espaces séparateurs de milliers :

=SI(OU(D20<64000;D20>=84000);"?";CHOISIR((ENT(D20-64000)/2000)+1;"5 808";"5 948";"6 140";"6 288";"6 776";"6 980";"7 204";"7 408";"7 660";"7 940"))

Ou avec retour de nombres au lieu de texte ; format cellule destinatrice :
nombres avec 0 décimales et séparateur de milliers :

=SI(OU(D20<64000;D20>=84000);"?";CHOISIR((ENT(D20-64000)/2000)+1;5808;5948;6140;6288;6776;6980;7204;7408;7660;7940))

Toutes les formules sont complètes, et la dernière est encore plus courte.

Si ça te convient, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊


PS : Bonjour à via55 et Raymond au passage.
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DSL de répondre aussi tard mais je viens d'essayer ta formule et ca marche bravo et merci encore cela m'est très utile
0
Utilisateur anonyme
13 sept. 2016 à 21:20
Tu peux me demander autre chose si besoin, mais si tout est réglé, peux-tu
aller en haut de page pour cliquer sur « Marquer comme résolu » ? Ainsi,
le sujet passera en vert ; merci d'avance, cordialement.  😊
0
raphael > Utilisateur anonyme
14 sept. 2016 à 14:35
Bonjour,
excuse moi mais je ne vois pas le lien "marquer comme résolu" en haut de la page??
De plus j'ai encore un petit souci; j'utilise donc ta formule avec la fonction choisir dans mon tableau mais un pb survient; je ne peux pas changer le format des valeurs obtenues et cette valeur n'est de fait pas prise en compte dans une somme réalisée dans le tableau. Y a-t-il une solution?
0
Utilisateur anonyme > raphael
Modifié par albkan le 14/09/2016 à 18:06
Bonjour raphael,

Le lien "marquer comme résolu" se trouve tout en haut de la page,
juste sous le titre de ton tout premier message (du 24 août 2016,
à 16:13). Mais comme tu demandes autre chose, ça peut encore
attendre (merci quand même d'y avoir pensé).  😉

Tu as écris que tu veux faire une somme des valeurs retournées
par ma formule ; dans ce cas, n'utilise pas les 2 formules qui
retournent des textes tels que "5 808" ou "5808" ; utilises donc
la formule qui retourne des résultats sans guillemets (et qui
est aussi la plus courte) :

=SI(OU(D20<64000;D20>=84000);0;CHOISIR((ENT(D20-64000)/2000)+1;5808;5948;6140;6288;6776;6980;7204;7408;7660;7940))

Note bien que pour éviter que la somme soit sur du texte, j'ai aussi
remplacé le "?" par 0 ; donc si D20 < 64000 ou si D20 >= 84000 :
retour de 0 ; à toi d'adapter si tu veux autre chose, car tu n'en
n'as pas parlé.

Maintenant, que ça retourne des nombres, tu peux mettre le format
numérique que tu préfères ; bien sûr la feuille doit être déprotégée
pour pouvoir le faire (mais ça doit être déjà le cas actuellement).

Toujours du fait que ça retourne maintenant des nombres au lieu
de textes, ta formule SOMME() doit maintenant retourner
le résultat que tu attends.

Si ça marche comme tu veux, n'oublies pas de passer le sujet
en résolu : je saurais alors que tu as réussi !

Cordialement.  😊
 
0
nHFirefly Messages postés 54 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 24 août 2016 2
24 août 2016 à 16:22
Tout les SI doivent être en majuscules, non?
-1
nHFirefly Messages postés 54 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 24 août 2016 2
24 août 2016 à 16:29
Il faut un troisième argument pour le dernier SI, tu peux mettre 0 ou alors "".
0