Excel функция изменить ячейку

Содержимое ячейки можно редактировать непосредственно в ячейке. Вы также можете изменить содержимое ячейки, введя строка формул.

При редактировании содержимого ячейки Excel режиме правки. Некоторые Excel работают иначе или недоступны в режиме правки.

Если Excel режиме редактирования, в левом нижнем углу окна программы Excel отображается слово Изменить, как показано на рисунке ниже.

Lower left corner of program window showing edit mode

Как Excel в режиме правки?

В режиме правки многие команды недоступны. Например, если Excel находится в режиме правки, применить условное форматирование или изменить выравнивание содержимого ячейки невозможно.

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

Включить или отключить режим правки

Если вы пытаетесь использовать режим правки, но ничего не происходит, возможно, он отключен. Вы можете включить или отключить режим правки, изменив параметр Excel редактирования.

  1. Щелкните Файл > Параметры > Дополнительно.

    -ИЛИ-

    Только Excel 2007: нажмите кнопку Microsoft Office Изображение кнопки Office , Excel параметры ,а затем выберите категорию Дополнительные параметры.

  2. В разделе Параметры правки выполните требуемое действие.

    • Чтобы включить режим правки, выберите элемент Разрешить редактирование непосредственно в ячейках.

    • Чтобы отключить режим правки, сключим поле Разрешить редактирование непосредственно в ячейках.

Перейдите в режим правки

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

  • Дважды щелкните ячейку с данными, которые вы хотите изменить.

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

  • Щелкните ячейку с данными, которые вы хотите изменить, а затем щелкните в любом месте в области формул.

    При этом в режиме правки курсор будет расположен в области формул в том месте, где вы щелкнули.

  • Щелкните ячейку с данными, которые вы хотите изменить, и нажмите F2.

    В режиме правки курсор будет курсором в конце содержимого ячейки.

Вставка, удаление и замена содержимого ячеок

  • Чтобы вставить символы, щелкните ячейку, в которой их нужно вставить, и введите новые символы.

  • Чтобы удалить символы, щелкните ячейку, в которой их нужно удалить, а затем нажмите кнопку BACKSPACE или выберите символы, а затем нажмите кнопку DELETE.

  • Чтобы заменить определенные символы, вы выберите их и введите новые символы.

  • Чтобы включить режим замены, чтобы существующие символы заменялись новыми при вводе, нажмите кнопку ВСТАВИТЬ.

    Примечание: Режим перепечатки можно использовать или отключать только в режиме правки. Если включен режим вставки, знак справа от точки вставки выделяется в панели формул и перезаписывается при вводе.

  • Чтобы начать новую строку текста в определенной точке ячейки, щелкните в том месте, где нужно ввести разрыв строки, а затем нажмите ALT+ВВОД.

Отмена и отмена изменений

Перед нажатием клавиши ВВОД или TAB, а также до или после нажатием клавиши F2 можно нажать клавишу ESC, чтобы отменить любые изменения содержимого ячейки.

После нажатия вводов или tab можно отменить изменения, нажав CTRL+Z или нажав кнопку Отменить Кнопка "Отменить"на панели быстрого доступа.

Настройка способа отображения содержимого ячейки

После редактирования содержимого ячейки может потребоваться настроить их отображение.

  • Иногда в ячейке может отображаться строка вида #####. Это может происходить, если ячейка содержит число или дату, а ширина столбца не позволяет отобразить все необходимые символы. Предположим, например, что ячейка с форматом даты «дд.мм.дд.yyy» содержит дату 31.12.2007 г. Однако ширины столбца хватает только для показа шести символов. В ячейке будет отображаться #####. Чтобы увидеть все содержимое ячейки с текущим форматом, необходимо увеличить ширину столбца.

    Изменение ширины столбца

    1. Щелкните ячейку, для которой требуется изменить ширину столбца.

    2. На вкладке Главная в группе Ячейки нажмите кнопку Формат.

      Изображение ленты Excel

    3. Выделите пункт Размер ячейки и выполните одно из следующих действий.

      • Чтобы подогнать размер ячейки под текст, выберите команду Автоподбор ширины столбца.

      • Чтобы указать большую ширину столбца, щелкните Ширина столбца и введите нужное число в поле Ширина столбца.

        Примечание: Также ширину столбца можно увеличить, изменив формат столбца или отдельной ячейки. Например, можно изменить формат даты, чтобы отображался только день и месяц (формат «дд.мм»), например 31.12, или представить число в экспоненциальном формате, например 4E+08.

  • Если в ячейке несколько строк текста, часть текста может отображаться не так, как нужно. Путем переноса текста в ячейке можно отобразить несколько строк текста.

    Примечание: Если Excel режиме редактирования, изменить способ переноса текста невозможно.

    Перенос текста в ячейке

    1. Щелкните ячейку, в которой требуется выполнить перенос текста.

    2. На вкладке Главная в группе Выравнивание выберите пункт Переносить текст.

      Изображение ленты Excel

      Примечание: Если текст является одним длинным словом, символы не будут переносимы; вы можете расширить столбец или уменьшить размер шрифта, чтобы увидеть весь текст. Если после переноса текста в ячейке отображается не весь текст, может потребоваться изменить высоту строки.

      На вкладке Главная в группе Ячейки нажмите кнопку Формат и выберите в разделе Размер ячейки команду Автоподбор высоты строки.

