[Excel] formule d'arrondi

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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. -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. 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. 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. 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 !
              1. 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
                1. =ARRONDI(A6/5;1)*5
                  1. Contributeur
                    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
                2. 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. 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