
Formula generică
=ROUND(number,digits-(1+INT(LOG10(ABS(number)))))
rezumat
Dacă trebuie să rotunjiți un număr la un anumit număr (variabil) de cifre sau cifre specificate, puteți face acest lucru cu o formulă elegantă care utilizează funcțiile ROUND și LOG10.
În exemplul prezentat, formula din D6 este după cum urmează:
=ROUND(B6,C6-(1+INT(LOG10(ABS(B6)))))
Explicaţie
Aceasta poate fi o formulă intimidantă dacă nu aveți un background bun în matematică, dar hai să o analizăm pas cu pas.
În primul rând, atunci când aveți o formulă de genul acesta în care o funcție (în acest caz ROUND) înfășoară pe toate celelalte, este adesea util să lucrați din exterior. Deci, la bază, această formulă rotunjește valoarea în B6 folosind ROUND funcţie:
=ROUND(B6,x)
Unde x este numărul de cifre semnificative necesare. Partea dificilă a acestei formule este calcularea x. Aceasta este o variabilă, deoarece se va schimba în funcție de numărul rotunjit. x se calculează cu acest bit:
C6-(1+INT(LOG10(ABS(B6))))
Acest lucru pare complicat, deci să analizăm mai întâi modul în care trebuie să funcționeze formula pentru exemplele date. Amintiți-vă cu ROUND că un număr negativ de cifre funcționează pe partea stângă a zecimalei. Deci, pentru a rotunji 1234567 la un număr tot mai mare de cifre semnificative, am avea:
=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
Deci, principala problemă este cum să calculăm -6, -5, -4 și așa mai departe, în funcție de numărul pe care îl rotunjim.
Cheia este înțelegerea modului în care aceste numere ar putea fi exprimate folosind exponenți, ca în notația științifică:
=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
Rețineți că exponentul este 6 în toate cazurile, care se determină cu acest bit:
INT(LOG10(ABS(B6)))
Deci, restul formulei folosește doar valoarea exponentului calculat pentru a afla numărul potrivit pentru a da ROUND în funcție de numărul de cifre semnificative dorit:
=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
Deci, pe scurt:
- ABS convertește valoarea într-o valoare absolută (pozitivă)
- LOG10 primește exponentul, în acest caz 6 cu o valoare zecimală
- INT elimină partea zecimală a exponentului
- Formula folosește exponentul și cifrele semnificative furnizate pentru a afla numărul corect de cifre pentru a da ROUND
- ROUND rotunjește numărul folosind numărul de cifre furnizate