#excel #excel-formula #decimal #excel-2007 #digits
#excel #excel-формула #десятичная #excel-2007 #цифры
Вопрос:
Мне нужна помощь в округлении с десятичными дробями в 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
Уже пробовал формулы округления, но не сработало
Комментарии:
1. Вы всегда округляете на 2 цифры?
2. Итак, какова логика того, что 5.32 будет 5.35 вместо 5.29? Оба значения будут смещены на 0,03.
3. Я за цену, поэтому мы хотели бы увеличить цену, а не потерять.
Ответ №1:
Вот еще одно решение:
=(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
, чтобы вернуть исходное значение, округленное в соответствии с вашим алгоритмом
Комментарии:
1. Это очень аккуратно!!
Ответ №2:
Это была забавная головоломка:
=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)))
Большая головоломка, поскольку нам нужно найти две возможности и проверить их, чтобы увидеть, какая из них ближе, и в случае ничьей вернуть максимальное значение.