Выход из режима правки

Чтобы остановить работу в режиме правки, сделайте следующее:

  • Нажмите клавишу ВВОД.

    Excel выйти из режима правки и выбрать ячейку непосредственно под текущей ячейкой.

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

    1. Щелкните Файл > Параметры > Дополнительно.

      -ИЛИ-

      Только Excel 2007: нажмите кнопку Microsoft Office Изображение кнопки Office , Excel параметры ,а затем выберите категорию Дополнительные параметры.

    2. В разделе Параметры правки выполните требуемое действие.

      • Чтобы выделение оставалось в ячейке, которую вы редактируете, сделайте так, чтобы после нажатия нажатия ввод переместили выделение.

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

  • Нажмите клавишу TAB.

    При этом режим правки перестанет быть изменен и выберет ячейку справа от текущей ячейки. При нажатии shift+TAB ячейка будет выбрана слева.

  • Щелкните другую ячейку.

    Excel выйти из режима правки и выбрать выбранную ячейку.

  • Нажмите F2.

    Excel выйти из режима правки и выйти из курсора.

Содержание

  • Процедура изменения цвета ячеек в зависимости от содержимого
    • Способ 1: условное форматирование
    • Способ 2: использование инструмента «Найти и выделить»
  • Вопросы и ответы

Заливка цветом ячеек в Microsoft Excel

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

Процедура изменения цвета ячеек в зависимости от содержимого

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

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

Но выход существует. Для ячеек, которые содержат динамические (изменяющиеся) значения применяется условное форматирование, а для статистических данных можно использовать инструмент «Найти и заменить».

Способ 1: условное форматирование

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

Посмотрим, как этот способ работает на конкретном примере. Имеем таблицу доходов предприятия, в которой данные разбиты помесячно. Нам нужно выделить разными цветами те элементы, в которых величина доходов менее 400000 рублей, от 400000 до 500000 рублей и превышает 500000 рублей.

  1. Выделяем столбец, в котором находится информация по доходам предприятия. Затем перемещаемся во вкладку «Главная». Щелкаем по кнопке «Условное форматирование», которая располагается на ленте в блоке инструментов «Стили». В открывшемся списке выбираем пункт «Управления правилами…».
  2. Переход к управлению правилами в Microsoft Excel

  3. Запускается окошко управления правилами условного форматирования. В поле «Показать правила форматирования для» должно быть установлено значение «Текущий фрагмент». По умолчанию именно оно и должно быть там указано, но на всякий случай проверьте и в случае несоответствия измените настройки согласно вышеуказанным рекомендациям. После этого следует нажать на кнопку «Создать правило…».
  4. Переход к созданию правила в Microsoft Excel

  5. Открывается окно создания правила форматирования. В списке типов правил выбираем позицию «Форматировать только ячейки, которые содержат». В блоке описания правила в первом поле переключатель должен стоять в позиции «Значения». Во втором поле устанавливаем переключатель в позицию «Меньше». В третьем поле указываем значение, элементы листа, содержащие величину меньше которого, будут окрашены определенным цветом. В нашем случае это значение будет 400000. После этого жмем на кнопку «Формат…».
  6. Окно создания правила форматирования в Microsoft Excel

  7. Открывается окно формата ячеек. Перемещаемся во вкладку «Заливка». Выбираем тот цвет заливки, которым желаем, чтобы выделялись ячейки, содержащие величину менее 400000. После этого жмем на кнопку «OK» в нижней части окна.
  8. Выбор цвета ячейки в Microsoft Excel

  9. Возвращаемся в окно создания правила форматирования и там тоже жмем на кнопку «OK».
  10. Создание правила форматирования в Microsoft Excel

  11. После этого действия мы снова будем перенаправлены в Диспетчер правил условного форматирования. Как видим, одно правило уже добавлено, но нам предстоит добавить ещё два. Поэтому снова жмем на кнопку «Создать правило…».
  12. Переход к созданию следующего правила в Microsoft Excel

  13. И опять мы попадаем в окно создания правила. Перемещаемся в раздел «Форматировать только ячейки, которые содержат». В первом поле данного раздела оставляем параметр «Значение ячейки», а во втором выставляем переключатель в позицию «Между». В третьем поле нужно указать начальное значение диапазона, в котором будут форматироваться элементы листа. В нашем случае это число 400000. В четвертом указываем конечное значение данного диапазона. Оно составит 500000. После этого щелкаем по кнопке «Формат…».
  14. Переход в окно форматирования в Microsoft Excel

  15. В окне форматирования снова перемещаемся во вкладку «Заливка», но на этот раз уже выбираем другой цвет, после чего жмем на кнопку «OK».
  16. Окно форматирования в Microsoft Excel

    Lumpics.ru

  17. После возврата в окно создания правила тоже жмем на кнопку «OK».
  18. Завершене создания правила в Microsoft Excel

  19. Как видим, в Диспетчере правил у нас создано уже два правила. Таким образом, осталось создать третье. Щелкаем по кнопке «Создать правило».
  20. Переход к созданию последнего правила в Microsoft Excel

  21. В окне создания правила опять перемещаемся в раздел «Форматировать только ячейки, которые содержат». В первом поле оставляем вариант «Значение ячейки». Во втором поле устанавливаем переключатель в полицию «Больше». В третьем поле вбиваем число 500000. Затем, как и в предыдущих случаях, жмем на кнопку «Формат…».
  22. Окно создания правила в Microsoft Excel

  23. В окне «Формат ячеек» опять перемещаемся во вкладку «Заливка». На этот раз выбираем цвет, который отличается от двух предыдущих случаев. Выполняем щелчок по кнопке «OK».
  24. Окно формат ячеек в Microsoft Excel

  25. В окне создания правил повторяем нажатие на кнопку «OK».
  26. Последнее правило создано в Microsoft Excel

  27. Открывается Диспетчер правил. Как видим, все три правила созданы, поэтому жмем на кнопку «OK».
  28. Завершение работы в Диспетчере правил в Microsoft Excel

  29. Теперь элементы таблицы окрашены согласно заданным условиям и границам в настройках условного форматирования.
  30. Ячейки окрашены согласно заданным условиям в Microsoft Excel

  31. Если мы изменим содержимое в одной из ячеек, выходя при этом за границы одного из заданных правил, то при этом данный элемент листа автоматически сменит цвет.

