Afrunding af tal





Introduktion

Når man skal afrunde tal, er der som udgangpunkt tre muligheder:
  1. Afrunding til nærmeste tal
  2. Altid runde op
  3. Altid runde ned
Hvor meget, og under hvilke forudsætninger, er så en del af de parametre man specificerer.

Af uransagelige grunde synes regnearkene at have flere versioner af det at runde op og ned, hvor det umiddelbart ikke giver mening, at man har flere versioner. Det er antageligt historisk, hvor man er startet med de simple funktioner for afrunding og med introduktionen af de nye og mere avancerede ikke har fjernet de gamle af hensyn til kompatibiliteten bagud.

Omkring afrundingerne skal man være opmærksom på at der opereres med to typer af nøjagtighed. Den ene er antallet af decimaler på tallet der afrundes til. Intuitivt er det den de fleste bedst kan forstå, og til de fleste tider, er det også hvad man har brug for. Det andet er multiplum af det angivne tal. Multiplum giver den fordel, at man så kan afrunde til f.eks. nærmeste kvarte ved at skrive 0,25, i stedet for at være begrænset til titalsinddelingen.

Når det kommer til afrunding af negative tal, er der for visse funktioner mulighed for tilpasning. Man taler om at runde af mod 0 og runde af væk fra 0. Hvis man ser på et tal som -5,5, vil de fleste intuitivt tænke at de runder ned til -5,0, men ud fra et matematisk synspunkt er -5,0 større end -5,5, så en matematisk korrekt nedrunding er i virkeligheden til -6,0. De funktioner der har denne parameter, opererer med 0 (default) og alle andre tal, dvs. hvis værdien ikke skal være 0, er det underordnet om man skriver 0,2, 1 eller -10. Best practice er tallet 1, og skal man have Excel og Calc til at spille sammen, anbefaler man at bruge 1, men som udgangspunkt skal det blot være et andet tal end 0.


Afrunding til nærmeste tal

Afrunding til nærmeste tal er det man normalt forbinder med afrunding, hvor man runder op eller ned afhængig af tallet. Der er to funktioner, der kan udføre denne operation.

Den første funktion til afrunding til nærmeste tal hedder ROUND(). Har man en dansk version af Excel, hedder funktionen AFRUND() i stedet. Bemærk, at der i Excels hjælpefunktion står cifre. Her menes der i betydningen antal decimaler. Funktionen har to argumenter, tallet og antallet af decimaler der skal afrundes til.

For Microsoft Excel ser det således ud:
Afrunding til nærmeste tal i Excel regneark

For OpenOffice Calc ser det således ud:
Afrunding til nærmeste tal i Calc regneark


Den anden funktion til afrunding er MROUND(). Har man en dansk version af Excel, hedder funktionen MAFRUND() i stedet. Funktionen har to argumenter, tallet og multiplum der skal afrundes til. Vær opmærksom på: Der er en artifakt i funktionen, der gør at hvis man skal afrunde negative tal, skal multiplum der skal afrundes til også være negativt (og omvendt). Så, hvis man har brug for en løsning, der håndterer både positive og negative værdier, skal man lave en workaround f.eks. med en IF-sætning (HVIS-sætning, hvis man har en dansk version af Excel) der vælger en positiv værdi hvis tallet er >0 og en negativ ditto i modsat fald.

For Microsoft Excel ser det således ud:
Afrunding til nærmeste tal i Excel regneark

For OpenOffice Calc ser det således ud:
Afrunding til nærmeste tal i Calc regneark


Altid runde op

Har man brug for at tallet altid rundes op, er der flere funktioner, for både Excel og Calc, og der er noget navnesammenfald, der kan foranledige til at tro, at de to funktioner er helt ens for de to regneark. Man skal derfor være en lille smule vågen, når man vælger hvilken funktion man vil anvende.

