Как изменить текст в формуле 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. Надеюсь, эти примеры окажутся полезными при решении ваших задач. 

Замена формул вычисляемой величиной

При замене формул их значениями Excel окончательно удаляет их. Если вы случайно заменяете формулу значением и хотите ее восстановить, нажмите кнопку Отменить Кнопка "Отменить" сразу после ввода или вжатия значения.

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

    Если формула является формула массива, выделите диапазон ячеек, содержащих формулу массива.

    Как выбрать диапазон, содержащий формулу массива

    1. Щелкните ячейку в формуле массива.

    2. На вкладке Главная в группе Редактирование нажмите кнопку Найти и выделить, а затем выберите команду Перейти.

    3. Нажмите кнопку Дополнительный.

    4. Щелкните Текущий массив.

  2. Нажмите кнопку Копировать Изображение кнопки.

  3. Нажмите кнопку В Изображение кнопки .

  4. Щелкните стрелку рядом с кнопкой Параметры в Изображение кнопкии выберите только значения.

В следующем примере показана формула в ячейке D2, которая умножает ячейки A2, B2 и скидку из ячейки C2 для расчета суммы счета для продажи. Чтобы скопировать фактическое значение вместо формулы из ячейки на другой книгу или на другой, можно преобразовать формулу в ячейку в ее значение, выстроив следующее:

  1. Нажмите F2, чтобы изменить ячейку.

  2. Нажмите F9, а затем ввод.

В строке формул показана формула.

После преобразования ячейки из формулы в значение в области формул отображается значение 1932,322. Обратите внимание, что 1932,322 — фактическое вычисляемого значения, а 1932,32 — значение, отображаемого в ячейке в валютном формате.

В строке формул показано значение.

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

Замена части формулы значением, полученным при ее вычислении

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

При замене части формулы ее значением ее часть восстановить невозможно.

  1. Щелкните ячейку с формулой.

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

  3. Чтобы вычислить выбранную часть, нажмите F9.

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

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

Преобразование формул в значения

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

  • Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
  • Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта (а то поймет, что вы заложили 300% маржи на всякий случай).
  • Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать, что это можно решить временным отключением автоматических вычислений на вкладке Формулы – Параметры вычислений).
  • Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании «сползут» все ссылки в формулах.

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

Способ 1. Классический

Этот способ прост, известен большинству пользователей и заключается в использовании специальной вставки:

  1. Выделите диапазон с формулами, которые нужно заменить на значения.
  2. Скопируйте его правой кнопкой мыши – Копировать (Copy).
  3. Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (Values):

    преобразование формул в значения в Excel
    либо наведитесь мышью на команду Специальная вставка (Paste Special), чтобы увидеть подменю:

    formulas-to-values2.png
    Из него можно выбрать варианты вставки значений с сохранением дизайна или числовых форматов исходных ячеек.

    В старых версиях Excel таких удобных желтых кнопочек нет, но можно просто выбрать команду Специальная вставка и затем опцию Значения (Paste Special — Values) в открывшемся диалоговом окне:

    formulas-to-values3.png

Способ 2. Только клавишами без мыши

При некотором навыке, можно проделать всё вышеперечисленное вообще на касаясь мыши:

  1. Копируем выделенный диапазон Ctrl+C
  2. Тут же вставляем обратно сочетанием Ctrl+V
  3. Жмём Ctrl, чтобы вызвать меню вариантов вставки
  4. Нажимаем клавишу с русской буквой З или используем стрелки, чтобы выбрать вариант Значения и подтверждаем выбор клавишей Enter:

Замена формул на значения соч.клавиш

Способ 3. Только мышью без клавиш или Ловкость Рук

Этот способ требует определенной сноровки, но будет заметно быстрее предыдущего. Делаем следующее:

  1. Выделяем диапазон с формулами на листе
  2. Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
  3. В появившемся контекстном меню после перетаскивания выбираем Копировать только значения (Copy As Values Only).

formulas-to-values4.gif

После небольшой тренировки делается такое действие очень легко и быстро. Главное, чтобы сосед под локоть не толкал и руки не дрожали ;)

