IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Excel Discussion :

[EXCEL] Condition et erreur DIV0


Sujet :

Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 496
    Points : 522
    Points
    522
    Par défaut [EXCEL] Condition et erreur DIV0
    Bonsoir,

    Je vous explique mon problème.
    Je cherche à faire la conception d'une feuille de calcul pour faire un classement d'un championnat de poker pour mon association.
    Chaque semaine, nous jouons un tournoi et un classement est établi, qui nous attribue des points.
    Une formule Excel existe pour transformer notre place en nombre de points :
    =10000*(RACINE(N/PUISSANCE(R;EXP(10/N))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100
    N = nb de joueurs et R = notre place sur le tournoi
    Ainsi, j'ai 2 feuilles : l'une avec nos résultats de tournoi ("result") et l'autre avec les calculs de points ("points")

    Mon problème est que j'aimerai mettre 2 conditions sur chaque cellule de la feuille "points" : si le résultat de la formule est > à 0 ca m'indique le résultat de la formule, si = 0 (car j'ai pas mal de message d'erreur de division par 0), ca m'indique rien ou 0 à la rigueur.
    J'ai donc cherché avec les conditions SI ou IF, mais je n'arrive pas à les mettre en forme (ca m'indique des erreurs)

    Exemple de mon fichier excel :
    - feuille result : case D28 = 1er du tournoi (R=1), case D33 = nb de joueurs= 13 (N=13)
    - feuille points : D28 =10000*(RACINE(result!D33/PUISSANCE(result!D28;EXP(10/result!D33))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100

    Comment mettre les 2 conditions sur la case points!D28 ?

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    D.E.
    Inscrit en
    Octobre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : D.E.

    Informations forums :
    Inscription : Octobre 2013
    Messages : 562
    Points : 764
    Points
    764
    Par défaut
    Citation Envoyé par titides Voir le message

    Une formule Excel existe pour transformer notre place en nombre de points :
    =10000*(RACINE(N/PUISSANCE(R;EXP(10/N))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100

    =si((10000*(RACINE(N/PUISSANCE(R;EXP(10/N))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100)>0;(10000*(RACINE(N/PUISSANCE(R;EXP(10/N))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100);0)

    En rouge le test, en bleu, le résultat si >0 et en vert le 0 si erreur. Vous pouvez remplacer le 0 par "" ou bien demander à excel de ne pas afficher les valeurs nulles, ce qui est préférable.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 468
    Points : 744
    Points
    744
    Par défaut
    Bonjour,

    Si je ne m'abuse, cette formule renvoie toujours un résultat >0.
    Il suffit simplement de tester si N>0...

    A+

  4. #4
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour titides, patrice084,GerardCalc,
    En regardant le calcul demandé, seul le facteur RACINE(N/PUISSANCE(R;EXP(10/N))) pose problème , les autres facteurs 10000 , PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100 étant des constantes
    et le message d'erreur peut apparaître si la cellule D33 contenant le nombre N de participants est vide (à cause du 10/N) ou si la cellule D28 contenant le résultat R est vide car, dans ce cas,
    le diviseur PUISSANCE(0;exposant) est nul quel que soit l'exposant.
    D'où une formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(result!D28<>"";result!D33<>"");10000*(RACINE(result!D33/PUISSANCE(result!D28;EXP(10/result!D33))))*PUISSANCE(2,2;LOG(10000+0,01)/LOG(10))/100;"")
    Quelques remarques sur le calcul du nombre de points pour des simplifications possibles de l'écriture de ce calcul :
    Il est sous la forme : 10000 * calcul d'une racine * calcul d'une puissance / 100.
    Multiplier par 10 000 puis diviser par 100 revient à multiplier par 100; d'autre part, il est inutile d'écrire entre parenthèses le facteur calcul d'une racine ; enfin dans le calcul de la puissance,
    la fonction LOG(nombre;base) lorsque l'on ne précise pas le 2ème argument base est considérée par Excel comme un log décimal d'où LOG(10) = 1 et LOG(10000 + 0,01) / LOG(10) = LOG(10000+0,01)
    qui peut s'écrire plus simplement LOG(10000,01)
    On peut donc écrire :
    = 100*RACINE(N/PUISSANCE(R;EXP(10/N)))*PUISSANCE(2,2;LOG(10000,01))
    Ceci étant pour une place de 1er dans un tournoi de 15 participants, on obtient le nombre de points de : 8446,223088
    Faut-il conserver 6 chiffres décimaux ? (surtout lorsque l'on sait que la place de second renvoie 3997,931037)
    d'où l'idée d'arrondir mais dans ce cas on peut sans problème remplacer LOG(10000,01) par LOG(10000) c'est à dire par 4 d'où un calcul que j'aurais envie d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ARRONDI(100*2,2^4*RACINE(N/PUISSANCE(R;EXP(10/N)));0)
    ou si l'on préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ARRONDI(22^4 /100*RACINE(N/PUISSANCE(R;EXP(10/N)));0)
    La formule à écrire serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(result!D28<>"";result!D33<>"");ARRONDI(100*2,2^4*RACINE(result!D33 / PUISSANCE(result!D28;EXP(10 / result!D33)));0);"")
    Cordialement
    Claude

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 496
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par papouclo Voir le message
    et le message d'erreur peut apparaître si la cellule D33 contenant le nombre N de participants est vide (à cause du 10/N) ou si la cellule D28 contenant le résultat R est vide car, dans ce cas, le diviseur PUISSANCE(0;exposant) est nul quel que soit l'exposant.
    Bonjour et merci à tous
    J'avais essayé les premières réponses, mais je n'avais pas dû avoir la bonne syntaxe.

    Pour Claude
    Effectivement, j'ai aussi des joueurs qui ne vont pas à tous les tournois (donc des div par 0 en erreur) mais si il n'y a pas de participants (N) = pas de tournoi, on ne peut pas jouer sans aucun participant ^^
    Encore MERCI pour la correction de la formule, j'arrive même à comprendre avec tes explications.

Discussions similaires

  1. excel et vb6 erreur 48
    Par MASTROQUIN dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2007, 23h02
  2. [VBA-E]Excel: RechercheV avec erreur dans visual basic
    Par bonus23 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/03/2007, 15h08
  3. [VBA-EXCEL]-condition pour ouvrir une msgbox
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2006, 21h51
  4. Problème d'importation excel/message d'erreur
    Par Badboy62cfp dans le forum Access
    Réponses: 13
    Dernier message: 01/06/2006, 16h50
  5. [Excel]conditions entre cellules
    Par fthem dans le forum Excel
    Réponses: 5
    Dernier message: 13/01/2006, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo