Здравейте, искам да попитам за формула в Ексела, която да закръгля до 5 надолу и за над пет нагоре. Например 550,29/1,2 - 458,575 да се закръгли на 458,57 377,90/1,2 - 314,916 да се закръгли на 314,92
EXCELL 2003
За първия пример може да се използва функция ROUNDUP с първи параметър израза за пресмятане и втори параметър брой цифри след десетичната запетая. Например: =ROUNDDOWN(550.29/1.2;2)
Вторият пример се закръгля автоматично като се зададе брой цифри след десетичната запетая 2 или се форматира резултата с помощта на бутона Decrease Decimal.
Но това означава, че трябва всеки път да променям настройките. На мен ми трябва за таблица с данни. Дали може да се зададе като настройка?
Според мен трябва да се включи функцията IF за проверка на последната цифра и съответно да се закръгля нагоре ROUNUP или надолу ROUNDOWN
Може ли да ми покажете как да го направя
Привет , ето коя формула трябва да използваш round ( a2/b2;2) ,като а2 ти е 550.29 , а b2 ти е 1.2 excel прави закръгляването точно както го искаш.
Този вариант не закръгля първото частно към по-ниската стойност (458,57). При мен се получи с формула: =ROUND(B2-INT(B2);2)+INT(B2) , но си мисля, че може да се измисли по-елегантно решение. В клетка В2 е целият израз 550.29/1.2, съответно =377.9/1.2, като в нея е зададено начално закръгляне до трети знак.
Здравейте, горната формула закръгля примерните числа по желания начин, но не работи коректно с други числа - като 377,91.
Следната формула обработва числата по искания начин:
=IF(ISERR(FIND(",";B2));B2;IF(LEN(TRUNC(B2;3))-FIND(",";B2)>2;IF(AND(LEN(TRUNC(B2;3))-FIND(",";B2)>2;VALUE(RIGHT(TRUNC(B2;3)))>5);ROUNDUP(B2;2);ROUNDDOWN(B2;2));B2))
Формулата е изградена при десетичен разделител запетая. Ако работите с точка, използвайте следната:
=IF(ISERR(FIND(".";B2));B2;IF(LEN(TRUNC(B2;3))-FIND(".";B2)>2;IF(AND(LEN(TRUNC(B2;3))-FIND(".";B2)>2;VALUE(RIGHT(TRUNC(B2;3)))>5);ROUNDUP(B2;2);ROUNDDOWN(B2;2));B2))
На пръв поглед формулата изглежда сложна, но всъщност не е. Ще се опитам да обясня какво прави:
=IF(ISERR(FIND(",";B2));B2; - Ако резултата при търсенето на десетичен знак в клетка B2 дава грешка, формулата ще върне числото в клетка B2. Ако не дава грешка - продължава да изследва.
IF(LEN(TRUNC(B2;3))-FIND(",";B2)>2; - Ако броят на знаците след десетичния разделител е по-голям от 2, започва изследване на ново IF. Aко не е по-голямo от две - връща числото в клетка B2 - това е посочено в края на формулата. (Броят на знаците след десетичния разделител се изчислява като разлика между броя на всички знаци и номера на позицията на десетичния разделител. С функция LEN се изчислява броят на всички знаци (вече ограничени с функция TRUNC до 3 знака след десетичния разделител). С функция FIND се изчислява позицията на десетичния разделител.)
IF(AND(LEN(TRUNC(B2;3))-FIND(",";B2)>2;VALUE(RIGHT(TRUNC(B2;3)))>5); - Проверява дали броят на знаците след десетичния разделител е по-голям от 2 И дали последното число (вече ограничено с функция TRUNC до 3 знака след десетичния разделител) е по-голямо от 5.
ROUNDUP(B2;2);ROUNDDOWN(B2;2)); - Ако горната проверка е вярна - изпълнява се функция ROUNDUP, ако не е вярна - изпълнява се функция ROUNDDOWN.
За съжаление не можах да сложа Print Screen, който да се вижда. Формулата обработва число или резултат, които се намират в клетка B2 - например =377,91/1,2 или =A2/1,2 , като в А2 се намира числото 377, 91.