Не меняется значение в ячейке excel

Обновлено: 04.07.2024

Все очень просто. Хотим, чтобы ячейка меняла свой цвет (заливка, шрифт, жирный-курсив, рамки и т.д.) если выполняется определенное условие. Отрицательный баланс заливать красным, а положительный - зеленым. Крупных клиентов делать полужирным синим шрифтом, а мелких - серым курсивом. Просроченные заказы выделять красным, а доставленные вовремя - зеленым. И так далее - насколько фантазии хватит.

Чтобы сделать подобное, выделите ячейки, которые должны автоматически менять свой цвет, и выберите в меню Формат - Условное форматирование (Format - Conditional formatting) .

В открывшемся окне можно задать условия и, нажав затем кнопку Формат (Format) , параметры форматирования ячейки, если условие выполняется. В этом примере отличники и хорошисты заливаются зеленым, троечники - желтым, а неуспевающие - красным цветом:

Кнопка А также>> (Add) позволяет добавить дополнительные условия. В Excel 2003 их количество ограничено тремя, в Excel 2007 и более новых версиях - бесконечно.

Если вы задали для диапазона ячеек критерии условного форматирования, то больше не сможете отформатировать эти ячейки вручную. Чтобы вернуть себе эту возможность надо удалить условия при помощи кнопки Удалить (Delete) в нижней части окна.

Другой, гораздо более мощный и красивый вариант применения условного форматирования - это возможность проверять не значение выделенных ячеек, а заданную формулу:

Если заданная формула верна (возвращает значение ИСТИНА), то срабатывает нужный формат. В этом случае можно задавать на порядок более сложные проверки с использованием функций и, кроме того, проверять одни ячейки, а форматировать - другие.

Выделение цветом всей строки

Главный нюанс заключается в знаке доллара ($) перед буквой столбца в адресе - он фиксирует столбец, оставляя незафиксированной ссылку на строку - проверяемые значения берутся из столбца С, по очереди из каждой последующей строки:

Выделение максимальных и минимальных значений

Ну, здесь все достаточно очевидно - проверяем, равно ли значение ячейки максимальному или минимальному по диапазону - и заливаем соответствующим цветом:

В англоязычной версии это функции MIN и MAX, соответственно.

Выделение всех значений больше(меньше) среднего

Аналогично предыдущему примеру, но используется функция СРЗНАЧ (AVERAGE) для вычисления среднего:

Скрытие ячеек с ошибками

Чтобы скрыть ячейки, где образуется ошибка, можно использовать условное форматирование, чтобы сделать цвет шрифта в ячейке белым (цвет фона ячейки) и функцию ЕОШ (ISERROR) , которая выдает значения ИСТИНА или ЛОЖЬ в зависимости от того, содержит данная ячейка ошибку или нет:

Скрытие данных при печати

Аналогично предыдущему примеру можно использовать условное форматирование, чтобы скрывать содержимое некоторых ячеек, например, при печати - делать цвет шрифта белым, если содержимое определенной ячейки имеет заданное значение ("да", "нет"):

Заливка недопустимых значений

Сочетая условное форматирование с функцией СЧЁТЕСЛИ (COUNTIF) , которая выдает количество найденных значений в диапазоне, можно подсвечивать, например, ячейки с недопустимыми или нежелательными значениями:

Проверка дат и сроков

Поскольку даты в Excel представляют собой те же числа (один день = 1), то можно легко использовать условное форматирование для проверки сроков выполнения задач. Например, для выделения просроченных элементов красным, а тех, что предстоят в ближайшую неделю - желтым:

Счастливые обладатели последних версий Excel 2007-2010 получили в свое распоряжение гораздо более мощные средства условного форматирования - заливку ячеек цветовыми градиентами, миниграфики и значки:

Вот такое форматирование для таблицы сделано, буквально, за пару-тройку щелчков мышью. :)

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема - дробные числа превращаются в даты:

Испорченные данные

Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью - точка), а в Excel у вас российские настройки (где между целой и дробной частью - запятая, а точка используется как разделитель в дате).

