При импорте данных из CSV, баз данных или веб-страниц в Microsoft Excel кавычки часто становятся лишними символами, мешающими сортировке, фильтрации или преобразованию текста в числа. Например, значения вроде "123" или "Иванов" воспринимаются как текстовые строки, даже если должны быть числовыми или датами. Проблема усугубляется, когда кавычки дублируются (""Пример"") или комбинируются с другими символами ("ID:100"). В 80% случаев достаточно стандартного инструмента «Найти и заменить», но для сложных сценариев (например, при работе с JSON-данными или формулами) требуются альтернативные подходы.
В этой статье разберём 10 способов удаления или замены кавычек — от базовых (ручная замена, функция ПОДСТАВИТЬ) до продвинутых (Power Query, VBA-скрипты). Особое внимание уделим нюансам: как сохранить кавычки внутри текста (например, в фразах типа ООО "Ромашка"), как обработать тысячи строк без потери данных, и почему иногда Excel добавляет кавычки автоматически (и как это отключить).
1. Стандартная замена через «Найти и заменить»
Самый быстрый метод для однотипных кавычек — инструмент «Найти и заменить» (Ctrl+H). Он подходит, если кавычки одинаковые по всему документу и не являются частью сложных выражений. Алгоритм:
- Выделите диапазон ячеек (или весь лист —
Ctrl+A). - Нажмите
Ctrl+H, в поле «Найти»** введите"(одну кавычку). - Поле «Заменить на»** оставьте пустым (для удаления) или введите замену (например, пробел или апостроф
'). - Нажмите «Заменить всё»** — Excel покажет количество изменений.
⚠️ Внимание: Если в тексте есть полезные кавычки (например, в названиях компаний), этот метод удалит их все. Для избирательной замены используйте ПОДСТАВИТЬ (раздел 2).
2. Функция ПОДСТАВИТЬ для избирательной замены
Когда кавычки нужно заменить только в определённых ячейках или по условию, используйте функцию =ПОДСТАВИТЬ(). Синтаксис:
=ПОДСТАВИТЬ(текст; старый_текст; новый_текст)
Примеры:
- 📌
=ПОДСТАВИТЬ(A1; """"; "")— удаляет все кавычки из ячейкиA1. - 📌
=ПОДСТАВИТЬ(A1; """"; "'")— заменяет двойные кавычки на одинарные. - 📌
=ПОДСТАВИТЬ(A1; " "" "; " ")— убирает кавычки, но сохраняет пробелы вокруг них (полезно для чисел вроде" 100 ").
🔹 Нюанс: Если кавычка является первым символом в ячейке, Excel может воспринимать её как маркер текстового формата. Чтобы этого избежать, используйте комбинацию с ЗНАЧЕН():
=ЗНАЧЕН(ПОДСТАВИТЬ(A1; """"; ""))
Почему Excel добавляет кавычки автоматически?
При импорте данных из CSV или текстового файла Excel может оборачивать текстовые значения в кавычки, если они содержат разделители (запятые, точки с запятой) или специальные символы. Чтобы отключить это:
1. При импорте выберите формат данных «Текст» вместо «Общий».
2. В настройках региональных стандартов (Файл → Параметры → Дополнительно) снимите флажок «Использовать системные разделители»**.
3. Замена кавычек в формулах с помощью НАЙТИ и ЗАМЕНИТЬ
Если кавычки мешают в формулах (например, при конкатенации текста), используйте комбинацию функций НАЙТИ() и ЗАМЕНИТЬ(). Это полезно, когда нужно заменить кавычки только в части строки.
Пример: заменить кавычки в ячейке A1, но только если они стоят в начале или конце:
=ЕСЛИ(ЛЕВСИМВ(A1)=""""; ПРАВСИМВ(A1; ДЛСТР(A1)-1); ЕСЛИ(ПРАВСИМВ(A1)=""""; ЛЕВСИМВ(A1; ДЛСТР(A1)-1); A1))
Для замены всех кавычек в формуле используйте:
=ЗАМЕНИТЬ(A1; """"; "")
| Функция | Пример использования | Результат |
|---|---|---|
ПОДСТАВИТЬ |
=ПОДСТАВИТЬ(A1; """"; "'") |
Заменяет "текст" на 'текст' |
ЗАМЕНИТЬ |
=ЗАМЕНИТЬ(A1; 1; 1; "") |
Удаляет первый символ (если это кавычка) |
НАЙТИ + ПСТР |
=ПСТР(A1; 2; ДЛСТР(A1)-2) |
Убирает первые и последние кавычки |
4. Power Query: обработка больших объёмов данных
Для обработки тысяч строк (например, при импорте из SQL или JSON) удобнее использовать Power Query (Данные → Получить данные → Из текста/CSV). Алгоритм:
- Импортируйте файл через
Power Query. - Выделите столбец с кавычками, нажмите «Заменить значения»** (
Главная → Заменить значения). - В поле «Значение для поиска» введите
", в «Замена» — оставьте пустым или укажите новый символ. - Нажмите «Закрыть и загрузить»**.
🔹 Преимущество: Power Query сохраняет шаги обработки, поэтому при обновлении данных кавычки будут удаляться автоматически.
1. Проверьте кодировку файла (должна быть UTF-8).
2. Разделите столбцы по разделителю (если данные в формате CSV).
3. Удалите пустые строки (Главная → Удалить строки → Удалить пустые строки).
4. Преобразуйте текст в нужный формат (Преобразовать → Формат).-->
5. VBA-скрипт для автоматизации
Если замену кавычек приходится делать регулярно, напишите макрос на VBA. Пример кода для удаления всех кавычек в выделенном диапазоне:
Sub RemoveQuotes()
Dim rng As Range
For Each rng In Selection
If Not IsEmpty(rng.Value) Then
rng.Value = Replace(rng.Value, """", "")
End If
Next rng
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки в Excel и запустите макрос (
F5).
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов). Для избирательной замены модифицируйте условие в коде (например, добавив проверку на начало/конец строки).
6. Обработка JSON-данных с кавычками
При импорте JSON-файлов в Excel кавычки могут дублироваться или искажать структуру данных. Например, строка {"name": "Иван"} после импорта превращается в "{""name"": ""Иван""}". Чтобы исправить это:
- Используйте Power Query с параметром «JSON»** при импорте.
- Для ручной обработки примените формулу:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "{"""; "{"); """}"; "}") - Если JSON вложенный, используйте
VBAили специализированные парсеры (например, Python с библиотекойjson).
🔹 Совет: Для сложных JSON-структур лучше использовать внешние инструменты (например, Notepad++ с плагином JSON Viewer), а затем импортировать очищенные данные в Excel.
7. Как сохранить «полезные» кавычки
Иногда кавычки являются частью данных (например, в названиях ООО "Альфа"). Чтобы удалить только лишние кавычки, используйте комбинацию функций:
=ЕСЛИ(И(ЛЕВСИМВ(A1)=""""; ПРАВСИМВ(A1)=""""); ПСТР(A1; 2; ДЛСТР(A1)-2); A1)
Эта формула удаляет кавычки только если они стоят в начале и конце строки, сохраняя внутренние.
- 📌 Для замены только начальных кавычек:
=ЕСЛИ(ЛЕВСИМВ(A1)=""""; ПРАВСИМВ(A1; ДЛСТР(A1)-1); A1). - 📌 Для замены только конечных кавычек:
=ЕСЛИ(ПРАВСИМВ(A1)=""""; ЛЕВСИМВ(A1; ДЛСТР(A1)-1); A1).
8. Почему Excel добавляет кавычки и как это предотвратить
Excel автоматически добавляет кавычки в трёх случаях:
- Импорт CSV: если разделитель совпадает с символами в данных (например, запятая в адресе
"Москва, ул. Ленина"). - Текстовый формат: когда ячейка начинается с
=,+или-, Excel оборачивает её в кавычки, чтобы избежать ошибок. - Экспорт в CSV: по умолчанию текстовые поля экранируются кавычками.
Как предотвратить:
- 📌 При импорте CSV выберите «Текстовый формат»** для столбцов с числами.
- 📌 В настройках региональных стандартов (
Параметры → Дополнительно) отключите «Использовать системные разделители»**. - 📌 Для экспорта в CSV без кавычек используйте Power Query или VBA.
⚠️ Внимание: Если после удаления кавычек числа отображаются как текст (выровнены по левому краю), примените формат «Общий»** или используйте функцию ЗНАЧЕН().
FAQ: Частые вопросы о замене кавычек в Excel
❓ Как заменить кавычки только в начале строки?
Используйте формулу: =ЕСЛИ(ЛЕВСИМВ(A1)=""""; ПРАВСИМВ(A1; ДЛСТР(A1)-1); A1). Она проверяет первый символ и удаляет его, если это кавычка.
❓ Почему после замены кавычек числа стали текстом?
Excel автоматически преобразует ячейки в текстовый формат, если они начинались с кавычки. Чтобы исправить, выделите ячейки, нажмите «Текст по столбцам» (Данные → Текст по столбцам) и выберите формат «Общий».
❓ Как удалить кавычки в формуле, не ломая её?
Если кавычки внутри формулы (например, =СЖПРОБЕЛЫ(" текст ")), используйте ПОДСТАВИТЬ в другой ячейке: =ПОДСТАВИТЬ(ФОРМУЛА; """"; ""). Для редактирования самой формулы нажмите F2 и удалите кавычки вручную.
❓ Можно ли заменить кавычки в защищённом листе?
Нет, инструмент «Найти и заменить»** не работает на защищённых листах. Сначала снимите защиту (Рецензирование → Снять защиту листа), затем выполните замену.
❓ Как обработать кавычки в данных с переносами строк?
Если текст содержит разрывы строк (Alt+Enter), используйте ПОДСТАВИТЬ с символом CHAR(10) для переноса. Пример: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; """"; ""); CHAR(10); " ").