Способ 4. Кнопка для вставки значений на Панели быстрого доступа

Ускорить специальную вставку можно, если добавить на панель быстрого доступа в левый верхний угол окна кнопку Вставить как значения. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar). В открывшемся окне выберите Все команды (All commands) в выпадающем списке, найдите кнопку Вставить значения (Paste Values) и добавьте ее на панель:

Добавление кнопки вставки значений на панель быстрого доступа

Теперь после копирования ячеек с формулами будет достаточно нажать на эту кнопку на панели быстрого доступа:

Кнопка вставки значений на панели быстрого доступа

Кроме того, по умолчанию всем кнопкам на этой панели присваивается сочетание клавиш Alt + цифра (нажимать последовательно). Если нажать на клавишу Alt, то Excel подскажет цифру, которая за это отвечает:

Подсветка горячих клавиш

Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу

Если вас не пугает слово «макросы», то это будет, пожалуй, самый быстрый способ.

Макрос для превращения всех формул в значения в выделенном диапазоне (или нескольких диапазонах, выделенных одновременно с Ctrl) выглядит так:

Sub Formulas_To_Values_Selection()
'преобразование формул в значения в выделенном диапазоне(ах)
    Dim smallrng As Range
    For Each smallrng In Selection.Areas
        smallrng.Value = smallrng.Value
    Next smallrng
End Sub

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

Sub Formulas_To_Values_Sheet()
'преобразование формул в значения на текущем листе
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub
 

И, наконец, для превращения всех формул в книге на всех листах придется использовать вот такую конструкцию:

Sub Formulas_To_Values_Book()
'преобразование формул в значения во всей книге
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next ws
End Sub
 

Код нужных макросов можно скопировать в новый модуль вашего файла (жмем Alt+F11 чтобы попасть в Visual Basic, далее Insert — Module). Запускать их потом можно через вкладку Разработчик — Макросы (Developer — Macros) или сочетанием клавиш Alt+F8. Макросы будут работать в любой книге, пока открыт файл, где они хранятся. И помните, пожалуйста, о том, что действия выполненные макросом невозможно отменить — применяйте их с осторожностью. 

Способ 6. Для ленивых

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

formulas-to-values.png

В этом случае:

  • всё будет максимально быстро и просто
  • можно откатить ошибочную конвертацию отменой последнего действия или сочетанием Ctrl+Z как обычно
  • в отличие от предыдущего способа, этот макрос корректно работает, если на листе есть скрытые строки/столбцы или включены фильтры
  • любой из этих команд можно назначить любое удобное вам сочетание клавиш в Диспетчере горячих клавиш PLEX

Ссылки по теме

  • Что такое макросы, как их использовать, копировать и запускать
  • Как скопировать формулы без сдвига ссылок
  • Как считать в Excel без формул

Редактирование формул

Содержание
Редактирование формул
Мастер функций
Редактор формул в ячейке
Область редактора формул
Автозавершение названия функции
Выбор диапазонов
Структурные выражения
Комментарии к формуле
Отладка формул
Разложение формулы на составляющие
Вычисления внутри формулы
Влияющие значения
Активизация редактора формул
Использование кнопок зависимостей формулы
Принудительное выделение влияющих ячеек

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

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

Ограничения на сложность формул стали еще менее строгими при изменении формата файла Excel на xlsx (версия 2007 и более поздние):

  XLS XLSX
Длина формулы
1000  8000
Уровни вложенности
7  64

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

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

Редактирование формул

В Excel имеется несколько возможностей для написания математического выражения:

  • Мастер функций
  • Редактор формул непосредственно в ячейке
  • Редактор формул в отдельной области главного окна

У каждого метода есть свои достоинства и недостатки. Разберем их в контексте создания сложных формул.

Мастер функций

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

alt

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

Редактор формул в ячейке

Параметры Excel по умолчанию установлены таким образом, что при вводе формулы с клавиатуры (нажатии кнопки «=») редактирование выражения осуществляется непосредственно в активной ячейке:

alt

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

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

Область редактора формул

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

alt

alt

