Jak v excelu najdu funkci zaokrouhlit na počet PLATNÝCH číslic?
Například aby mi zaokrouhlilo na jednu platnou číslici a tedy 0,000025698 zaokrouhlilo na 0,00003...
Odpovědi
Diskuze
Syntaxe:
ZAOKROUHLIT(číslo;číslice)
Číslo - je číslo, které chcete zaokrouhlit.
Číslice - určuje počet číslic, na které chcete číslo zaokrouhlit.
Pokud je !číslice! větší než 0 (nula), je číslo zaokrouhleno na zadaný počet desetinných míst.
Jestliže je číslice rovno 0 (nula), je číslo zaokrouhleno na nejbližší celé číslo.
Pokud je číslice menší než 0 (nula), je zaokrouhleno číslo vlevo od desetinné čárky.
Příklad:
=ZAOKROUHLIT(2,15;1) Zaokrouhlí číslo 2,15 na jedno desetinné místo. (2,2)
=ZAOKROUHLIT(2,149;1) Zaokrouhlí číslo 2,149 na jedno desetinné místo. (2,1)
=ZAOKROUHLIT(-1,475;2) Zaokrouhlí číslo -1,475 na dvě desetinná místa. (-1,48)
=ZAOKROUHLIT(21,5;-1) Zaokrouhlí číslo 21,5 na jedno desetinné místo vlevo od desetinné čárky. (20)
Function Plat_Mist(a, m As Double) As Double
b = 1
c = a
While c < 1
b = b * 10
c = c * 10
Wend
c = Round(c, m - 1)
Plat_Mist = c / b
End Function
V sešitu pak v buňce "=Plat_Mist(A1;1) ; Číslo v buňce A1 bude zaokrouhleno takto: Číslo větší naž 1 na celé číslo. Číslo menší než 1 na 1 platnou číslici.
Pokud v sešitu nejsou jiná makra, klávesou Alt+F11 otevřemeeditor VBA. Vlevo ve sloupci projektů vybereme svůj sešit, rozklikneme (rezepíše listy). Levou myší označíme Thisworkbook našeho sešitu, klikneme na něj pravou myší, zvolíme Insert a Module.
Do okna, které se otevře, nakopírujeme zdrojový text funkce. Nyní by se v listu mezi Vlastními funkcemi měla objevit i funkce Plat_Mist. Té je potřeba zadat dva parametry. Prvním je číslo, které se má zpracovat, druhým je počet platných číslic. Omezení počtu platných číslic neplatí pro čísla větší než 1, která se zaokrouhlují na celé číslo.
Takovou funkci bych tedy sestavit asi nedokázala, ale je dobré vědět, kde se zeptat, kdybych něco takového někdy potřebovala. Díky za vysvětlení.
Function Plat_Mist(a, m As Double) As Double
b = 1
c = a
If c < 0 Then
b = -1
c = c * b
End If
If c <> 0 Then
While c < 1
b = b * 10
c = c * 10
Wend
c = Round(c, m - 1)
End if
Plat_Mist = c / b
End Function
Úprava spočívá v tom, že je li upravované číslo záporné, nastaví se proměnná b na hodnotu -1 a vynásobí se jí c, čímž se převede na kladné číslo. Pak se testuje, jestli je proměnná c=0. Pokud ano, celý cyklus včetně zaokrouhlování se přeskočí. Nakonec se funkci přiřazuje výstupní hodnota. V případě vstupního záporného čísla je sice c kladné, ale dělí se záporným b, takže výsledek je záporný.