Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

{Numbers} : Renvoyer résultat d'un calcul variable selon valeur donnée dans une autre cellule

Discussion dans 'Bureautique et productivité' créé par iRyys, 29 Novembre 2017.

Modérateurs: Aliboron
  1. iRyys

    iRyys Nouveau membre

    Inscrit:
    29 Novembre 2017
    Messages:
    5
    J'aime reçus:
    0
    Bonsoir !

    J'ai besoin d'une personne balèze en tableurs et fonctions Numbers ! :siffle:
    Je n'ai pas trouvé réponse à mes questionnements sur les forums pour le moment, désolée si je répète une question qui avait déjà reçue une réponse :sorry:

    Je suis une vraie newbie dans le monde des tableurs, et voilà un mois que j'essaie de mettre au point toute l'administration de mon entreprise sous Numbers. Je commence à bien maîtriser mes feuilles de calculs, la fonction RECHERCHE, les menus déroulants...

    Mais là, je me heurte à un problème (de flemme, puisque je pourrais très bien faire le calcul à la main, mais voyons, avec les tableurs, le but c'est bien de tout automatiser, n'est-ce pas?).

    J'aimerais renvoyer le résultat d'un calcul selon la donnée inscrite dans une cellule précédente.
    Je m'explique :
    - J'ai les montants des recettes (colonne E)
    - ...auxquels il faut que j'enlève la commission qui est variable selon le mode d'encaissement (colonne F qui est un menu déroulant)


    Je tente en vain la fonction SI mais je tombe sans arrêt sur des erreurs de syntaxe ou autres erreurs qui sont du chinois à mes yeux....

    Donc comment faire pour que dans la colonne G j'aie le résultat de la colonne E moins la commission variable?

    Pour info :
    - commission = 0 si F = Chèque
    - commission = 3,4% + 0,25€ si F = Paypal
    - commission = 1,4% + 0,25€ si F = Carte bancaire

    Merci d'avance, Grand Génie de l'Internet :coucou:
     
  2. baron

    baron Membre d’élite

    Inscrit:
    22 Avril 2008
    Messages:
    1 014
    J'aime reçus:
    163
    Pour traquer les erreurs de syntaxe, je trouve plus facile de scinder les commandes — telles que des SI — en les répartissant sur plusieurs colonnes avant de les imbriquer. Ainsi tu peux tester chaque étape ; quand ça marche bien, tu remettras éventuellement tout ensemble.

    ++++++++++++

    Dans le cas que tu évoques, je commencerais par créer un 2e tableau avec les commissions et les coûts fixes selon le mode de paiement (juste une bonne habitude, par précaution — comme ça, si ça change je ne dois pas tout refaire) :
    Capture d’écran 2017-11-30 à 04.14.32.png
    J'y ferais chaque fois référence avec des valeurs absolues (Tableau 2 : rang et colonne précédés de $) sauf que comme j'ai créé un autre tableau, avec des en-têtes pour nommer les colonnes et un seul rang de données, quand je clique dans une de ces cellules pour y faire référence dans une formule, ça me donne une expression plus parlante, p.ex. "Comm.(ission) Paypal".

    ++++++++++

    Ensuite dans mon tableau principal, je crée d'abord une colonne G qui ne traite que les paiements en cash :
    Je tape la formule suivante en G2
    Code (Text):
    =SI($F2="Cash";$E2)
    et je recopie la formule vers le bas en cliquant sur le coin inférieur de la cellule jusqu'à avoir un curseur en forme de "+" non gras, puis je glisse vers le bas (= recopie incrémentée)

    Colonne G
    Capture d’écran 2017-11-30 à 03.58.09.png

    Puis, une colonne H qui traite les paiements par carte bancaire (mais en ne prenant en compte que la commission, que je soustrais, sans compter encore les frais fixes — de nouveau, par prudence, je vérifie d'abord chaque calcul un par un) :

    colonne H
    Code (Text):
    =SI($F2="Carte bancaire";($E2-Comm. CB*$E2))
    Capture d’écran 2017-11-30 à 04.22.34.png
    Comme tout va bien et que les chiffres sont justes, j'ajoute une colonne I qui inclut aussi les frais fixes pour les paiements par carte bancaire :

    colonne I
    Code (Text):
    =SI($F2="Carte bancaire";($E2-Comm. CB*$E2)+Fixe CB)
    ++++++++++++

    Je fais pareil pour les paiements par Paypal, en créant deux colonnes J et K :

    colonne J
    Code (Text):
    =SI($F2="Paypal";($E2-$E2*Comm. Paypal))

    colonne K
    Code (Text):
    =SI($F2="Paypal";($E2-$E2*Comm. Paypal)+Fixe Paypal)
    Capture d’écran 2017-11-30 à 04.31.51.png

    ++++++++

    J'ai ainsi pu vérifier et rectifier tous mes calculs et toutes mes formules ; il me reste à les imbriquer.
    On sait que la formule SI peut avoir trois arguments : (énoncé de la condition; réponse si OUI; réponse si NON).

    Il s'agit donc de reprendre successivement les formules des colonnes G, I et K et de les intercaler lorsque la première condition n'est pas remplie.
    À nouveau, je procède une étape à la fois :
    A la suite de la formule G écrite sur le mode "SI (condition; réponse si OUI)"
    Code (Text):
    =SI($F2="Cash";$E2)
    j'ajoute un point-virgule avant la dernière parenthèse pour dire quoi faire si la condition n'est pas remplie et je colle à la suite la formule SI de la colonne I (Carte bancaire), sans son signe "égale" initial :

    colonne L
    Code (Text):
    =SI($F2="Cash";$E2;SI($F2="Carte bancaire";($E2-Comm. CB*$E2)+Fixe CB))
    Je vérifie que les résultats sont cohérents jusque là :
    Capture d’écran 2017-11-30 à 04.50.22.png
    Et je réitère le processus, en ajoutant un point-virgule et la formule SI de la colonne K (Paypal) avant la dernière parenthèse — toujours en omettant son signe "égale" :

    colonne L (version finale)
    Code (Text):
    =SI($F2="Cash";$E2;SI($F2="Carte bancaire";($E2-Comm. CB*$E2)+Fixe CB;SI($F2="Paypal";($E2-$E2*Comm. Paypal)+Fixe Paypal)))
    Capture d’écran 2017-11-30 à 05.36.29.png
    Je constate que les résultats sont tous identiques à ceux que j'obtenais en traitant chaque mode de paiement séparément : je ne me suis donc pas trompé !
    ;)


    +++++++++++

    Le processus fut long mais sans embûches…

    Bonne chance !
    :)

    [P.S. J'ai chaque fois indiqué Cash alors que tu disais Chèque : c'est un mode de paiement qui est si désuet chez nous que ça m'était sorti de la tête…]
     
    #2 baron, 30 Novembre 2017
    Dernière édition: 30 Novembre 2017
    Aliboron aime ça.
  3. baron

    baron Membre d’élite

    Inscrit:
    22 Avril 2008
    Messages:
    1 014
    J'aime reçus:
    163
    Euh… Je m'aperçois que j'ai aussi oublié de réfléchir ! :banghead: :banghead: :banghead:

    Les 0,25 € de frais fixes à ajouter à la commission étaient évidemment à déduire de la recette.
    Mes calculs sont donc faux… mais on dira que c'est le principe qui compte. :angelic:

    Je remets quand même la formule finale rectifiée :
    Code (Text):
    =SI($F2="Cash";$E2;SI($F2="Carte bancaire";($E2-Comm. CB*$E2)-Fixe CB;SI($F2="Paypal";($E2-$E2*Comm. Paypal)-Fixe Paypal)))
    N.B. On pouvait aussi ne pas changer la formule (quand elle est très longue, on a vite fait de se tromper) et simplement mettre des chiffres négatifs dans le tableau secondaire.
     
    #3 baron, 30 Novembre 2017
    Dernière édition: 30 Novembre 2017
    iRyys aime ça.
  4. iRyys

    iRyys Nouveau membre

    Inscrit:
    29 Novembre 2017
    Messages:
    5
    J'aime reçus:
    0
    OK ! Je n’aurais pas pu rêver plus complet comme réponse!! :) je vais essayer tout ça! S’il y a un truc où je bloque je reviendrai pour plus d’infos ...
    Mais je devrais y arriver là !
    Merci beaucoup!
     
  5. iRyys

    iRyys Nouveau membre

    Inscrit:
    29 Novembre 2017
    Messages:
    5
    J'aime reçus:
    0
    Merci ! :D:D:D
    Ça fonctionne à merveille (mais tu le savais déjà bien sûr) !
    J'ai juste pris le temps de vraiment le faire étape par étape histoire de pas faire un copier/coller bête & méchant. Je suis venue apprendre après tout..! :)
     
  6. iRyys

    iRyys Nouveau membre

    Inscrit:
    29 Novembre 2017
    Messages:
    5
    J'aime reçus:
    0
    Au fait, comme il s'agit de devises, j'ai rajouté la formule ARRONDI juste avant, parce que mes résultats finaux ne correspondaient pas lors de ma vérification manuelle!

    Donc :
    ARRONDI(=SI($F2="Cash";$E2;SI($F2="Carte bancaire";($E2-Comm. CB*$E2)-Fixe CB;SI($F2="Paypal";($E2-$E2*Comm. Paypal)-Fixe Paypal)));2)

    ;)
     
  7. baron

    baron Membre d’élite

    Inscrit:
    22 Avril 2008
    Messages:
    1 014
    J'aime reçus:
    163
    Tu pouvais aussi simplement définir le format des cellules comme Devises plutôt qu'Automatique. ;)
     
  8. iRyys

    iRyys Nouveau membre

    Inscrit:
    29 Novembre 2017
    Messages:
    5
    J'aime reçus:
    0
    C’est ce que j’ai fait ! Mais apparemment Numbers garde en mémoire les autres décimales et lorsqu’on applique des calculs automatiques il se base sur toutes les décimales et donne donc des résultats certes très justes mais pas les bons quand il s’agit d’argent ;)
     
  9. baron

    baron Membre d’élite

    Inscrit:
    22 Avril 2008
    Messages:
    1 014
    J'aime reçus:
    163
    Oui, le choix d'un format de nombre n'affecte que l'affichage mais pas la valeur sous-jacente. Dans ces cas-là, la fonction ARRONDI est bienvenue. :)
     
Modérateurs: Aliboron
Chargement...