[Résolu] Conditions "si" imbriquées >2

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Avatar de l’utilisateur
Alain73
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 02 déc. 2007 14:35
Localisation : Savoie (73200)

[Résolu] Conditions "si" imbriquées >2

Message par Alain73 »

Bonsoir tout le monde.

Par deux fois déjà je suis venu vous demander de l'aide et pour tout dire elle a été terriblement efficace.

Ce soir malgré mes recherches(fructueuses) sur le site je butte sur un problème de conditions imbriquées. En fait je ne comprends pas trop, jusqu'à deux imbrications çà va, mais après ..... :?
Je me suis peut-être fourvoyé avec cette fonction, mais je ne vois pas comment faire autrement.

Désolé d'avoir un peu l'impression de vous demander de faire mes devoirs. :oops:

Pour mieux situer le problème je joins un tableau avec les explications.

En attendant bonne soirée et merci de vous pencher sur mon cas.

Alain
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Alain73 le 22 févr. 2009 10:49, modifié 1 fois.
LibreOffice 3.5.7.2 Version ID : 350m1(Build:2) */* Kubuntu 12-04*/* au18/10/2013
LibreOffice 4.1.4.2 */* Windows sept */* au 19/12/2013
Jeff
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10013
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Conditions "si" imbriquées >2

Message par Jeff »

Bonsoir,

Je ne sais pas si j'ai bien interprété ton problème, vois le fichier joint...

Pour imbriquer des SI, ce n'est pas tellement compliqué :

OOo "lit" la liste des conditions de gauche à droite, la première condition vérifiée renvoie le résultat_si_vrai.