Смена цвета в ячеке в Microsoft Excel

Кроме того, можно использовать условное форматирование несколько по-другому для окраски элементов листа цветом.

  1. Для этого после того, как из Диспетчера правил мы переходим в окно создания форматирования, то остаемся в разделе «Форматировать все ячейки на основании их значений». В поле «Цвет» можно выбрать тот цвет, оттенками которого будут заливаться элементы листа. Затем следует нажать на кнопку «OK».
  2. Форматирование ячеек на основании их значений в Microsoft Excel

  3. В Диспетчере правил тоже жмем на кнопку «OK».
  4. Диспетчер правил в Microsoft Excel

  5. Как видим, после этого ячейки в колонке окрашиваются различными оттенками одного цвета. Чем значение, которое содержит элемент листа больше, тем оттенок светлее, чем меньше – тем темнее.

Ячейки отформатированы в Microsoft Excel

Урок: Условное форматирование в Экселе

Способ 2: использование инструмента «Найти и выделить»

Если в таблице находятся статические данные, которые не планируется со временем изменять, то можно воспользоваться инструментом для изменения цвета ячеек по их содержимому под названием «Найти и выделить». Указанный инструмент позволит отыскать заданные значения и изменить цвет в этих ячейках на нужный пользователю. Но следует учесть, что при изменении содержимого в элементах листа, цвет автоматически изменяться не будет, а останется прежним. Для того, чтобы сменить цвет на актуальный, придется повторять процедуру заново. Поэтому данный способ не является оптимальным для таблиц с динамическим содержимым.

Посмотрим, как это работает на конкретном примере, для которого возьмем все ту же таблицу дохода предприятия.

  1. Выделяем столбец с данными, которые следует отформатировать цветом. Затем переходим во вкладку «Главная» и жмем на кнопку «Найти и выделить», которая размещена на ленте в блоке инструментов «Редактирование». В открывшемся списке кликаем по пункту «Найти».
  2. Переход в окно Найти и заменить в Microsoft Excel

  3. Запускается окно «Найти и заменить» во вкладке «Найти». Прежде всего, найдем значения до 400000 рублей. Так как у нас нет ни одной ячейки, где содержалось бы значение менее 300000 рублей, то, по сути, нам нужно выделить все элементы, в которых содержатся числа в диапазоне от 300000 до 400000. К сожалению, прямо указать данный диапазон, как в случае применения условного форматирования, в данном способе нельзя.

    Но существует возможность поступить несколько по-другому, что нам даст тот же результат. Можно в строке поиска задать следующий шаблон «3?????». Знак вопроса означает любой символ. Таким образом, программа будет искать все шестизначные числа, которые начинаются с цифры «3». То есть, в выдачу поиска попадут значения в диапазоне 300000 – 400000, что нам и требуется. Если бы в таблице были числа меньше 300000 или меньше 200000, то для каждого диапазона в сотню тысяч поиск пришлось бы производить отдельно.

    Вводим выражение «3?????» в поле «Найти» и жмем на кнопку «Найти все».

  4. Запуск поиска в Microsoft Excel

  5. После этого в нижней части окошка открываются результаты поисковой выдачи. Кликаем левой кнопкой мыши по любому из них. Затем набираем комбинацию клавиш Ctrl+A. После этого выделяются все результаты поисковой выдачи и одновременно выделяются элементы в столбце, на которые данные результаты ссылаются.
  6. Выделение результатоа поисковой выдачи в Microsoft Excel

  7. После того, как элементы в столбце выделены, не спешим закрывать окно «Найти и заменить». Находясь во вкладке «Главная» в которую мы переместились ранее, переходим на ленту к блоку инструментов «Шрифт». Кликаем по треугольнику справа от кнопки «Цвет заливки». Открывается выбор различных цветов заливки. Выбираем тот цвет, который мы желаем применить к элементам листа, содержащим величины менее 400000 рублей.
  8. Выбор цвета заливки в Microsoft Excel

  9. Как видим, все ячейки столбца, в которых находятся значения менее 400000 рублей, выделены выбранным цветом.
  10. Ячейки выделены синим цветом в Microsoft Excel

  11. Теперь нам нужно окрасить элементы, в которых располагаются величины в диапазоне от 400000 до 500000 рублей. В этот диапазон входят числа, которые соответствуют шаблону «4??????». Вбиваем его в поле поиска и щелкаем по кнопке «Найти все», предварительно выделив нужный нам столбец.
  12. Поиск второго интервала значений в Microsoft Excel

  13. Аналогично с предыдущим разом в поисковой выдаче производим выделение всего полученного результата нажатием комбинации горячих клавиш CTRL+A. После этого перемещаемся к значку выбора цвета заливки. Кликаем по нему и жмем на пиктограмму нужного нам оттенка, который будет окрашивать элементы листа, где находятся величины в диапазоне от 400000 до 500000.
  14. Выбор цвета заливки для второго диапазона данных в Microsoft Excel

  15. Как видим, после этого действия все элементы таблицы с данными в интервале с 400000 по 500000 выделены выбранным цветом.
  16. Ячейки выделены зеленым цветом в Microsoft Excel

  17. Теперь нам осталось выделить последний интервал величин – более 500000. Тут нам тоже повезло, так как все числа более 500000 находятся в интервале от 500000 до 600000. Поэтому в поле поиска вводим выражение «5?????» и жмем на кнопку «Найти все». Если бы были величины, превышающие 600000, то нам бы пришлось дополнительно производить поиск для выражения «6?????» и т.д.
  18. Поиск третьего интервала значений в Microsoft Excel

  19. Опять выделяем результаты поиска при помощи комбинации Ctrl+A. Далее, воспользовавшись кнопкой на ленте, выбираем новый цвет для заливки интервала, превышающего 500000 по той же аналогии, как мы это делали ранее.
  20. Выбор цвета заливки для третьего диапазона данных в Microsoft Excel

  21. Как видим, после этого действия все элементы столбца будут закрашены, согласно тому числовому значению, которое в них размещено. Теперь можно закрывать окно поиска, нажав стандартную кнопку закрытия в верхнем правом углу окна, так как нашу задачу можно считать решенной.
  22. Все ячейки окрашены в Microsoft Excel

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