В версиях Excel до 2007 (12.0) область формул при работе с длинными или многострочными выражениями расширялась по вертикали автоматически. Что также иногда было неудобно, так как вело к перекрытию области заголовков и ячеек. В последующих версиях эта область стала изменяемой в размерах и приобрела собственную полосу вертикальной прокрутки. По умолчанию размер области формул отображает одну строку.

Автозавершение названия функции

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

alt

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

Выбор диапазонов

Если в качестве параметров функций используются ячейки или диапазоны ячеек, то в большинстве случаев для их выбора проще использовать выделение мышью непосредственно в области рабочего листа. Это очень удобный и наглядный способ работы, и осваивается он довольно быстро. Другое дело, что многие пользователи после этого остаются в уверенности, что только так и можно указывать параметры функции. Это не так. Возможность выделения при помощи мыши всего лишь интерфейсное средство, облегчающее ввод с клавиатуры. То есть, если ввести выражение «A1:A1000» – это будет равносильно выделению мышью тысячи ячеек первого столбца. Очевидно, что это не очень просто – требуется прокрутка видимой области выделения (скроллинг) с точным поиском тысячной строки. В некоторых случаях просто ввести адрес с клавиатуры даже быстрее: в примере набирается «a1:a1000» (регистр не важен), это 8 нажатий клавиш.

Еще одним способом является смешанный тип ввода, когда сначала выделяется начало диапазона при помощи мыши, а правильный размер вводитсья с клавиатуры. В предыдущем примере, можно выделить A1:A10 (десять видимых ячеек), потом сразу же ввести с клавиатуры «00» — получится искомый диапазон A1:A1000. Выражение будет работать верно, но скроллинг при помощи мыши при этом не требуется.

Абсолютная и относительная адресация диапазонов задается только при помощи клавиатуры одним из нескольких доступных способов:

  • При работе в A1-адресации явным указателем признака абсолютной адресации является символ «$» (доллар) ввод с клавиатуры «$a$1:$a$1000».
  • При работе в R1C1-адресации абсолютные ссылки указываются без использования квадратных скобок – ввод с клавиатуры «R1C1:R1C1000».
  • Выделение диапазона, а затем последовательное нажатие клавиши F4 для подбора нужного типа адресации. В примере адрес будет меняться следующим образом:
    1. $A$1:$A$1000
    2. A$1:A$1000
    3. $A1:$A1000
    4. A1:A1000 (исходное состояние)

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

Структурные выражения

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

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

alt

Теперь обратите внимание ту же формулу, но записанную в многострочном варианте:

alt

Очевидно, что второй вариант более понятен по смыслу выполняемых расчетов.

При вводе многострочных выражений используется сочетание клавиш Alt+Enter для принудительного переноса строки.

Также в качестве разделителя внутри выражений можно использовать разное количество пробелов на разных уровнях скобок – этот прием также немного облегчает восприятие сложных выражений.

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

 

=ЕСЛИ($BD11=0;
  "";
  СУММ(
    ЕСЛИ(Доходы!$I$6:$I$503=$BD11;
        ЕСЛИ(Доходы!$H$6:$H$503=C$7;
          Доходы!$K$6:$K$503;
          0
        );
        0
    )
  )
+
  ЕСЛИ($BG110;
    0;
    СУММ(
      ЕСЛИ($BF12:$BF$59=$BD11;
        D12:D$59;
        0
      )
    )
  )
)
 

Комментарии к формуле

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

Существует способ написания комментариев внутри формулы. Для этого используется любая функция, преобразующая текст в число, например: ДЛСТР, КОДСИМВ; затем это число прямо в формуле умножается на ноль, а результат прибавляется в конец формулы.

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

alt

Отладка формул

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

Вначале только общее замечание. Перед тем как вносить исправления или делать дополнительные вычисления, скопируйте формулу в соседнюю ячейку, чтобы в дальнейшем была возможность вернуться к оригинальному варианту. Не стоит забывать также о возможности отмены последних действий (Ctrl+z).

Разложение формулы на составляющие

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

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

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

