Задать вопрос
@Mercury13
Программист на «си с крестами» и не только

Может ли Excel форматировать числа до 2 знаков и корректно обрабатывать целые?

Нужен такой формат для Excel, чтобы…
12 → «12»
12,3 → «12,3»
12,34 → «12,34»
12,345 → «12,35»
Прямое «0.##» не годится: форматирует 12 как «12,», с лишней десятичной запятой.
Причём LOo форматирует правильно!
Или я прошу невозможное и это стандартный глюк Ёкселя?
  • Вопрос задан
  • 307 просмотров
Подписаться 1 Средний 3 комментария
Решение пользователя h8nor К ответам на вопрос (3)
honor8
@honor8
Принципы быстродействия VBA в описании
Собрал воедино опыт коллег и пришёл к выводу, что задача без макросов решается только условным форматированием. Чтобы использовать относительные ссылки на ячейки, и не нагружать пересчётом формул Excel, старайтесь задать минимальную область для условного форматирования.
  1. Выделяем диапазон ячеек (или столбцов), где необходимо изменить числовой формат
  2. Главная (меню) -> Условное форматирование -> Создать правило...
  3. Выбрать пункт "Форматировать только ячейки, которые содержат"
  4. Первый выпадающий список "Значение ячейки" - не изменять
  5. Во втором выпадающем списке выбрать "больше"
  6. В последнем поле необходимо ввести формулу =ЦЕЛОЕ(ДВССЫЛ("RC";ЛОЖЬ))
  7. Нажать на кнопку "Формат"; задать необходимый формат числа 0,0#
  8. Нажать 2 раза кнопку OK.


Если лень щёлкать мышью, после выделения можно воспользоваться макросом:
With Selection.FormatConditions.Add(Type:=xlCellValue, _
  Operator:=xlGreater, Formula1:="=ЦЕЛОЕ(ДВССЫЛ(""RC"";ЛОЖЬ))")
  '3456789012345678901234567890123456h8nor@ya567890123456789012345678toster56789
  .StopIfTrue = False: .SetFirstPriority: .NumberFormat = "0,0#"
End With
Ответ написан
Комментировать