При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике - если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату - оно будет конвертировано в дату. Всё, что на дату не похоже - останется текстом.

Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года - самая ранняя дата, с которой может работать Excel - 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:

Неправильная дата

Еще одна неправильная дата

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel - количество дней от 01.01.1900 до текущей даты:

Неправильное число после изменения формата

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл - Параметры - Дополнительно (File - Options - Advanced) :

Настройка разделителей в окне параметров Excel

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator) .

После этого можно смело импортировать данные - проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

Формула исправления чисел из дат

=--ЕСЛИ( ЯЧЕЙКА("формат";A1)="G" ; ПОДСТАВИТЬ(A1;".";",") ; ТЕКСТ(A1;"М,ГГГГ") )

В английской версии это будет:

=--IF (CELL ("format ";A1)="G"; SUBSTITUTE (A1;".";","); TEXT (A1;"M ,YYYY "))

Логика здесь простая:

  • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата "G" для текста/чисел или "D3" для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) .
  • Если в исходной ячейке дата, то выводим её в формате "номер месяца - запятая - номер года" с помощью функции ТЕКСТ (TEXT) .
  • Чтобы преобразовать получившееся текстовое значение в полноценное число - выполняем бессмысленную математическую операцию - добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставляем в нашу книгу новый пустой модуль через меню Insert - Module и копируем туда такой код:

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt + F8 или через команду Макросы на вкладке Разработчик (Developer - Macros) . Все испорченные числа будут немедленно исправлены.

Если вы забыли пароль на лист, то можете воспользоваться командой моей надстройки MulTEx - Снять защиту с листа(без пароля). Надстройка платная, но есть ДЕМО период на один месяц, которого должно хватить, чтобы снять защиту с одного листа.

Строка формул

Причина третья - Запрещен ввод напрямую в ячейках
И самая экзотическая причина - редактирование напрямую в ячейках запрещено. Это значит, что редактировать значение ячеек напрямую на листе нельзя, однако через строку формул это действие допускается без проблем и ограничений(при условии, что озвученные выше причины отсутствуют).
Где расположена строка формул:

В таком случае надо проверить следующие настройки:

  • для Excel 2003: Сервис -Параметры -вкладка Правка -установить флажок Правка прямо в ячейке
  • для Excel 2007: Кнопка Офис -Параметры Excel (Excel Options) -Дополнительно (Advanced) -установить флажок Разрешить редактирование в ячейках (Allow Editing Directly in the Cells)
  • для Excel 2010 и выше: Файл (File) -Параметры (Options) -Дополнительно (Advanced) -установить флажок Разрешить редактирование в ячейках (Allow Editing Directly in the Cells)
  • Excel 2003:
    Сервис-Безопасность-Уровень макросов "Высокий"
  • Excel 2007:
    Кнопка Офис-Параметры Excel (Excel Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Отключить все макросы без уведомления (Disable All Macros without notification)
  • Excel 2010 и выше:
    Файл (File) -Параметры (Options) -Центр управления безопасностью (Trust Centr) -Параметры центра управления безопасностью (Trust Centr Settings) -Параметры макросов (Macro Settings) -Отключить все макросы без уведомления (Disable All Macros without notification)

После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.

О том, что такое модуль листа и где его искать можно прочитать в статье: Что такое модуль? Какие бывают модули?

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

Формат ячеек в Excel не меняется? Копируйте любую секцию, в которой форматирование прошло без проблем, выделите «непослушные» участки, жмите на них правой кнопкой мышки (ПКМ), а далее «Специальная вставка» и «Форматы». Существует и ряд других способов, позволяющих решить возникшую проблему. Ниже рассмотрим, почему происходит такой сбой и разберем методы его самостоятельного решения.

Причины, почему не меняется форматирование в Excel

Для начала нужно разобраться, почему в Экселе не меняется формат ячеек, чтобы найти эффективный метод решения проблемы. По умолчанию при вводе цифры в рабочий документ к ней применяется выравнивание по правой стороне, а тип / размер определяется настройками системы.


Одна из причин, почему не меняется формат ячейки в Excel — появление конфликта в этом секторе, из-за чего стиль блокируется. В большинстве случаев проблема актуальна для документов в Эксель 2007 и более. Зачастую это обусловлено тем, что в новых форматах документов данные о форматировании ячеек находятся в схеме XML, а иногда при изменении происходит конфликт стилей. Excel, в свою очередь, не может установить и, как следствие, он не меняется.

Это лишь одна из причин, почему не работает формат в Excel, но в большинстве ситуаций она является единственным объяснением. Люди, которые сталкивались с такой проблемой, часто не могут определить момент, в которой она появилась. С учетом ситуации можно выделить несколько способов, как решить вопрос.

Что делать

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

Вариант №1

Для начала рассмотрим один из наиболее эффективных путей, позволяющих устранить возникшую проблему в Excel. Алгоритм такой:

  • Проверьте, в каком формате сохранена книга. Если в XLS, жмите на «Сохранить как» и «Книга Excel (*.xlsx). Иногда ничего не меняется из-за неправильного расширения.



  • Откройте архив любой специальной программой.
  • Найдите в нем следующие папки: _rels, docProps и xl.
  • Войдите в xl и деинсталлируйте Styles.xml.
  • Закройте архив.
  • Измените разрешение на первичное .xlsx.
  • Откройте книгу и согласитесь с восстановлением.
  • Получите информацию об удаленных стилях, которые не получилось восстановить.

После этого сохраните книгу и проверьте — меняется форматирование ячеек в Excel или нет. При использовании такого метода учтите, что удаляются форматы всех ячеек, в том числе тех, с которыми ранее проблем не возникало. Убирается информация по стилю шрифта, цвету, заливке, границах и т. д.

Этот вариант наиболее эффективный, когда в Экселе не меняется формат ячеек, но из-за своего «массового» применения в дальнейшем могут возникнуть трудности с настройкой. С другой стороны, риск появления такой же ошибки в будущем сводится к минимуму.

Вариант №2

Если формат ячеек вдруг не меняется в Excel, можно воспользоваться другим методом:

  1. Копируйте любую ячейку, с которой не возникало трудностей в этом вопросе.
  2. Выбелите проблемный участок, где возникла проблем, с помощью ПКМ.
  3. Выберите «Специальная вставка» и «Форматы».


Этот метод неплохо работает, когда в Эксель не меняется формат ячеек, хотя ранее в этом вопросе не возникали трудности. Его главное преимущество перед первым методом в том, что остальные установки сохраняются, и не нужно снова их задавать. Но есть особенность, которую нельзя не отметить. Нет гарантий того, что сбой программы Excel в дальнейшем снова на даст о себе знать.

Вариант №3

Следующее решение, когда не меняется форматирование в Excel — попытка правильного выполнения работы. Сделайте следующее:

  1. Выделите ячейки, требующие форматирования.
  2. Жмите на Ctrl+1.
  3. Войдите в «Формат ячеек» и откройте раздел «Число».
  4. Перейдите в раздел «Категория», а на следующем шаге — «Дата».
  5. В группе «Тип» выберите подходящий формат информации. Здесь будет возможность предварительного просмотра формата с 1-й датой в данных. Его можно найти в поле «Образец».


Вариант №4

Следующее решение, когда Эксель не меняет формат ячейки — попробовать задать корректный режим работы. Алгоритм действий имеет следующий вид:

  • Жмите на любую секцию с цифрой и кликните комбинацию Ctrl+C.
  • Выделите диапазон, требующий конвертации.
  • На вкладке «Вставка» жмите «Специальная вставка».



После этого попробуйте, меняется вариант форматирования с учетом вашего запроса, или неисправность сохраняется в прежнем режиме.

Вариант №5

Иногда бывают ситуации, когда проблема возникает при сохранении отчета в Excel из 1С. После выделения колонки с цифрами и попытки выбора числового формата с разделителями и десятичными символами ничего не меняется. При этом приходится по несколько раз нажимать на интересующий участок.

Для решения вопроса сделайте следующее:

  1. Выберите весь столбец.
  2. Кликните на «Данные», а далее «Текст по столбцам».
  3. Жмите на клавишу «Готово».
  4. Применяйте форматирование, которое вас интересует.


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

Читайте также: