Donnez vie à vos documents numériques !
 

Éviter la division par zéro

abracadabraPDF Forums PDF – Général Éviter la division par zéro

  • Créateur
    Sujet
  • #71212
    Cedrick_MTL
    Participant

    Bonjour je suis nouveau sur le forum. Je voudrais poser la question abordée plus haut sur la thématique de la division par 0.

    Imaginons que je souhaite calculer un pourcentage à partir du ratio R/T (avec ajout du format %)

    T étant une somme fixée à 0 car encore non complétée dans le formulaire.

    Comment éviter les rapports d’erreur sachant que j’utilise la notation simplifiée du champ (je ne connais pas java script) ? J’ai noté que la formule Excel =SI(T,R/T,0) ne fonctionne pas.

    Désolé si ma question est naïve mais j’aimerais une petite aide pour régler ce problème qui bloque les utilisateurs de mon fichier pour pouvoir compléter l’ensemble des champs de mon formulaire.

    Merci 1000 fois pour votre aide, mon document doit être envoyé cette semaine et je dois faire disparaitre cette satanée erreur.

    • Ce sujet a été modifié le il y a 2 années et 6 mois par Cedrick_MTL.
    • Ce sujet a été modifié le il y a 2 années et 6 mois par Cedrick_MTL.
    • Ce sujet a été modifié le il y a 2 années et 6 mois par Merlin.
Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #71216
    Merlin
    Maître des clés

    Bonjour

     

    La notation simplifiée ne permet pas d’éviter la division par zéro, il faut nécessairement utiliser JavaScript.

    Pour te donner la formule magique il faudrait connaitre les noms des trois champs utilisés dans l’opération.

    #71237
    Cedrick_MTL
    Participant

    ah je comprends effectivement le JavaScript est obligatoire.

    Ci-dessous une copie de mon tableau :

    Source Argent Services Total Pourcentage
    A B C D Pourcentage 2
    E F G H Pourcentage 3
    I J K L Pourcentage 4
    M N O P Pourcentage 5
    Autres Q Pourcentageautres
    Total R S T Pourcentagetotal

    Sachant que les utilisateurs devront remplir les champs avec des lettres… parfois cela restera à 0. La colonne Total est une formule de somme.

    Ce que je tente de faire : un calcul de pourcentage automatique au bout des lignes. Actuellement j’y ai rentré en formule simplifiée les formules : D/T etc.. pour tous les autres en dessous. Évidemment cela donne un résultat d’erreur la plupart du temps.

    Pouvez vous m’aider??? pleeeeease

    #71241
    bebarth
    Maître des clés

    bonjour,
    A, B, C… sont les noms des champs ?
    Pour chaque ligne, Total est la somme Source+Argent+Services ? et à quoi correspond Pourcentage ?

    …Sinon merci de préciser ta demande !

    @+
    😎

    #71243
    Cedrick_MTL
    Participant

    Oui A,B, C etc… sont les noms des champs… j’ai préféré les nommer simplement dans mon fichier pour faciliter l’écriture de formule.

    La ligne total est la somme de argent + service (‘source’ est du texte permettant de nommer d’expliquer cela arrive). Donc pour faire un exemple B+C=D

    Le pourcentage sur chaque ligne sert à comptabiliser la part de contribution de chaque source sur le total. En gros quel % a contribué A (en service et argent) sur l’ensemble des contributeurs.

    C’est la raison pour laquelle j’avais créé D/T en formule simplifiée.

    • Cette réponse a été modifiée le il y a 2 années et 6 mois par Cedrick_MTL.
    #71247
    Cedrick_MTL
    Participant

    Bonne nouvelle ! Je viens de trouver la solution en cherchant à droite et à gauche… je voulais partager la réponse ici pour le bénéfice de tous et toutes :

    En prenant la ligne A avec le total D le pourcentage 2 s’obtient de cette manière:

    var Total = this.getField(“D”).value;

    var TotalFinal = this.getField(“T”).value;

    if(Total == 0) event.value = 0

    else event.value = Total/TotalFinal

    #71543
    ClaireSylvain
    Participant

    Merci pour la formule et l’explication!

    • Cette réponse a été modifiée le il y a 2 années et 2 mois par ClaireSylvain.
    #71545
    Merlin
    Maître des clés

    “En prenant la ligne A avec le total D le pourcentage 2 s’obtient de cette manière:

    var Total = this.getField(« D »).value;

    var TotalFinal = this.getField(« T »).value;

    if(Total == 0) event.value = 0

    else event.value = Total/TotalFinal”

     

    J’arrive un peu tard mais ce script ne protège pas de la division par zéro, car c’est le diviseur qui ne doit pas être égal à zéro.

    Ce qui nous donne :

    var Total = this.getField(« D »).value;

    var TotalFinal = this.getField(« T »).value;

    if (TotalFinal == 0) event.value = 0;

    else event.value = Total/TotalFinal;

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.