Chaque SI imbriqué est la valeur_si_faux de la fonction SI précédente, n'oublie pas les parenthèses à la fin :
(le mieux est peut-être de passer par l'assistant de fonction pour ne pas se paumer)

=SI(test_logique;valeur_si_vrai;valeur_si_faux) d'où :

=SI(test_logique;valeur_si_vrai;SI(test_logique;valeur_si_vrai;SI(test_logique;valeur_si_vrai;valeur_si_faux)))

A + :wink:

EDIT : petite boulette, pour ne pas avoir des valeurs négatives en M42, saisi cette formule :

Code : Tout sélectionner

=SI(M40-J40+N40-M41<=0;"";M40-J40+N40-M41)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.16 / Debian 13 "Trixie" / Xfce
AOO 4.1.15 / Debian 11 "Bullseye" / Cinnamon
Avatar de l’utilisateur
Alain73
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 02 déc. 2007 14:35
Localisation : Savoie (73200)

Re: Conditions "si" imbriquées >2

Message par Alain73 »

Non, désolé çà ne passe pas totalement, mais je me suis peu-être mal expliqué dans le tableau.

Supposons que je reçoive 3 livraisons de 6 kg de reblochon avec des lot et des dlc différents soit 18 kg.
Si en M40 j'ai une sortie de 6 kg( il me reste donc 12kg en N40), mais comme je fais un roulement de mes stock suivant la dlc je vais utiliser en premier l'avant avant dernière livraison (j42), donc je voudrai voir apparaitre 0 ou "" enM41 et 6 en M42, et donc 6 en N41et 0 en N42.
En espérant avoir été plus clair.
LibreOffice 3.5.7.2 Version ID : 350m1(Build:2) */* Kubuntu 12-04*/* au18/10/2013
LibreOffice 4.1.4.2 */* Windows sept */* au 19/12/2013
lyondif02
Fraîchement OOthentifié
Messages : 5
Inscription : 20 févr. 2009 23:25
Localisation : Lyon, France

Re: Conditions "si" imbriquées >2

Message par lyondif02 »

Bonsoir,

Dans votre précédent message, l'exemple d'exploitation de stock de Reblochon que vous développez me parait clair (et intuitif par rapport à la réalité de la gestion de stock). On utilise en priorité les stocks de DLC la moins récente (à supposer qu'elle ne soit pas échue au moment de la comptabilité).

Une précision sur la spécification de votre classeur me semble cependant indispensable pour proposer une solution pertinente.

Considérant le cas du produit Reblochon 45 % dont l'exploitation est donnée dans la plage de cellules F39:P42, voudriez-vous bien indiquer parmi les cellules de la plage M40:P42 :
  1. quelles sont les cellules dont la valeur est/sera saisie par l'utilisateur ?
  2. quelles sont les cellules dont la valeur doit être calculée (au moyen d'une formule en l'occurrence) ?
(On en déduira les cellules à valeur constante le cas échéant.)

L'étude de l'exploitation d'autres produits donnée dans votre classeur m'a conduit aux interrogations suivantes :
  1. la valeur de stock utilisé (colonne M) est-elle cumulative ou correspond-elle au stock utilisé pour le stock livré sur la même ligne (colonne J) ?
  2. la valeur du stock restant (colonne N) est-elle cumulative ou correspond-elle au stock restant pour le stock livré sur la même ligne (colonne J) ?
  3. (question auxiliaire) le sens des cellules des colonnes O et P semble changer de manière arbitraire selon la ligne. Quel est-il pour chaque cellule (O40, O41, O42, P40, P41, P42) ?
Merci pour vos précisions et votre compréhension de ces interrogations visant à écarter toute ambigüité sur la spécification implicite ici.

Cordialement.
OpenOffice.org 3.0.1 sous Mac OS X 10.4.11.
Avatar de l’utilisateur
Alain73
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 02 déc. 2007 14:35
Localisation : Savoie (73200)

Re: Conditions "si" imbriquées >2

Message par Alain73 »

Bonsoir

et merci de vous intéresser a mon cas.

Je remet en ligne un fichier organisé différemment avec ses explications . Je pense qu'il sera plus parlant et plus simple à exploiter.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.5.7.2 Version ID : 350m1(Build:2) */* Kubuntu 12-04*/* au18/10/2013
LibreOffice 4.1.4.2 */* Windows sept */* au 19/12/2013
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: Conditions "si" imbriquées >2

Message par gerard24 »

Bonsoir,

Voici ton fichier modifié avec maximum 2 SI imbriqués.
Alain73.ods
N' hésites pas à poser des questions si nécessaire.
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
Alain73
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 02 déc. 2007 14:35
Localisation : Savoie (73200)

Re: Conditions "si" imbriquées >2

Message par Alain73 »

gerard24 a écrit :Bonsoir,
N' hésites pas à poser des questions si nécessaire.
A+
donc je n'hésite pas :D

comme çà , çà marche ok mais je voudrais qu'en sortant 10 reblochons et qu'il men reste 12 ils soient sortis de la dernière livraison de 30 pièces .

Je suis arrivé à le faire sur 2 lignes mais impossible pour moi de le faire sur 3 lignes


Merci encore
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.5.7.2 Version ID : 350m1(Build:2) */* Kubuntu 12-04*/* au18/10/2013
LibreOffice 4.1.4.2 */* Windows sept */* au 19/12/2013
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: Conditions "si" imbriquées >2

Message par gerard24 »

Alain73 a écrit :mais je voudrais qu'en sortant 10 reblochons et qu'il men reste 12 ils soient sortis de la dernière livraison de 30 pièces .
et
Alain73 a écrit :Supposons que je reçoive 3 livraisons de 6 kg de reblochon avec des lot et des dlc différents soit 18 kg.
Si en M40 j'ai une sortie de 6 kg( il me reste donc 12kg en N40), mais comme je fais un roulement de mes stock suivant la dlc je vais utiliser en premier l'avant avant dernière livraison (j42), donc je voudrai voir apparaitre 0 ou "" enM41 et 6 en M42, et donc 6 en N41et 0 en N42.
:?:
Là, je ne comprends plus.

Edit: La nuit portant conseil, je crois avoir finalement compris.
Regarde ce fichier et dis-moi si c'est le cas.
Alain73(5).ods
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
lyondif02
Fraîchement OOthentifié
Messages : 5
Inscription : 20 févr. 2009 23:25
Localisation : Lyon, France

Re: Conditions "si" imbriquées >2

Message par lyondif02 »

Bonsoir,

Je partage :
  • la même proposition de solution que Gerard24 (formules de calcul équivalentes sans fonction SI et avec des fonctions d'agrégation MAX et MIN) et
  • la même interrogation face au problème de décision qui se pose avec les 2 exemples confrontés par Gerard24.
Dans le dernier exemple cité :
Alain73 a écrit :[...]
je voudrais qu'en sortant 10 reblochons et qu'il men reste 12 ils soient sortis de la dernière livraison de 30 pièces.
  1. part-on de l'hypothèse que les 3 livraisons (la dernière et les 2 précédentes) ont été effectuées avant de déterminer la répartition des stocks utilisés (stock total de départ : 18+3+30 = 51 en référence aux données du dernier classeur fourni) ?
  2. entend-on des conditions particulières d'utilisation des stocks (notamment liées à la DLC de chaque stock livré) ? le cas échéant, lesquelles ?
Quand on considère la spécification donnée dans la cellule G35 (reprise ci-après) du dernier classeur fourni :
Les cellules en blanc [note : cellules des valeurs de stock utilisé et de stock restant pour chaque livraison de stock] sont celles que je voudrais voir calculées en prenant mes produits si besoin dans l'avant dernière livraison en premier et dans sa quantité maximum ensuite en remontant les livraisons.
doit-on comprendre le mode de calcul suivant ?
  1. Si la quantité totale de stock utilisé est inférieure ou égale à la quantité de stock de la dernière livraison, alors le seul stock puisé est celui de la dernière livraison ;
  2. Sinon le stock puisé en premier est le stock de la livraison antérieure dont la quantité est la plus grande.
    1. En cas de choix entre plusieurs livraisons antérieures, le stock de la livraison la plus ancienne est puisé.
    2. On itère sur les livraisons antérieures de stock disponible, en privilégiant la livraison de stock maximal.
    3. Le stock de la dernière livraison n'est puisé que si les stocks des livraisons antérieures sont intégralement puisés.
À noter que, au regard du dernier classeur d'exemples fourni, la règle 1 évoquée ci-dessus serait enfreinte pour les produits "Bouquet Thym Frais" et "Bouquet Laurier". Dans les 2 cas, la valeur du stock de dernière livraison (valeur : 1) est égale à la valeur du stock utilisé (valeur : 1) (cellules M22 contre J23 et M26 contre J27). Malgré cela, le stock utilisé est celui de l'antépénultième livraison (cellules M25 et M29 respectivement).

Dans l'attente de précisions.
Cordialement.

Édition (22/02/2009 02:31) :
Le classeur de référence dans mon message ci-dessus était le classeur alors disponible, à savoir celui du message du 21/02/2009 21:17.
Avant que je poste mon message, un nouveau classeur a été joint au message du 21/02/2009 22:30. La spécification des cellules-clés demeure incertaine, d'autant plus que du contenu a changé entre les 2 versions du classeur.
Gerard24 a en l'occurrence proposé une nouvelle solution sur la base de ce classeur dans son message du 21/02/2009 22:59. Bien que des réponses aux questions posées auraient été bienvenues, j'espère que la solution de Gerard24 conviendra.
OpenOffice.org 3.0.1 sous Mac OS X 10.4.11.
Avatar de l’utilisateur
Alain73
Membre lOOyal
Membre lOOyal
Messages : 36
Inscription : 02 déc. 2007 14:35
Localisation : Savoie (73200)

Re: Conditions "si" imbriquées >2

Message par Alain73 »

gerard24 a écrit :
Alain73 a écrit :mais je voudrais qu'en sortant 10 reblochons et qu'il men reste 12 ils soient sortis de la dernière livraison de 30 pièces .
et
Alain73 a écrit :Supposons que je reçoive 3 livraisons de 6 kg de reblochon avec des lot et des dlc différents soit 18 kg.
Si en M40 j'ai une sortie de 6 kg( il me reste donc 12kg en N40), mais comme je fais un roulement de mes stock suivant la dlc je vais utiliser en premier l'avant avant dernière livraison (j42), donc je voudrai voir apparaitre 0 ou "" enM41 et 6 en M42, et donc 6 en N41et 0 en N42.
:?:
Là, je ne comprends plus.

Edit: La nuit portant conseil, je crois avoir finalement compris.
Regarde ce fichier et dis-moi si c'est le cas.
Alain73(5).ods
A+
Un *grand* merci à gerard24, après des tests avec différentes valeurs il s'avère que le dernier tableau correspond tout à fait à ce dont j'ai besoin.

Çà me permettra de faire un roulement sur les trois derniers lots sans avoir à rajouter des données au stylo sur mes fiches de traçabilité.
C'est vrai que mes explications étaient plutôt confuses, j'aurai peut-être du préciser que le reste en stock conditionnait la ligne de livraison utilisée.

Merci aussi aux autres contributeurs qui ont su prendre de leur temps pour m'aider. Vous êtes super.

Cordialités d'Albertville ou il neige abondamment ce matin.
LibreOffice 3.5.7.2 Version ID : 350m1(Build:2) */* Kubuntu 12-04*/* au18/10/2013
LibreOffice 4.1.4.2 */* Windows sept */* au 19/12/2013