Цвет не поменялся после изменения значения в ячейке в Microsoft Excel

Урок: Как сделать поиск в Экселе

Как видим, существует два способа окрасить ячейки в зависимости от числовых значений, которые в них находятся: с помощью условного форматирования и с использованием инструмента «Найти и заменить». Первый способ более прогрессивный, так как позволяет более четко задать условия, по которым будут выделяться элементы листа. К тому же, при условном форматировании цвет элемента автоматически меняется, в случае изменения содержимого в ней, чего второй способ делать не может. Впрочем, заливку ячеек в зависимости от значения путем применения инструмента «Найти и заменить» тоже вполне можно использовать, но только в статических таблицах.

Skip to content

Формула ЗАМЕНИТЬ и ПОДСТАВИТЬ для текста и чисел

В статье объясняется на примерах как работают функции Excel ЗАМЕНИТЬ (REPLACE в английской версии) и ПОДСТАВИТЬ (SUBSTITUTE по-английски). Мы покажем, как использовать функцию ЗАМЕНИТЬ с текстом, числами и датами, а также как вложить несколько функций ЗАМЕНИТЬ или ПОДСТАВИТЬ в одну формулу.

Функции Excel ЗАМЕНИТЬ и ПОДСТАВИТЬ используются для замены одной буквы или части текста в ячейке. Но делают они это немного по-разному. Об этом и поговорим далее.

Как работает функция ЗАМЕНИТЬ  

Функция ЗАМЕНИТЬ  позволяет заместить слово, один или несколько символов в текстовой строке другим словом или символом.

ЗАМЕНИТЬ(старый_текст; начальная_позиция; число_знаков, новый_текст)

Как видите, функция ЗАМЕНИТЬ имеет 4 аргумента, и все они обязательны для заполнения.

  • Старый_текст — исходный текст (или ссылка на ячейку с исходным текстом), в котором вы хотите поменять некоторые символы.
  • Начальная_позиция — позиция первого символа в старый_текст, начиная с которого вы хотите сделать замену.
  • Число_знаков — количество символов, которые вы хотите заместить новыми.
  • Новый_текст – текст замены.

Например, чтобы исправить слово «кит» на «кот», следует поменять вторую букву в слове. Вы можете использовать следующую формулу:

=ЗАМЕНИТЬ(«кит»;2;1;»о»)

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

=ЗАМЕНИТЬ(А2;2;1;»о»)

Примечание. Если аргументы начальная_позиция или число_знаков отрицательные или не являются числом, формула замены возвращает ошибку #ЗНАЧ!.

Использование функции ЗАМЕНИТЬ с числами

Функция ЗАМЕНИТЬ предназначена для работы с текстом. Но безусловно, вы можете использовать ее для замены не только букв, но и цифр, являющихся частью текстовой строки, например:

=ЗАМЕНИТЬ(A1; 9; 4; «2023»)

как заменить значения в ячейке Эксель

Обратите внимание, что мы заключаем «2023» в двойные кавычки, как вы обычно делаете с текстовыми значениями.

Аналогичным образом вы можете заменить одну или несколько цифр в числе. Например формула:

=ЗАМЕНИТЬ(A1;3;2;»23″)

И снова вы должны заключить значение замены в двойные кавычки («23»).