Есть противопоказания к применению этого метода.

  • Если формула содержит функции вычисляемой адресации (СМЕЩ, СТРОКА, ЧИСЛСТОЛБ, ДВССЫЛ), то применять метод разложения с использованием других ячеек некорректно. Надо четко отслеживать изменения в адресах при перемещении составляющих формулы в другие ячейки, что не всегда удобно.
  • Если в сложной формуле используется обработка массивов, то надо четко понимать, какие промежуточные ячейки требуют такой обработки (вводятся через Ctrl+Shift+Enter), а какие нет. При обратной сборке формулы это также надо учитывать.

Вычисления внутри формулы

Это, пожалуй, самый полезный способ отладки формул. Excel позволяет проводить вычисления выражений внутри сложной формулы. Для этого в редакторе формул выделяется блок текста, который должен быть вычислен, и нажимается клавиша F9 – в результате выделенный блок будет заменен на рассчитанное значение. Можно выделить другой блок, и повторить расчет, не покидая редактор формул.

alt

alt

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

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

Влияющие значения

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

Отобразить влияющие ячейки можно несколькими способами.

Активизация редактора формул

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

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

Использование кнопок зависимостей формулы

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

alt

alt

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

Ссылки на влияющие ячейки, вызывающие ошибки в текущей формуле выделяются красным цветом стрелки.

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

Неприятным недостатком этого метода отладки формул является сброс возможности отмены операций после любого нажатия на кнопку графических зависимостей (не работает Ctrl+z).

Принудительное выделение влияющих ячеек

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

Для проведения операции в Excel 2007/2010 выберите на ленте «Главная Найти и выделить Выделение групп ячеек»; в открывшемся диалоге отметьте пункт «Влияющие ячейки» (только верхнего или всех уровней) и нажмите «Ок».

Можно использовать последовательную комбинацию клавиш (русская раскладка): Ctrl+п, Alt+в, в, Enter (работает и в предыдущих версиях Excel). Если Windows настроен по умолчанию в английскую раскладку клавиатуры (см. региональные настройки), то для этих же целей доступна комбинация клавиш Ctrl+[ (Ctrl+] для зависимых ячеек).

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

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

Смотри также

» Преимущества нового формата рабочей книги

Начиная с версии 2007, Excel позволяет использовать новый формат рабочей книги (XLSX). По сравнению с прошлым форматом (XLS), поддерживающимся,…

» Проблемы Excel

Большинство статей на нашем сайте прямо или косвенно описывают возможности и достоинства Excel. Это программа используется ежедневно…

» Основные принципы оптимизации работы в электронных таблицах

Знание специальных приемов работы в электронных таблицах Excel позволяет в разы сократить время разработки моделей, повысить…

» Надстройки Excel

Те, кто программирует на VBA для Excel, в определенный момент задумываются над распространением своих приложений в качестве независимых…

» Автоматизация в Excel

Создание программного кода для автоматизации определенных процедур открывает практически безграничные возможности по развитию и…

В этой статье описаны синтаксис формулы и использование ЗАМЕНИТЬ и ЗАМЕНИТЬБ в Microsoft Excel.

Описание

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

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

Эти функции могут быть доступны не на всех языках.

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

Функция ЗАМЕНИТЬ всегда считает каждый символ (одно- или двухбайтовый) за один вне зависимости от языка по умолчанию.

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

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

Аргументы функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ описаны ниже.

Стар_текст Обязательный. Текст, в котором требуется заменить некоторые символы.

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

Число_знаков Обязательный. Число символов в старом тексте, которые требуется ЗАМЕНИТЬ новым текстом.

Число_байтов Обязательный. Число байтов старого текста, который требуется ЗАМЕНИТЬБ новым текстом.

Нов_текст Обязательный. Текст, который заменит символы в старом тексте.

Пример

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

Функция ЗАМЕНИТЬ() в EXCEL

Функция ЗАМЕНИТЬ( ) , английский вариант REPLACE(), замещает указанную часть знаков текстовой строки другой строкой текста. «Указанную часть знаков» означает, что нужно указать начальную позицию и длину заменяемой части строки. Функция используется редко, но имеет плюс: позволяет легко вставить в указанную позицию строки новый текст.

