Zaokroževanje v Excelu / zaokroževanje na poljubno vrednost

Odgovor na vprašanje v enem izmed forumov, me je spomnil na problem zaokroževanja…

Ena izmed najpogostejših operacij v Excelu je (ob seštevanju) zaokroževanje. Življenje nas preprosto sili v to, da rezultate zaokrožujemo saj jih samo tako lahko vsaj nekako obvladujemo.

Tako večina uporabnikov Excela ob funkciji sum, ki je zagotovo prva funkcija, ki jo spoznajo, spozna tudi funkcijo round. In prej ali slej se vsi naučijo, da je potrebno zaokroževati z uporabo funkcije round(xxx; 2). Mnogi niti ne vedo, čemu tista dvojka sploh služi in jo preprosto privzamejo, drugi vedo, da to pomeni zaokroževanje na dve decimalki (na cente, kot bi temu rekli finančniki) in to jim zadostuje.

Excelovo vgrajeno zaokroževanje

Excel ima za potrebe zaokroževanja na voljo 3 funkcije round, roundUp in roundDown. Prva zaokrožuje na najbližjo vrednost (round), druga na najbližjo višjo vrednost (RoundUp), tretja pa na najbližjo nižjo vrednot (RoundDown).

Kaj to pomeni v praksi? Zamislimo si primer, da želimo neko vrednost zaokrožiti na stotice. Če je to število 248, ga torej lahko zaokrožimo na 200 ali na 300 in funkcija round ga bo zaokrožila na 200, saj je 200 bližje kot 300. Funkcija roundUp ga bo zaokrožila na 300, saj je to najbližje VIŠJA vrednot, funkcija roundDown pa ga bo zaokrožila na 200 saj je to najbližja NIŽJA vrednost.

Vprašanje, ki se pojavi je, kam se zaokroži vrednost, ki je točno na polovici? Kam se torej zaokroži 250? Pri roundUp (300) in roundDown (200) ni problema. Kaj pa round? No roundpa se lahko odloči; ali gor ali dol. In ker se je za nekaj potrebno odločiti, se v Excelu funkcija Round obnaša tako, da zaokroži navzgor.

To je to. Ostaja še odprto vprašanje čemu služi drugi parameter teh funkcij?

PARAMETER: 2
   število  round(x;2)  roundup(x;2)  rounddown(x;2)
----------------------------------------------------   
     3,737       3,740         3,740           3,730
    37,999      38,000        38,000          37,990
   775,209     775,210       775,210         775,200
 3.448,453   3.448,450     3.448,460       3.448,450

Drugi parameter Excelovih vgrajenih funkcij za zaokroževanje

Drugi parameter funkcij roundxxx pove decimalno mesto, na katerega želite število zaokrožiti. Če je torej drugi parameter 2, pomeni da želite zaokroževati na drugo decimalko, torej na stotine. Če je tri bi zaokroževali na tretjo decimalko, če je 0 bi zaokroževali na enice… Hm, kaj pa če je -2? 😉

No če je drugi parameter negativen, pa po čisti inerciji (ali logiki, kakor pač hočete) zaokrožujete po deseticah, stoticah, tisočicah…

Če torej želite nek znesek zaokrožiti na 1000€, kar je pogosto pri velikih zneskih, boste uporabili funkcijo round(xxx, -3). Žena bo sicer uporabila funkcijo RoundUp(xxx, -3), a to je že druga zgodba 🙂

PARAMETER: 0
   število  round(x;0)  roundup(x;0)  rounddown(x;0)
----------------------------------------------------
     3,737       4,000         4,000           3,000
    37,999      38,000        38,000          37,000
   775,209     775,000       776,000         775,000
 3.448,453   3.448,000     3.449,000       3.448,000

PARAMETER: -2
   število round(x;-2) roundup(x;-2) rounddown(x;-2)
----------------------------------------------------
     3,737       0,000       100,000           0,000
    37,999       0,000       100,000           0,000
   775,209     800,000       800,000         700,000
 3.448,453   3.400,000     3.500,000       3.400,000

Kaj pa zaokroževanje na poljubno vrednost (na poljubno mejo)?

No; s tem pa sem tale blog pripeljal do moje izhodiščne točke. Originalno vprašanje je namreč bilo kako neko število vedno zaokrožiti na najbližje sodo število? Pogosta variacija tega vprašanja je tudi, kako vse zneske zaokrožiti na 50 centov?

No kaj takšnega Excel po privzetem ne zna, lahko pa do tega pridemo zelo preprosto, če samo malce vključimo možganske celice… Če torej želimo nekaj zaokrožiti na najbližje sodo število, najprej originalno število delimo z dva in pri tem seveda dobimo nek ostanek. Ostanek zanemarimo ter dobljeno število pomnožimo z dva. Dobili smo zaokroženo originalno število! V Excelu bi to zapisali kot round(xxx/2;0)*2 in popolnoma enako deluje tudi s centi, torej: round(xxx/0,5;2)*0,5.

Če torej v splošnem želite neko število zaokrožiti na večkratnik števila M, morate torej uporabiti formulo round(število/M;0)*M.

Zaokroževanje na poljubno mejno vrednost M

  formula je torej =ROUND(število/M;0)*M

   število         M=2         M=0,5            M=25
----------------------------------------------------
     3,737       4,000         3,500           0,000
    37,999      38,000        38,000          50,000
   775,209     776,000       775,000         775,000
 3.448,453   3.448,000     3.448,500       3.450,000

2 thoughts on “Zaokroževanje v Excelu / zaokroževanje na poljubno vrednost”

Komentirajte prispevek

This site uses Akismet to reduce spam. Learn how your comment data is processed.