Примечание. Формула ЗАМЕНИТЬ всегда возвращает текстовую строку, а не число. На скриншоте выше обратите внимание на выравнивание по левому краю возвращаемого текстового значения в ячейке B1 и сравните его с исходным числом, выровненным по правому краю в A1. А поскольку это текст, вы не сможете использовать его в других вычислениях, пока не преобразуете его обратно в число, например, умножив на 1 или используя любой другой метод, описанный в статье Как преобразовать текст в число.

Как заменить часть даты

Как вы только что видели, функция ЗАМЕНИТЬ отлично работает с числами, за исключением того, что она возвращает текстовую строку :) Помните, что во внутренней системе Excel даты хранятся в виде чисел. Поэтому нельзя пытаться заменить часть даты, работая с ней как с текстом.

Например, у вас есть дата в A3, скажем, 15 июля 1992г., и вы хотите изменить «июль» на «май». Итак, вы пишете формулу ЗАМЕНИТЬ(A3; 4; 3; «Май»), которая предписывает Excel поменять 3 символа в ячейке A3, начиная с четвертого. Мы получили следующий результат:

Почему так? Потому что «15-июл-92» — это только визуальное представление базового серийного номера (33800), представляющего дату. Итак, наша формула замены заменяет цифры начиная с четвертой (а это два нуля) в указанном выше числе на текст «Май» и возвращает в результате текстовую строку «338Май».

Чтобы заставить функцию ЗАМЕНИТЬ правильно работать с датами, вы должны сначала преобразовать даты в текстовые строки, используя функцию ТЕКСТ. Кроме того, вы можете встроить функцию ТЕКСТ непосредственно в аргумент старый_текст функции ЗАМЕНИТЬ:

=ЗАМЕНИТЬ(ТЕКСТ(A3; «дд-ммм-гг»); 4; 3; «Май»)

Помните, что результатом приведенной выше формулы является текстовая строка, и поэтому это решение работает только в том случае, если вы не планируете использовать измененные даты в своих дальнейших расчетах. Если вам нужны даты, а не текстовые строки, используйте функцию ДАТАЗНАЧ , чтобы преобразовать значения, возвращаемые функцией Excel ЗАМЕНИТЬ, обратно в даты:

=ДАТАЗНАЧ(ЗАМЕНИТЬ(ТЕКСТ(A3; «дд-ммм-гг»); 4; 3; «Май»))

Как заменить сразу несколько букв или слов

Довольно часто может потребоваться выполнить более одной замены в одной и той же ячейке Excel. Конечно, можно было сделать одну замену, вывести промежуточный результат в дополнительный столбец, а затем снова использовать функцию ЗАМЕНИТЬ. Однако лучший и более профессиональный способ — использовать вложенные функции ЗАМЕНИТЬ, которые позволяют выполнить сразу несколько замен с помощью одной формулы. В этом смысле «вложение» означает размещение одной функции внутри другой.

Рассмотрим следующий пример. Предположим, у вас есть список телефонных номеров в столбце A, отформатированный как «123456789», и вы хотите сделать их более похожими на привычные нам  телефонные номера, добавив дефисы. Другими словами, ваша цель — превратить «123456789» в «123-456-789».

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

=ЗАМЕНИТЬ(A3;4;0;»-«)

Результат приведенной выше формулы замены выглядит следующим образом:

А теперь нам нужно вставить еще один дефис в восьмую позицию. Для этого вы помещаете приведенную выше формулу в еще одну функцию Excel ЗАМЕНИТЬ. Точнее, вы встраиваете её в аргумент старый_текст другой функции, чтобы вторая функция ЗАМЕНИТЬ обрабатывала значение, возвращаемое первой формулой, а не первоначальное значение из ячейки А3:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;4;0;»-«);8;0;»-«)

В результате вы получаете номера телефонов в нужном формате:

Аналогичным образом вы можете использовать вложенные функции ЗАМЕНИТЬ, чтобы текстовые строки выглядели как даты, добавляя косую черту (/) там, где это необходимо:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»)

Кроме того, вы можете преобразовать текстовые строки в реальные даты, обернув приведенную выше формулу ЗАМЕНИТЬ функцией ДАТАЗНАЧ:

=ДАТАЗНАЧ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»))

И, естественно, вы не ограничены в количестве функций, которые вы можете последовательно, как матрёшки, вложить друг в друга в одной формуле (современные версии Excel позволяют использовать до 8192 символов и до 64 вложенных функций в одной формуле).

Например, вы можете попробовать 3 вложенные функции ЗАМЕНИТЬ, чтобы число отображалось как дата и время:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»);9;0;» «);12;0;»:»)

Как заменить текст в разных местах

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

Предположим, у вас есть список адресов электронной почты в столбце A. И название одной компании изменилось с «ABC» на, скажем, «BCA». Изменилось и название их почтового домена. Таким образом, вы должны соответствующим образом обновить адреса электронной почты всех клиентов и заменить три буквы в адресах электронной почты, где это необходимо.

Но проблема в том, что имена почтовых ящиков имеют разную длину, и поэтому нельзя указать, с какой именно позиции начинается название домена. Другими словами, вы не знаете, какое значение указать в аргументе начальная_позиция функции Excel ЗАМЕНИТЬ. Чтобы узнать это, используйте функцию Excel НАЙТИ, чтобы определить позицию, с которой начинается доменное имя в адресе электронной почты:

=НАЙТИ(«@abc»; A3)

Затем вставьте указанную выше функцию НАЙТИ в аргумент начальная_позиция формулы ЗАМЕНИТЬ:

=ЗАМЕНИТЬ(A3; НАЙТИ(«@abc»;A3); 4; «@bca»)

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

Как вы видите на скриншоте ниже, у формулы нет проблем, чтобы поменять символы в разных позициях. Однако если заменяемая текстовая строка не найдена и менять в ней ничего не нужно, формула возвращает ошибку #ЗНАЧ!:

 Excel как заменить буквы в адресе

И мы хотим, чтобы формула вместо ошибки возвращала исходный адрес электронной почты без изменения.  Для этого заключим нашу формулу НАЙТИ И ЗАМЕНИТЬ в функцию ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ЗАМЕНИТЬ(A3; НАЙТИ(«@abc»;A3); 4; «@bca»);A3)

И эта доработанная формула прекрасно работает, не так ли?

Заменить заглавные буквы на строчные и наоборот

Еще один полезный пример – заменить первую строчную букву в ячейке на прописную (заглавную). Всякий раз, когда вы имеете дело со списком имен, товаров и т.п., вы можете использовать приведенную ниже формулу, чтобы изменить первую букву на ЗАГЛАВНУЮ. Ведь названия товаров могут быть записаны по-разному, а в списках важно единообразие.

Таким образом, нам нужно заменить первый символ в тексте на заглавную букву. Используем формулу

=ЗАМЕНИТЬ(СТРОЧН(A3);1;1;ПРОПИСН(ЛЕВСИМВ(A3;1)))

excel заменить первые буквы на заглавные

Как видите, эта формула сначала заменяет все буквы в тексте на строчные при помощи функции СТРОЧН, а затем первую строчную букву меняет на заглавную (прописную).

Быть может, это будет полезно.

Описание функции ПОДСТАВИТЬ

Функция ПОДСТАВИТЬ в Excel заменяет один или несколько экземпляров заданного символа или текстовой строки указанными символами.

Синтаксис формулы ПОДСТАВИТЬ в Excel следующий:

ПОДСТАВИТЬ(текст, старый_текст, новый_текст, [номер_вхождения])

Первые три аргумента являются обязательными, а последний – нет.

  • Текст – исходный текст, в котором вы хотите заменить слова либо отдельные символы. Может быть тестовой строой, ссылкой на ячейку или же результатом вычисления другой формулы.
  • Старый_текст – что именно вы хотите заменить.
  • Новый_текст – новый символ или слово для замены старого_текста.
  • Номер_вхождения — какой по счёту экземпляр старый_текст вы хотите заменить. Если этот параметр опущен, все вхождения старого текста будут заменены новым текстом.

Например, все приведенные ниже формулы подставляют вместо «1» – цифру «2» в ячейке A2, но возвращают разные результаты в зависимости от того, какое число указано в последнем аргументе:

=ПОДСТАВИТЬ(A3;»1″;»2″;1) — Заменяет первое вхождение «1» на «2».

=ПОДСТАВИТЬ(A3;»1″;»2″;2) — Заменяет второе вхождение «1» на «2».

=ПОДСТАВИТЬ(A3;»1″;»2″) — Заменяет все вхождения «1» на «2».

На практике формула ПОДСТАВИТЬ также используется для удаления ненужных символов из текста. Вы просто меняете их на пустую строку “”.

Например, чтобы удалить пробелы из текста, замените их на пустоту.

=ПОДСТАВИТЬ(A3;» «;»»)

Примечание. Функция ПОДСТАВИТЬ в Excel чувствительна к регистру . Например, следующая формула меняет все вхождения буквы «X» в верхнем регистре на «Y» в ячейке A2, но не заменяет ни одной буквы «x» в нижнем регистре.

=ПОДСТАВИТЬ(A3;»Х»;»Y»)

Замена нескольких значений одной формулой

Как и в случае с функцией ЗАМЕНИТЬ, вы можете вложить несколько функций ПОДСТАВИТЬ в одну формулу, чтобы сделать несколько подстановок одновременно, т.е. заменить несколько символов или подстрок при помощи одной формулы.

Предположим, у вас есть текстовая строка типа « пр1, эт1, з1 » в ячейке A3, где «пр» означает «Проект», «эт» означает «этап», а «з» означает «задача». Вы хотите заместить три этих кода их полными эквивалентами. Для этого вы можете написать 3 разные формулы подстановки:

=ПОДСТАВИТЬ(A3;»пр»;»Проект «)

=ПОДСТАВИТЬ(A3;»эт»;»Этап «)

=ПОДСТАВИТЬ(A3;»з»;»Задача «)

А затем вложить их друг в друга:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;»пр»;»Проект «); «эт»;»Этап «);»з»;»Задача «)

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

Другие полезные применения функции ПОДСТАВИТЬ:

  • Замена неразрывных пробелов в ячейке Excel обычными
  • Убрать пробелы в числах
  • Удалить перенос строки в ячейке
  • Подсчитать определенные символы в ячейке

Что лучше использовать – ЗАМЕНИТЬ или ПОДСТАВИТЬ?

