Округление вверх или вниз с десятичными знаками в Excel - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужна помощь в округлении десятичных знаков в excel.

Мне нужна формула, которая может помочь мне округлить до определенного десятичного знака. Например, у меня есть список чисел с десятичными знаками, и я хочу, чтобы этот список заканчивался в 9 или 5, см. Примеры:

3,82 -> 3,85

5,38 -> 5,39

2,96 -> 2,95

9,45 -> 9,45 (остается прежним)

9,06 -> 9,05

11,48 -> 11,49

6,12 -> 6,15

5,32 -> 5,35

Если вы видите, у меня есть значения, которые заканчиваются на .06, .38, .12, но я хочу, чтобы они заканчивались на ближайших 9 или 5

Уже пробовали сводные формулы, но не работали

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Вот еще одно решение:

=(MROUND(A1*1000+5,50)-IF(MOD(MROUND(A1*1000+5,50),100)=0,10))/1000
  • Умножение на 1000 позволяет нам работать с целыми числами, что позволяет избежать проблем округления, которые могут возникнуть при работе с десятичными знаками. Это предполагает, что ваши значения имеют только два десятичных знака.Если их больше, может потребоваться незначительная корректировка. (например, измените A1*1000+5 на ROUND(A1*1000,0)+5
  • Добавьте 5, поскольку ваш алгоритм округления смещен относительно фактической средней точки
  • Округление до ближайшего 50
    • Если ближайшее 50 кратно 100, то вычтите 10
  • Разделите на1000 для возврата исходного значения, округленного по вашему алгоритму

enter image description here

0 голосов
/ 12 апреля 2019

Это была забавная головоломка:

=IF(ABS(A1-(ROUND(A1,1)-0.01))=ABS(A1-IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),MAX(A1-(ROUND(A1,1)-0.01),IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),IF(ABS(A1-(ROUND(A1,1)-0.01))<ABS(A1-IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)),ROUND(A1,1)-0.01,IF(ABS(A1-(ROUND(A1,1)+0.05))<ABS(A1-(ROUND(A1,1)-0.05)),ROUND(A1,1)+0.05,ROUND(A1,1)-0.05)))

Большая головоломка, так как нам нужно найти две возможности и проверить их, чтобы увидеть, какая из них ближе, и в случае ничьей вернуть максимум.

enter image description here

...