Отображать десятичные дроби только в том случае, если ячейка отображается при отображении пользовательского текста в Excel
У меня есть ряд ячеек с числовыми значениями. Я хотел бы произвести следующий эффект:
---------------------------
|Cell value | Cell result |
---------------------------
|2 | 2 kg |
|1.43 | 1.43 kg |
|9.5764 | 9.58 kg |
|3.2 | 3.2 kg |
---------------------------
В принципе,
- Я хочу, чтобы они всегда показывали "кг" после введенного значения.
- Любое введенное десятичное значение должно быть округлено до 2 десятичных знаков; если нет десятичных разрядов, он покажет целое число.
Я отформатировал ячейки 0" kg"
так что всегда показывают килограммы.
Что касается отображения только десятичных знаков, если необходимо, я использовал формулу =ROUND(X, 2)
в каждой ячейке показывать только два знака после запятой (X - это значение, которое я ввожу).
Вопрос: Однако, когда я печатаю =ROUND(2.5, 2)
это отображает 3 kg
вместо 2.5 kg
, Почему это? У вас есть другие возможные решения?
Редактировать 1
Я изменил форматирование ячейки на 0.##" kg"
и это работает так, как я хочу. Теперь проблема в том, если я использую =ROUND(10, 2)
это отображает 10. kg
с этим дополнительным пунктом сразу после номера.
2 ответа
С числами в столбце A используйте функцию Round() в столбце B, а затем отформатируйте в пользовательском формате "General k\g". Посмотреть скриншот
Одно из возможных решений основано на том, что я понимаю ваше требование. Используйте ИСПРАВЛЕННУЮ функцию, чтобы сначала округлить ее до 2 десятичных знаков и проверить последние три цифры, если.00 использовать только целую часть, и объединить с "кг", если последняя цифра равна нулю, округлить до 1 десятичного знака, а округлить до двух десятичных знаков
Предполагая, что ваши данные в столбце B, попробуйте эту формулу в столбце C
=IF(RIGHT(FIXED(B1,2),3)=".00",CONCATENATE(INT(B1)," kg"),IF(RIGHT(FIXED(B1,2),1)="0",CONCATENATE(FIXED(B1,1)," kg"),CONCATENATE(FIXED(B1,2)," kg")))