Generička formula
=ROUND(number,digits-(1+INT(LOG10(ABS(number)))))
Sažetak
Ako trebate broj zaokružiti na zadani (varijabilni) broj zadanih znamenki ili brojki, to možete učiniti s elegantnom formulom koja koristi funkcije ROUND i LOG10.
U prikazanom primjeru formula u D6 je kako slijedi:
=ROUND(B6,C6-(1+INT(LOG10(ABS(B6)))))
Obrazloženje
Ovo može biti zastrašujuća formula ako nemate dobru matematiku, ali razradimo je korak po korak.
Prvo, kada imate formulu poput ove u kojoj se jedna funkcija (u ovom slučaju ROUND) obavija oko svih ostalih, često je korisno raditi izvana. Dakle, u osnovi, ova formula zaokružuje vrijednost u B6 pomoću ROUND funkcija:
=ROUND(B6,x)
Gdje je x potreban broj značajnih znamenki. Lukavi dio ove formule je izračunati x. Ovo je varijabla jer će se mijenjati ovisno o broju koji se zaokružuje. x se izračunava s ovim bitom:
C6-(1+INT(LOG10(ABS(B6))))
To se čini složenim, pa pogledajmo prvo kako formula treba raditi za dane primjere. S ROUND-om zapamtite da negativan broj znamenki radi na lijevoj strani decimalnog broja. Dakle, da bismo zaokružili 1234567 na sve veći broj značajnih znamenki, imali bismo:
=ROUND(1234567,-6) = 1000000 // 1 sig. digit =ROUND(1234567,-5) = 1200000 // 2 sig. digits =ROUND(1234567,-4) = 1230000 // 3 sig. digits =ROUND(1234567,-3) = 1235000 // 4 sig. digits
Dakle, glavni je problem kako izračunati -6, -5, -4 i tako ovisno o broju koji zaokružujemo.
Ključno je razumijevanje kako se ti brojevi mogu izraziti pomoću eksponenata, kao u znanstvenom zapisu:
=ROUND(1234567,-6) = 1000000 = 1.0*10^6 =ROUND(1234567,-5) = 1200000 = 1.2*10^6 =ROUND(1234567,-4) = 1230000 = 1.23*10^6 =ROUND(1234567,-3) = 1235000 = 1.235*10^6
Imajte na umu da je eksponent u svim slučajevima 6, što se određuje s ovim bitom:
INT(LOG10(ABS(B6)))
Dakle, ostatak formule samo koristi izračunatu vrijednost eksponenta da bi pronašao pravi broj koji će dati KRUG, ovisno o željenom broju značajnih znamenki:
=ROUND(1234567,-6) // 1-(1+6) = -6 =ROUND(1234567,-5) // 2-(1+6) = -5 =ROUND(1234567,-4) // 3-(1+6) = -4 =ROUND(1234567,-3) // 4-(1+6) = -3
Dakle, ukratko:
- ABS pretvara vrijednost u apsolutnu (pozitivnu) vrijednost
- LOG10 dobiva eksponent, u ovom slučaju 6 s decimalnom vrijednošću
- INT odrezuje decimalni dio eksponenta
- Formula koristi eksponent i isporučene značajne znamenke da bi se utvrdio točan broj znamenki za dobivanje KRUGOG
- OKRUGLO zaokružuje broj pomoću broja isporučenih znamenki