Функции Excel ЗАМЕНИТЬ и ПОДСТАВИТЬ очень похожи друг на друга в том смысле, что обе они предназначены для подмены отдельных символов или текстовых строк. Различия между двумя функциями заключаются в следующем:

  • ПОДСТАВИТЬ замещает один или несколько экземпляров данного символа или текстовой строки. Итак, если вы знаете тот текст, который нужно поменять, используйте функцию Excel ПОДСТАВИТЬ.
  • ЗАМЕНИТЬ замещает символы в указанной позиции текстовой строки. Итак, если вы знаете положение заменяемых символов, используйте функцию Excel ЗАМЕНИТЬ.
  • Функция ПОДСТАВИТЬ в Excel позволяет добавить необязательный параметр (номер_вхождения), указывающий, какой по счету экземпляр старого_текста следует заместить на новый_текст.

Вот как вы можете заменить текст в ячейке и использовать функции ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel. Надеюсь, эти примеры окажутся полезными при решении ваших задач. 

Хитрости »

7 Август 2013              27158 просмотров


Как функцией пользователя изменить значение другой ячейки

Обычно в своих статьях и на форумах я пишу, что функция пользователя не умеет изменять значение других ячеек. Только возвращает значение в ту ячейку, в которой записана. В большинстве случаев это справедливо и в принципе правильно. Но есть обходной путь, который позволяет изменить данные другой ячейки из функции пользователя (не рекомендую применять этот подход в серьезных программах — метод ненадежен и не документирован):

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
' Procedure : ChangeAnotherCell
'             http://www.excel-vba.ru
' Purpose   : Функция меняет значение указанной ячейки
' Аргументы:
'    rCell  - ячейка, в которой необходимо поменять значение.
'    vVal   - значение для записи в ячейку rCell.
'             Произвольный текст или ссылка на ячейку.
'---------------------------------------------------------------------------------------
Function ChangeAnotherCell(rCell As Range, vVal) As String
    Application.Volatile
    With rCell
        If .Value = Empty Then
            .Replace Empty, vVal, 1, , 0
        Else
            .Replace .Value, vVal, 1, , 0
        End If
    End With
End Function

Синтаксис функции:
=ChangeAnotherCell(G1;»новое значение»)

rCell(G1) — ячейка, в которой необходимо поменять значение. Должна отличаться от адреса ячейки, в которой записана сама функция. Например, если функция записана в ячейке A1, то в качестве аргумента rCell не может быть так же A1. В лучшем случае получите ошибку цикличности, в худшем — Excel завершиться аварийно, а файл может быть при этом безвозвратно поврежден.

vVal(«новое значение») — значение для записи в ячейку rCell. Может быть как произвольным текстом или числом, так и ссылкой на другую ячейку. Значение в ячейке rCell не удаляется после удаления функции ChangeAnotherCell.
Но как уже писал выше: лучше не особо надеяться на данный метод. Может иногда и не сработать. Например, если в ячейку rCell ранее не было занесено никакое значение, то функция может просто отказаться менять значение ячейки.

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

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
' Procedure : ChangeAnotherCell
' Purpose   : Функция меняет значение и формат указанной ячейки
' Аргументы:
'    rCell        - ячейка, в которой необходимо поменять значение.
'    vVal         - значение для записи в ячейку rCell.
'                   Произвольный текст или ссылка на ячейку.
'    bRepFormat   - ИСТИНА(TRUE) - будет скопирован формат из rFormatRng.
'    rFormatRng   - ссылка на ячейку, формат которой необходимо копировать.
'---------------------------------------------------------------------------------------
'
Function ChangeAnotherCell(rCell As Range, vVal, Optional bRepFormat As Boolean = False, Optional rFormatRng As Range = Nothing) As String
    Application.Volatile
 
    If bRepFormat Then
        If Not rFormatRng Is Nothing Then
            With Application.ReplaceFormat
                .Clear
                .Font.Bold = rFormatRng.Font.Bold
                .Font.ColorIndex = rFormatRng.Font.ColorIndex
                .Font.FontStyle = rFormatRng.Font.FontStyle
                .Borders.Color = rFormatRng.Borders.Color
                .Borders.Weight = rFormatRng.Borders.Weight
                If Val(Application.Version) >= 12 Then 'версии старше 2003 не поддерживают копирование заливки
                    .Font.Name = rFormatRng.Font.Name
                Else
                    .Interior.ColorIndex = rFormatRng.Interior.ColorIndex
                End If
            End With
        End If
    End If
    With rCell
        If .Value = Empty Then
            .Replace Empty, vVal, 1, , 0, , , bRepFormat
        Else
            .Replace .Value, vVal, 1, , 0, , , bRepFormat
        End If
    End With
    Application.ReplaceFormat.Clear
End Function

Синтаксис функции:
=ChangeAnotherCell(G1;»новое значение»;ИСТИНА;E14)

rCell(G1) — ячейка, в которой необходимо поменять значение. Должна отличаться от адреса ячейки, в которую записана сама функция.

vVal(«новое значение») — значение для записи в ячейку rCell. Может быть как произвольным текстом или числом, так и ссылкой на другую ячейку. Значение в ячейке rCell не удаляется после удаления функции ChangeAnotherCell.