Den første funktion til oprunding i Excel hedder CEILING(). Har man den danske version af Excel hedder den i stedet AFRUND.LOFT(). Funktionen har to argumenter, tallet og størrelsen på intervallerne, udtrykt som multiplum af det angivne tal. Dette ser det således ud:
Oprunding af talværdier med AFRUND.LOFT() i Excel regneark

Den anden funktion til oprunding i Excel hedder CEILING.MATH(). Har man den danske version af Excel hedder den i stedet LOFT.MAT(). Funktionen har tre argumenter, tallet, størrelsen på intervallerne, udtrykt som multiplum af det angivne tal og en angivelse af om man afrunder negative tal mod eller væk fra 0. Dette ser det således ud:
Oprunding af talværdier med LOFT.MAT() i Excel regneark

Den tredie mulighed er ROUNDUP(), eller RUND.OP(), hvis man har en dansk version af Excel. Funktionen fungerer ligesom CEILING(), dvs. der er to argumenter, tallet og antallet af decimaler der skal rundes op til. Men, hvor CEILING() foretager en matematisk korrekt oprunding mod 0, laver RUND.OP() en afrunding væk fra 0. Dette ser det således ud:
Oprunding af talværdier med RUND.OP() i Excel regneark


Den første funktion til oprunding i Calc hedder CEILING(). Funktionen har tre argumenter, tallet, størrelsen på intervallerne, udtrykt som multiplum af det angivne tal og en angivelse af om man afrunder negative tal mod eller væk fra 0. Dette svarer til Excel-funktionen CEILING.MATH(), og ikke Excel-funktionen CEILING().

CEILING() har i Calc en artifakt, som man lige skal være opmærksom på! Størrelsen på intervallerne (argument nr. 2) skal være positivt, når man afrunder positive tal, og negativt, hvis man afrunder negative tal, ellers får man en fejlmeddelelse. Måden man omgår dette problem på, hvis man skal have en løsning der håndterer både positive og negative værdier, er ved at bruge en IF-kommando, hvor man ved positive værdier bruger et positivt argument og omvendt. I et regneark ser det således ud:
Oprunding af talværdier med CEILING() i Calc regneark

Den anden mulighed er ROUNDUP(). Funktionen er magen til Excels funktion af samme navn, dvs. der er to argumenter, tallet og antallet af decimaler der skal rundes op til. Ligesom Excels udgave af ROUNDUP(), er denne funktion sat til at anvende den matematisk ukorrekte afrunding væk fra 0. Dette ser det således ud:
Oprunding af talværdier med ROUNDUP() i Calc regneark




Altid runde ned

Har man brug for at tallet altid rundes ned, er der flere funktioner, for både Excel og Calc, og der er noget navnesammenfald, der kan foranledige til at tro, at de to funktioner er helt ens for de to regneark. Man skal derfor være en lille smule vågen, når man vælger hvilken funktion man vil anvende.

Den første funktion til nedrunding i Excel hedder FLOOR(). Har man den danske version af Excel hedder den i stedet AFRUND.GULV(). Funktionen har to argumenter, tallet og størrelsen på intervallerne, udtrykt som multiplum af det angivne tal. Dette ser det således ud:
Nedrunding af talværdier med AFRUND.GULV() i Excel regneark

Den anden funktion til nedrunding i Excel hedder FLOOR.MATH(). Har man den danske version af Excel hedder den i stedet AFRUND.BUND.MAT(). Funktionen har tre argumenter, tallet, størrelsen på intervallerne, udtrykt som multiplum af det angivne tal og en angivelse af om man afrunder negative tal mod eller væk fra 0. Dette ser det således ud:
Nedrunding af talværdier med AFRUND.BUND.MAT() i Excel regneark

Den tredie mulighed er ROUNDDOWN(), eller RUND.NED(), hvis man har en dansk version af Excel. Funktionen fungerer ligesom CEILING(), dvs. der er to argumenter, tallet og antallet af decimaler der skal rundes ned til. Men, hvor CEILING() foretager en matematisk korrekt nedrunding mod 0, laver RUND.NED() en afrunding væk fra 0. Dette ser det således ud:
Nedrunding af talværdier med RUND.NED() i Excel regneark


Den første funktion til nedrunding i Calc hedder FLOOR(). Funktionen har tre argumenter, tallet, størrelsen på intervallerne, udtrykt som multiplum af det angivne tal og en angivelse af om man afrunder negative tal mod eller væk fra 0. Dette svarer til Excel-funktionen FLOOR.MATH(), og ikke Excel-funktionen FLOOR().

FLOOR() har i Calc en artifakt, som man lige skal være opmærksom på! Størrelsen på intervallerne (argument nr. 2) skal være positivt, når man afrunder positive tal, og negativt, hvis man afrunder negative tal, ellers får man en fejlmeddelelse. Måden man omgår dette problem på, hvis man skal have en løsning der håndterer både positive og negative værdier, er ved at bruge en IF-kommando, hvor man ved positive værdier bruger et positivt argument og omvendt. I et regneark ser det således ud:
Nedrunding af talværdier med FLOOR() i Calc regneark

Den anden mulighed er ROUNDDOWN(). Funktionen er magen til Excels funktion af samme navn, dvs. der er to argumenter, tallet og antallet af decimaler der skal rundes op til. Ligesom Excels udgave af ROUNDDOWN(), er denne funktion sat til at anvende den matematisk ukorrekte afrunding væk fra 0. Dette ser det således ud:
Nedrunding af talværdier med ROUNDUP() i Calc regneark




Excelfunktioners navne på forskellige sprog

Så langt som jeg er nået.

CatalanskMULTIPLE.SUPERIOR()
DanskAFRUND.LOFT()
EngelskCEILING()
FinskPYÖRISTÄ.KERR.YLÖS()
FranskPLAFOND()
GaliciskLÍMITESUPERIOR()
HollandskAFRONDEN.BOVEN()
ItalienskARROTONDA.ECCESSO()
NorskAVRUND.GJELDENDE.MULTIPLUM()
PolskZAOKR.W.GÓRĘ()
Portugisisk (BR)TETO()
Portugisisk (PT)ARRED.EXCESSO()
RussiskОКРВВЕРХ()
SpanskMULTIPLO.SUPERIOR()
SvenskRUNDA.UPP()
TjekkiskZAOKR.NAHORU()
TyrkiskTAVANAYUVARLA()
TyskOBERGRENZE()
UngarskPLAFON()


CatalanskMULTIPLE.SUPERIOR.MAT()
DanskLOFT.MAT()
EngelskCEILING.MATH()
FinskPYÖRISTÄ.KERR.YLÖS.MATEMAATTINEN()
FranskPLAFOND.MATH()
GaliciskLÍMITESUPERIOR.MAT()
HollandskAFRONDEN.BOVEN.WISK()
ItalienskARROTONDA.ECCESSO.MAT()
NorskAVRUND.GJELDENDE.MULTIPLUM.OPP.MATEMATISK()
PolskZAOKR.W.GÓRĘ.MATEMATYCZNE()
Portugisisk (BR)TETO.MAT()
Portugisisk (PT)ARRED.EXCESSO.MAT()
RussiskОКРВВЕРХ.МАТ()
SpanskMULTIPLO.SUPERIOR.MAT()
SvenskRUNDA.UPP.MATEMATISKT()
TjekkiskCEILING.MATH()
TyrkiskTAVANAYUVARLA.MATEMATİK()
TyskOBERGRENZE.MATHEMATIK()
UngarskPLAFON.MAT()


CatalanskMULTIPLE.INFERIOR()
DanskAFRUND.GULV()
EngelskFLOOR()
FinskPYÖRISTÄ.KERR.ALAS()
FranskPLANCHER()
GaliciskPLANOINFERIOR()
HollandskAFRONDEN.BENEDEN()
ItalienskARROTONDA.DIFETTO()
NorskAVRUND.GJELDENDE.MULTIPLUM.NED()
PolskZAOKR.W.DÓŁ()
Portugisisk (BR)ARREDMULTB()
Portugisisk (PT)ARRED.DEFEITO()
RussiskОКРВНИЗ()
SpanskMULTIPLO.INFERIOR()
SvenskRUNDA.NER()
TjekkiskZAOKR.DOLŮ()
TyrkiskTABANAYUVARLA()
TyskUNTERGRENZE()
UngarskPADLÓ()


CatalanskMULTIPLE.INFERIOR.MAT()
DanskAFRUND.BUND.MAT()
EngelskFLOOR.MATH()
FinskPYÖRISTÄ.KERR.ALAS.MATEMAATTINEN()
FranskPLANCHER.MATH()
GaliciskARREDMÚLTINF.PRECISO()
HollandskAFRONDEN.BENEDEN.WISK()
ItalienskARROTONDA.DIFETTO.MAT()
NorskAVRUND.GJELDENDE.MULTIPLUM.NED.MATEMATISK()
PolskZAOKR.W.DÓŁ.MATEMATYCZNE()
Portugisisk (BR)ARREDMULTB.MAT()
Portugisisk (PT)ARRED.DEFEITO.MAT()
RussiskОКРВНИЗ.МАТ()
SpanskMULTIPLO.INFERIOR.MAT()
SvenskRUNDA.NER.MATEMATISKT()
TjekkiskFLOOR.MATH()
TyrkiskTABANAYUVARLA.MATEMATİK()
TyskUNTERGRENZE.MATHEMATIK()
UngarskPADLÓ.MAT()


CatalanskARRODONEIX.MENYS()
DanskRUND.NED()
EngelskROUNDDOWN()
FinskPYÖRISTÄ.DES.ALAS()
FranskARRONDI.INF()
GaliciskARREDONDARCARAAABAIXO()
HollandskAFRONDEN.NAAR.BENEDEN()
ItalienskARROTONDA.PER.DIF()
NorskAVRUND.NED()
PolskZAOKR.DÓŁ()
Portugisisk (BR)ARREDONDAR.PARA.BAIXO()
Portugisisk (PT)ARRED.PARA.BAIXO()
RussiskОКРУГЛВНИЗ()
SpanskREDONDEAR.MENOS()
SvenskAVRUNDA.NEDÅT()
TjekkiskROUNDDOWN()
TyrkiskAŞAĞIYUVARLA()
TyskABRUNDEN()
UngarskKEREK.LE()


CatalanskARRODONEIX.MES()
DanskRUND.OP()
EngelskROUNDUP()
FinskPYÖRISTÄ.DES.YLÖS()
FranskARRONDI.SUP()
GaliciskARREDONDARCARAAARRIBA()
HollandskAFRONDEN.NAAR.BOVEN()
ItalienskARROTONDA.PER.ECC()
NorskAVRUND.OPP()
PolskZAOKR.GÓRA()
Portugisisk (BR)ARREDONDAR.PARA.CIMA()
Portugisisk (PT)ARRED.PARA.CIMA()
RussiskОКРУГЛВВЕРХ()
SpanskREDONDEAR.MAS()
SvenskAVRUNDA.UPPÅT()
TjekkiskROUNDUP()
TyrkiskYUKARIYUVARLA()
TyskAUFRUNDEN()
UngarskKEREK.FEL()


CatalanskREDOND.MULT()
DanskMAFRUND()
EngelskMROUND()
FinskPYÖRISTÄ.KERR()
FranskARRONDI.AU.MULTIPLE()
GaliciskMARRED()
HollandskAFRONDEN.N.VEELVOUD()
ItalienskARROTONDA.MULTIPLO()
NorskMRUND()
PolskZAOKR.DO.WIELOKR()
Portugisisk (BR)MARRED()
Portugisisk (PT)MARRED()
RussiskОКРУГЛТ()
SpanskREDOND.MULT()
SvenskMAVRUNDA()
TjekkiskMROUND()
TyrkiskKYUVARLA()
TyskVRUNDEN()
UngarskTÖBBSZ.KEREKÍT()