Синтаксис функции

ЗАМЕНИТЬ ( исходный_текст ; нач_поз ; число_знаков ; новый_текст )

Исходный_текст — текст, в котором требуется заменить некоторые знаки. Нач_поз — позиция знака в Исходном_тексте , начиная с которой знаки заменяются текстом новый_текст . Число_знаков — число знаков в Исходном_тексте , которые заменяются текстом новый_текст . Новый_текст — текст, который заменяет знаки в Исходном_тексте .

Функция ЗАМЕНИТЬ() vs ПОДСТАВИТЬ()

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

При замене определенного текста функцию ЗАМЕНИТЬ() использовать неудобно. Гораздо удобнее воспользоваться функцией ПОДСТАВИТЬ() .

Пусть в ячейке А2 введена строка Продажи (январь) . Чтобы заменить слово январь , на февраль , запишем формулы:

=ЗАМЕНИТЬ(A2;10;6;»февраль») =ПОДСТАВИТЬ(A2; «январь»;»февраль»)

т.е. для функции ЗАМЕНИТЬ() потребовалось вычислить начальную позицию слова январь (10) и его длину (6). Это не удобно, функция ПОДСТАВИТЬ() справляется с задачей гораздо проще.

Кроме того, функция ЗАМЕНИТЬ() заменяет по понятным причинам только одно вхождение строки, функция ПОДСТАВИТЬ() может заменить все вхождения или только первое, только второе и т.д. Поясним на примере. Пусть в ячейке А2 введена строка Продажи (январь), прибыль (январь) . Запишем формулы: =ЗАМЕНИТЬ(A2;10;6;»февраль») =ПОДСТАВИТЬ(A2; «январь»;»февраль») получим в первом случае строку Продажи (февраль), прибыль (январь) , во втором — Продажи (февраль), прибыль (февраль) . Записав формулу =ПОДСТАВИТЬ(A2; «январь»;»февраль»;2) получим строку Продажи (январь), прибыль (февраль) .

Кроме того, функция ПОДСТАВИТЬ() чувствительна к РЕгиСТру. Записав =ПОДСТАВИТЬ(A2; «ЯНВАРЬ»;»февраль») получим строку без изменений Продажи (январь), прибыль (январь) , т.к. для функции ПОДСТАВИТЬ() «ЯНВАРЬ» не тоже самое, что «январь».

Использование функции для вставки нового текста в строку

Функцию ЗАМЕНИТЬ() удобно использовать для вставки в строку нового текста. Например, имеется перечень артикулов товаров вида » ID-567(ASD) «, необходимо перед текстом ASD вставить новый текст Micro , чтобы получилось » ID-567(MicroASD) «. Для этого напишем простую формулу: =ЗАМЕНИТЬ(A2;8;0;»Micro»).

Как сделать массовую замену формул

Скопированные формулы повторяют имеющиеся, но ссылаются не на те ячейки, которые нам нужны. Это происходит из-за того, что в одном листе (Форма2) для расчета показателя за год используется всего одна ячейка, а в другом листе (Форма1) — 5 ячеек.

Т.е. в части ссылок на лист «Форма2» ссылки при копировании автоматически идут на нужные ячейки, а в листе «Форма1» нам придется передвинуть формулы на 4 ячейки (причем речь идет о буквенных обозначениях, цифровые меняться не будут).

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

В нашем случае, второй столбик после копирования формулы ссылается в листе «Форма1» на ячейки J, K, L, M, N, в то время как для правильного результата должны ссылаться на M, N, O, P, Q. Как видим, две буквы повторяются. Их мы оставим. Значит, нам останется поменять J, K, L на O, P, Q.

А дальше все проще простого. Выделяем нужный столбец по серому полю (обязательно, иначе мы, не желая того, можем поменять значения других ячеек), вызываем функцию «поиска и замены» и меняем J на O, K на P, L на Q и т.д.

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

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

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как изменить текст в форме word
  • Как изменить текст в таблице excel
  • Как изменить текст в отсканированном документе в word
  • Как изменить текст в легенде диаграммы word
  • Как изменить текст в круговой диаграмме в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии