Formule "SI" avec conditions multiples sous Libre Office [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015
-
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015
-
Bonjour,

J'essaie d'inclure une formule, sous Libre Office, mais je n'obtiens que des codes d'erreur. Quelqu'un pourrait-il me dire où elle se niche :

Je voudrais obtenir en B un résultat différent suivant la valeur de A, tel que :

=SI(A<250;"3.15";SI(250>A<500;"4.3");SI(500>A<1000;"5.45"), etc....

C'est simple, sûrement, j'avais réussi il y a quelques années, mais là plus moyen de retrouver. Problème de syntaxe, mais lequel ?.....

Merci d'avance !


3 réponses

Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020
13 740
Bonjour.
D'abord supprimer les guillemets ; ensuite remplacer les points par des virgules, car dans les deux cas tu affiches des textes et pas des nombres ...

Enfin, ne pas inventer des syntaxes qui n'existent pas :
Ce n'est pas
SI(250>A<500 ...
mais juste
SI(A<500 ...
puisqu'on a déjà examiné le cas où
A<250
.

Ta formule
=SI(A<250;"3.15";SI(250>A<500;"4.3");SI(500>A<1000;"5.45"), etc.
devient donc =SI(A<250;3,15;SI(A<500;4,3);SI(A<1000;5,45), etc.

C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57508 internautes nous ont dit merci ce mois-ci

Messages postés
2251
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
24 juillet 2020
1 124
Bonjour,

Il ne manque pas des parenthèses ? Tu dois pas ouvrir des parenthèses a chaque nouvelle condition ?
Exemple:
=SI(A<250;3,15;(SI(A<500;4,3;(SI(A<1000;5,45;//Insere la suite//)))))

Je me trompe peut être hein :p
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020
13 740 >
Messages postés
2251
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
24 juillet 2020

Oui, tu te trompes ...
Messages postés
2251
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
24 juillet 2020
1 124
Voila comment je le comprend et l'écrirais:
=SI(E<3 ;Si(P<250;A="3.15€";Si(P<500;A=(Prix pour E<3cm et 250<P<500));SI(P<1000;A="(Prix pour E<3CM et 500<P<1000)"; Si(Continuer jusqu'au 3 Kg)))) ; Si(P<250; A="5.50€";Si(P<500;A=(Prix pour E>3cm et 250<P<500) ; Si(P<1000;A=("Prix pour E>3CM et 500<P<1000"; Si (Continuer jusqu'au 3KG)))))

En version plus ... claire ca donnerais ca

Si E<3 //On est dans le format lettre Suivi
Si P<250
A=3.15
Sinon
Si P<500
A="Prix pour E<3cm et 250<P<500
Sinon
Si P<1000
A="Prix pour E<3cm et 500<P<1000
Sinon
Etc
Fin Si
Fin Si
Fin Si
Sinon // On entre au format Colissimo
Si P<250
A=550
Sinon
Si P<500
A="Prix pour E<3cm et 250<P<500
Sinon
Si P<1000
A="Prix pour E<3cm et 500<P<1000
Sinon
Etc
Fin Si
Fin Si
Fin Si
Fin Si


C'est quelque chose comme ça que tu voudrais?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57508 internautes nous ont dit merci ce mois-ci

Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015

Tout à fait ! J'ai développé ta formule et je l'ai testée, avec les valeurs réelles de La Poste à ce jour (on ne sait jamais, tu peux en avoir besoin) : elle fonctionne parfaitement. La voici (je n'ai pas mis les valeurs de "A" entre parenthèses -ce qui renverrait un "Texte"-, car je n'ai pas besoin de faire figurer la monnaie, le nombre suffit) :

SI(E<3;SI(P<250;3.15;SI(P<500;4.3;SI(P<1000;5.45;SI(P<2000;6.9;SI(P<3000;7.5)))));
SI(P<250;5.5;SI(P<500;6.45;SI(P<1000;7.9;SI(P<2000;8.95;SI(P<5000;11.5))))))

Un grand merci pour ton aide. Du coup, je me suis plongé dans les tutoriels de tableurs qu'on peut trouver sur le net : c'est mieux qu'un Sudoku !
J'indique "Résolu" à la question.
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015

Bonjour Raymond,
Merci pour ta réponse rapide (décalage horaire avec les Antilles ?).

Bon, je ne comprends pas : j'ai essayé 5 fois ta formule, en suivant tes conseils pour les guillemets et les virgules, ça ne marche pas, j'obtiens : erreur 504. Si elle marche chez toi, telle quelle, je ne sais pas ce qui peut se passer chez moi.
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015
>
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020

Voilà le lien :
https://www.cjoint.com/c/EJBf5YkGn2m

En fait, je voudrais calculer automatiquement l'affranchissement d'un envoi postal : il est fonction :
1) du poids (A)
2) de l'épaisseur (B) : Si B<3 cm : Lettre suivie.
Si B>3cm : Colissimo.

A terme, la formule complète que je recherche, en C (Lettre suivie) et D (Colissimo) devrait donc commencer par :

- en C : "SI(B<3;" et se poursuivre par "=SI(A<250;"3.15";SI(250>A<500;"4.3");SI(500>A<1000;"5.45"), etc.... "
- en D : "Si(B>3;" et se poursuivre par d'autres valeurs (que je pourrai modifier, une fois la formule trouvée en C.

J'espère avoir été clair....
Merci.
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020
13 740 >
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015

Ce n'est pas clair du tout, dans la mesure où tes explications ne correspondent pas à ton fichier ...
En C il n'y a pas de formule, mais la saisie du poids, qui n'est pas en A !
L'épaisseur, on doit supposer que ce n'est pas en B, mais en D ?
" ...SI(500>A<1000;"5.45"), etc.... " mais c'est quoi, le etc ?
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015
>
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020

Bon, le plus simple c'est de te dire ce que je cherche à faire, au final, en employant les vrais termes plutôt que les références au classeur (c'est vrai que j'ai introduit un paramètre supplémentaire : l'épaisseur du pli).

Voilà : je voudrais calculer le prix de l'affranchissement d'un envoi postal. Il dépend du poids, bien sûr, mais AUSSI de son épaisseur. C'est ainsi qu'un envoi de moins de 250 g sera affranchi à 3.15€ s'il fait moins de 3 cm d'épaisseur, mais il devra l'être à 5.50€ s'il les dépasse. Et ainsi de suite, par tranches, jusqu'à 3 kgs. Quelque soit le poids, moins de 3 cm, c'est le tarif "Lettre suivie", plus de 3 cm, c'est le tarif "Colissimo" qui s'appliquent.

J'ai donc essayé de rédiger une formule combinée "SI ET", mais je n'ai pas trouvé la bonne syntaxe : je me suis embrouillé dans les parenthèses, et les "alors" "sinon".

J'espère que c'est plus clair pour toi : comment écrirais-tu cette formule ? (appelons P le poids, E l'épaisseur et A l'affranchissement, si tu veux bien).

Merci.
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020
13 740 >
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015

=SI( P<250; SI(E<3;3,15;5,50); SI(E<3;"Lettre suivie";"Colissimo") )
Messages postés
13
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
2 novembre 2015
>
Messages postés
52000
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2020

Désolé, je n'ai pas compris ta formule, qui prend comme "test logique" le poids : je ne vois pas comment l'étendre aux tranches suivantes. C'est sûrement possible, mais la solution de diablo13800 m'a semblée plus simple : elle prend comme "test logique" l'épaisseur, et elle fonctionne parfaitement. Développée, avec les valeurs réelles de La Poste à ce jour, cela donne :

SI(E<3;SI(P<250;3.15;SI(P<500;4.3;SI(P<1000;5.45;SI(P<2000;6.9;SI(P<3000;7.5)))));
SI(P<250;5.5;SI(P<500;6.45;SI(P<1000;7.9;SI(P<2000;8.95;SI(P<5000;11.5))))))

Voilà, si tu veux calculer le poids d'un colis, ça marche : on ne sait jamais, depuis les Antilles, tu peux avoir envie d'expédier de quoi faire un ti'punch ! :-)
Merci pour ton aide.