Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Réduction de formule


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Réduction de formule
    Bonjour à tous,
    Il ne s'agit pas d'un point de blocage à proprement parler, mais d'une interrogation plus large sur la manière de réduire ma formule, de rechercher une solution plus "élégante" pour résoudre ma problématique.
    Contexte :
    je cherche à modéliser le produit économique d'une production fruitière en fonction de la surface et du produit "nominal" par hectare. La surface plantée peut changer chaque année, et l'arbre produit différemment selon s'il est planté depuis un, deux, trois ans, etc.
    Conséquences :
    Il y a plusieurs possibilités chaque année :
    1)Année N1
    Le produit est égal à
    Ptot=Pn1*Sn1
    2)Année N2
    • Si la surface est restée identique : Ptot=Pn2*Sn1
    • Si la surface augmente : Ptot=Pn2*Sn1+Pn1*(Sn2-Sn1)
    • Si la surface diminue : Ptot=Pn2*Sn2

    3)Année N3
    • Si la surface est restée identique : Ptot=Pn3*Sn1
    • Si la surface diminue chaque année: Ptot=Pn3*Sn3
    • Si la surface augmente chaque année : Ptot=Pn3*Sn1+Pn2*(Sn2-Sn1)+Pn1*(Sn3-Sn2)
    • Si la surface augmente en N2 mais diminue en N3, mais reste supérieur à N1 : Ptot=Pn3*Sn1+Pn2*(Sn3-Sn1)
    • Si la surface augmente en N2, mais diminue en N3, en devenant de fait inférieur à la surface en N1 (Sn2>Sn1;Sn3<Sn2;Sn3<Sn1) : Ptot = Pn3*Sn3


    Du coup,
    Ce n'est pas compliqué en soit à décrire en formule, mais pour l'instant je ne trouve pas de solution qui ne soit pas laborieuse et très peu lisible, ce qui est d'autant plus problématique qu'il y a 6 année à simuler, avec donc autant de possibilité chaque année (en sixième année, la production peut très bien avoir augmenté en N2, diminué en N3, réaugmentée en N4, supprimée en N5 et être tout juste replantée en N6...).

    Je mets en PJ un tableur d'exemple où j'ai fais la simulation pour l'année 1 et 2:


    Merci à tout ceux qui auraient l'envie de mettre le nez là dedans, qui auraient une astuce, etc
    Et même merci d'avoir ne serait-ce que lu ce post un peu long ^^

    Au plaisir de vous lire et d'échanger !

  2. #2
    Expert confirmé
    Bonjour,

    Je ne comprends pas ce que tu voudrais faire ...

    Quelle que soit l'année "a" il suffit de calculer : Ptot = Pa x Sa

    Exemple :
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Candidat au Club
    Bonjour,
    Merci de ta réponse !
    Cependant, la situation est un peu plus complexe, je n'ai sans doute pas été assez précis dans mon explication :
    Si on plante 1ha en année 1, et 2ha en année 2, en année 3 on a 1ha de deux ans et 2ha de un an, qui produisent donc différemment. Et si on arrache une partie, on ne garde que les arbres les plus anciens, donc si on arrache 2ha en année 4, on a encore 1ha qui produit selon sa 3ème année.
    Je ne sais pas si je suis plus clair ?

  4. #4
    Membre actif
    Bonjour,

    Après moult essais, j'ai écrit la formule différemment ;
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ponderation*C8*RECHERCHEV($A15;Produits_arbo;COLONNE($parametres_arbo.$B$1);"FAUX")  +  ponderation*B8*RECHERCHEV($A15;Produits_arbo;COLONNE($parametres_arbo.$C$1);"FAUX")

    ce qui la rend plus compréhensible et plus facile à faire évoluer.

    A chaque année supplémentaire, tu fais glisser la formule de la cellule précédente et tu dois rajouter le code correspondant à la première année : + ponderation*B8*RECHERCHEV($A15;Produits_arbo;COLONNE($parametres_arbo.$C$1);"FAUX") et inscrire la valeur de la colonne en cours dans le code : COLONNE($parametres_arbo.$C$1) où C correspond à la colonne en cours (et j'ai utilisé la ligne 1 et non 11, pour simplifier).

    Cette définition d'année de production par la fonction "COLONNE()" me semble assez complexe à utiliser. Tu pourrais remplacer N+1 par 1 et venir lire la valeur de cette cellule.

    Ta démarche est très différente de la mienne et très intéressante. Merci.

    Alors, au travail !!! Bon courage.
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

  5. #5
    Membre actif
    Et non, ce n'est pas encore au point. Il manque la gestion de la diminution de surface qui doit être appliquée à l'année de plantation. Je pense que le premier tableau est insuffisant pour tout renseigner.
    Peut-être en rajoutant une ligne pour la diminution de surface à renseigner dans la bonne année de plantation ?
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

  6. #6
    Candidat au Club
    Bonjour Pascaltech,
    Merci beaucoup de ta recherche et de ton travail !
    Je me suis effectivement rabattu sur le fait de stocker dans un tableau supplémentaire la surface de chaque production à chaque âge.
    Il n'y a plus d'automatisation liée au nom de l'espèce plantée, elle seront toutes présentes et éventuellement cachées par un filtre pour certaine. Cela complique les possibilités ultérieures de rajouter des espèces et leur tripotée de paramètres spécifiques, mais cela sécurise et fait moins usine à gaz illisible... Et rend le travail encore un peu fastidieux pour refaire l'ensemble du modèle dans mon fichier réel (les copier coller ne font pas tout, hélas...) !
    Mais c'est la seule façon que j'ai identifiée de résoudre mon problème.
    Merci encore !

  7. #7
    Membre actif
    J'ai tenté quelque chose, mais ce n'est pas encore cela.

    Tu dois faire apparaître dans l'année d'arrachage, quelle est l'ancienneté de la parcelle arrachée. Je n'ai pas encore regardé ton dernier fichier.

    Ce n'est pas si simple que cela paraissait, je ne trouve pas le modèle, il s'agit peut-être du calcul d'une intégrale et c'est assez loin pour moi.

    La fonction colonne() est risquée car si tu déplaces en horizontal ton tableau dans ta feuille, le nombre donné n'est plus le même !!
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

###raw>template_hook.ano_emploi###