bRepFormat(ИСТИНА) — если указан как ИСТИНА(TRUE) или 1, то так же меняется формат ячейки rCell. Формат копируется из ячейки, указанной аргументом rFormatRng. Поэтому в данном случае аргумент rFormatRng обязателен к указанию. Если ЛОЖЬ(FALSE), 0 или не указан — формат не копируется.

rFormatRng(E14) — ссылка на ячейку, формат которой необходимо копировать.


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Изменение значений других ячеек из пользовательской функции VBA Excel с помощью методов Range.Replace и Application.Volatile. Примеры кода.

В первых двух параграфах описано нетрадиционное использование процедуры Function, поэтому не применяйте его в серьезных проектах. Тестирование проводилось в Excel 2016.

Функция с методом Range.Replace

Пользовательская функция не предназначена для изменения значений ячеек, кроме той, в которой она расположена. Попытка присвоить какое-либо значение из функции другой ячейке приводит к неработоспособности функции и отображению в ячейке, где она расположена, сообщения «#ЗНАЧ!».

Но, как ни странно, внутри процедуры Function работает метод Range.Replace, которым мы воспользуемся для изменения значений других ячеек из пользовательской функции.

Пример 1
Эта функция заменяет значение ячейки Cell1 на значение ячейки Cell2 увеличенное на 100. Сама функция размещается в третьей ячейке, чтобы не возникла циклическая ссылка.

Function Primer1(Cell1 As Range, Cell2 As Range)

  Cell1.Replace Cell1, Cell2 + 100

End Function

В этом примере мы не присваиваем пользовательской функции значение, поэтому отображается значение по умолчанию – 0. Если объявить эту функцию как строковую: Function Primer1(Cell1 As Range, Cell2 As Range) as String, будет возвращена пустая строка.

Изменение значения ячейки C1 (Cell2) приведет к пересчету значения ячейки B1 (Cell1).

Попробуйте очистить или перезаписать ячейку B1 (Cell1), ничего не получится, так как функция Primer1 вновь перезапишет ее значением C1 (Cell2) + 100.

Метод Application.Volatile

Application.Volatile – это метод, который запускает пересчет функции при изменении значения любой ячейки рабочего листа, а не только той, которая присвоена объявленной в функции переменной. Метод Application.Volatile используется только в функциях.

Рассмотрим пересчет функции на следующем примере:

Пример 2

Function Primer2(Cell1 As Range, Cell2 As Range) As String

  Cell1.Replace Cell1, Cell2 + 100

  Range(«B2»).Replace Range(«B2»), Range(«C2») + Cell1

End Function

Эта функция будет пересчитываться только при изменении значений ячеек B1 и C1, присвоенных переменным Cell1 и Cell2. При изменении значения ячейки C2, значение ячейки B2 не изменится, так как не будет запущен пересчет функции Primer2.

Функция Primer2 начнет вести себя по-другому, если добавить в нее оператор Application.Volatile (переименуем ее в Primer3):

Пример 3

Function Primer3(Cell1 As Range, Cell2 As Range) As String

  Application.Volatile

  Cell1.Replace Cell1, Cell2 + 100

  Range(«B2»).Replace Range(«B2»), Range(«C2») + Cell1

End Function

Теперь при смене значения в ячейке C2, значение ячейки B2 тоже изменится.

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

Безопасное использование функции

Если вам все-таки хочется в важном проекте VBA Excel с помощью одной пользовательской функции изменять значения нескольких ячеек, есть полностью безопасный вариант.

Он заключается в добавлении дополнительного аргумента в пользовательскую функцию, с помощью которого для каждой ячейки можно вывести отдельный результат. Функция размещается в каждой изменяемой ячейке.

В простых случаях для выбора можно использовать функцию Choose или, в более сложных, оператор If…Then…Else и оператор Select Case.

Пример 4
Используем функцию Choose для выбора способа вычисления пользовательской функции в зависимости от значения дополнительного аргумента:

Function Primer4(Cell1 As Range, Cell2 As Range, a As Byte)

  On Error Resume Next

  Primer4 = Choose(a, Cell1 + Cell2, Cell1 Cell2, Cell1 * Cell2)

End Function

В функцию Primer4 добавлен дополнительный аргумент a, от которого зависит, какое действие будет произведено со значениями ячеек B1 и C1:

На следующем скриншоте представлены результаты вычисления функции в зависимости от значения аргумента a:

  1. В ячейке A1 вычисляется сумма значений ячеек B1 и C1 – аргумент a=1.
  2. В ячейке A2 вычисляется разность значений ячеек B2 и C2 – аргумент a=2.
  3. В ячейке A3 вычисляется произведение значений ячеек B3 и C3 – аргумент a=3.

Пример 5
Используем оператор If…Then…Else в сокращенном виде (If…Then…) для выбора способа вычисления функции в зависимости от значения дополнительного аргумента:

Function Primer5(Cell1 As Range, Cell2 As Range, a As Byte)

  If a = 1 Then Primer5 = Cell1 + Cell2

  If a = 2 Then Primer5 = Cell1 Cell2

  If a = 3 Then Primer5 = Cell1 * Cell2

End Function

Результаты будут те же, что и в четвертом примере.

Понравилась статья? Поделить с друзьями:
  • Excel функция значение по английскому языку
  • Excel функция заменяющая текст
  • Excel функция замены цвета
  • Excel функция замены символа
  • Excel функция если электроэнергия