OpenOffice kerekítés

Van egy árlistám. Nagykeres nettó árból kell kiszámolnom a br. fogy árat 1 képlet segítségével. Ami nem nehéz. nettó nagyker*áfa*árrés. Ez nem nehéz. Csakhogy az esetek többségében nem egész, azaz 0-ra végződő számra végződik.

A helyzet viszont bonyolultabb, ennél egy fokkal. Mondok néhány konkrét példát:

10487 -> 10000
10664 -> 10500
10886 -> 11000

Próbálkoztam a ROUND függvénnyel, de az csak a tizedesszámjegyet tűnteti el (ha van).

Tud valaki ebben segíteni?

Hozzászólások

Nem derül ki a szabály a példádból. Az elsőnél lefelé kerekítettél, a harmadiknál felfelé.
500-al oszthatónak kell lennie az eredménynek?
Ha igen akkor egy lehetséges megoldás:
500-al osztod az eredményt, egész részét veszed, majd szorzod 500-al.
Ha felfelé akarsz kerekíteni, akkor a szorzás előtt adj hozzá 1-et.

Annyi lenne a lényeg, hogy ha 000 és 500 közé esik a szám, akkor visszakerekítek egészre, ha 500 és 700 közé, akkor 500-ra kerekítek, és ha 700 felé, akkor a következő 1000-esre kerekítek. pl. 10865 -> 11000.

--
Charlos

-- http://www.uvegcsont.hu -- / -- http://ganyikaroly.net --
Jól csak a szívével lát az ember. Ami igazán érdekes, az a szemnek láthatatlan. - by A Kisherceg

ááááá, miért kell az életet túlbonyolítani, nem csak neked másoknak sem tűnik fel hogy.. izé egy általános iskolai feladat, de belegondolva tényleg még érettségin sem merném feltenni :/

na jó, akkor hogy gondolkodik a józan paraszt:

- a kerekítés és az egész rész igen-igen hasonló, ha ez nem túűnik fel valakinek, miért hupozik :)
- csak egy picit el van tolva, azaz gondolkodni kell hogy mégis megoldjuk

megoldás: akkor toljuk el mi is: round(x) = int( x + 0.5 )

eredeti feladat:
fel kell hogy tűnjön, csak a tizedesvesszőt valami gonosz manó leradírozta, mivel ugyanoda kell visszatennünk, semmi probléma:

tizedesvesszőt vissza: y = x/1000
kerekítünk: int(y+0.5)
tizedesvesszőt újra el: 1000*int(x/1000+0.5)
innen már rá kell jönni hogy kell megoldani :)

(más: ha jól rémlik van tetszőleges kerekítés, de lehet hogy csak msofficból rémlik)

ps: na egy kis segítség, mivel már te is rájöttél: nem 1000-el kell szorozni-osztani

ne jó ezt benéztem, ráfogom szombat hajnalra, meg hogy reflexből jön elő hogy máskor értelmesnek látszó ember sem érti mi a különbség a kerekítés és egészrész közt, meg ha nem 10 hatvánnyal kell osztani...

de ha nem 0.5 a határ hanem 0.7 akkor sem kell bonyolítani:

valahova kell egy +0.3

Én a ROUNDUP fgv-t szoktam használni. általában így: ROUNDUP(ár*áfa*árrés;-2)

Józan paraszti ésszel erre jutottam:

=IF(A1>499;(IF(MOD(A1;1000)<500;0;IF(MOD(A1;1000)>700;1000;500)))+(A1-MOD(A1;1000));500)

Egy matematikus vagy egy programozó biztos nem így csinálná. :)

:)