[Excel] formule d'arrondi

Lechuck Messages postés 68 Statut Membre -  
Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerais créer une formule d'arrondi un peu spéciale sous Excel mais hje ne trouve pas la fonction capable d'exécuter ce calcul. Il s'agit d'arrondir un nombre x selon la règle suivante:

x appartient à [0;0,1] --> 0,1

x appartient à ]0,1;0,5] --> 0,5

x appartient à ]0,5;1] --> 1

Comment puis-je faire? Merci pour vottre aide.

10 réponses

  1. marco
     
    Bonjour,

    La formule proposée me paraît un peu compliquée.

    En voici une qui fonctionne très bien en pure mathématique:

    ENT( (x * 2) + 0.5) / 2

    Avec mes meilleurs messages.

    Jean-Marc
    3
  2. g Messages postés 1285 Statut Membre 578
     
    Bonjour,

    Peut-être ceci:

    =SI(A1-ENT(A1)<=0,1;ENT(A1)+0,1;SI(A1-ENT(A1)<=0,5;ENT(A1)+0,5;ENT(A1)+1))
    Bonne continuation.
    1
  3. G.David Messages postés 790 Statut Membre 203
     
    -salut
    as tu simplement essayé d'appliquer ta regle de selection
    =si(et(A1>=0;A1<=0,1;0,1;si(et(A1>0,1;A1<=0,5);0,5;si(et(A1>0,5;A1<=1;1;"hors interval"))) si la valeur peut sortier de l'intervalle de definition
    si ta valeur en A1 ne peut que se trouver dans l'intervalle de definition :
    =si(et(A1>=0;A1<=0,1;0,1;si(et(A1>0,1;A1<=0,5);0,5;1))
    Cordialement
    G.David
    le respect n'est pas un dû
    il se merite
    1
  4. Aleck
     
    J'ai beau essayer plein de chose, étant piètre mathématicien, je n'arrive pas à m'appuyer sur votre formule afin d'arrondir des notes.

    Par exemple si un note est comprise entre 12 et 12.25 j'aimerai que la formule calcule 12 ; si la note est entre 12.25 et 12.75 que le résultat soit 12.5 et bien sur si c'est > à 12.75 : 13.

    Ce qui revient à arrondir à 0.5 inférieur et supérieur par quart de points...

    Bref, je ne sais pas si je suis clair et je vais continuer d'essayer de bidouiller...

    +
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. G.David Messages postés 790 Statut Membre 203
     
    Salut
    pour arrondir il y a la fonction arrondi
    12.25 -->12 12.55-->13 pour cela
    si note en a2:a15 mettre en b2 =arrondi(a2;0) et tirer la formule de b2 à b15
    Cordialement
    G.David
    1
  7. Aleck
     
    Merci beaucoup beaucoup pour cette réponse.
    Mais ça ne résoud pas vraiment mon problème...
    En fait, je vais avoir une très grosse quantité de notes sur 30 à convertir sur 20. J'ai d'abord fait une colonne quotient, et je tente maintenant de faire une colonne ou mes résultats de quotiens s'arrondissent à 0.5

    En fait si je reprends la façon que chuck a eu de formuler sa question je l'écrirai comme ça :

    note appartient à [x,0;x,25] --> x,0

    note appartient à ]x,25;x,75] --> 0,5

    note appartient à ]x,75;1] --> 1

    En fait un 12.24 tomberait à 12 et un 12.76 passerait à 13. Mais tout ce qui se trouve entre les deux à 12.5

    Peut-être n'est-ce pas possible. En tous cas si je trouve où si une bonne âme connait la solution ça va me faire gagner un temps fou cette année !!

    Encore merci !
    0
  8. G.David Messages postés 790 Statut Membre 203
     
    SI(H8-ENT(H8)<=0.25;ENT(H8);SI(H8-ENT(H8)<=0.75;ENT(H8)+0.5;ENT(H8)+1))
    j'avais pas tout lu
    0
  9. Phil
     
    =ARRONDI(A6/5;1)*5
    0
    1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      C'est à Aleck que tu as répondu ?

      Il se trouve que ta formule marche ; mais la formule habituelle est plutôt
      =ARRONDI(A6*2;0)/2
      0
  10. Daranc
     
    il existe aussi la fonction arrondi.au.multiple(x;0.25) il te faudra d'abords verifier que dans les macros complémentaires l'assitant solveur soit coché
    -1
  11. Daranc
     
    ceci

    Function NoTe(a As Double) 
    Dim b As Integer 
    b = (a - Int(a)) * 100 
    Dim c As Double 
    If b < 25 Then 
    c = 0 
    ElseIf b >= 25 And b < 50 Then 
    c = 0.25 
    ElseIf b >= 50 And b < 75 Then 
    c = 0.5 
    Else 
    c = 1 
    End If 
    NoTe = Int(a) + c 
    End Function 


    a mettre dans un module
    ouvrir l'editeur VB ( Alt F11)
    dans le volet de gauche sur le classeur en cours inséré un module
    et copier le code de la fonction
    dans la feuille taper =note(A6)
    le texte devraite passer en =NoTe(A6) et l'affichage pour a6=12.45 sera 12.25
    -1