Конвертация данных в Excel: от текста к числам, от дат к форматам

Microsoft Excel — это не просто табличный редактор, а мощный инструмент для трансформации данных. Часто пользователи сталкиваются с задачей конвертации одного типа информации в другой: текст в числа, даты в нужный формат, разделение ячеек на столбцы или объединение данных. Без правильных методов эти операции занимают часы ручной работы. В этой статье разберём 10 практических способов конвертации — от базовых до продвинутых, с формулами, горячими клавишами и скрытыми функциями Excel.

Конвертация может понадобиться в самых разных сценариях: при импорте данных из CSV, когда числа отображаются как текст, при необходимости изменить формат даты для отчётов или при подготовке данных для анализа. Главная проблема — Excel не всегда автоматически распознаёт формат ячеек, что приводит к ошибкам в вычислениях или сортировке. Например, дата "01.12.2023" может восприниматься как текст, а число "1 000" — как строка из-за пробела. Решения этих задач и станут основой нашего руководства.

Особое внимание уделим скрытым ловушкам: почему функция ЗНАЧЕН() иногда не работает, как избежать ошибки #ЗНАЧ! при конвертации, и почему ручное форматирование ячеек не всегда решает проблему. Также рассмотрим автоматизацию через Power Query — инструмент, который экономит до 80% времени на преобразование больших массивов данных.

1. Конвертация текста в числа: 3 надёжных способа

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

Способ 1: Специальная вставка. Выделите пустую ячейку, скопируйте её (Ctrl+C), затем выделите проблемные ячейки и выберите Главная → Вставить → Специальная вставка → Умножить. Это заставит Excel пересчитать значения как числа.

Способ 2: Функция ЗНАЧЕН(). В соседней ячейке введите формулу:

=ЗНАЧЕН(A1)

Затем протяните её на весь столбец. Если появляется ошибка #ЗНАЧ!, значит в ячейке есть недопустимые символы (например, буквы или знаки валюты).

Почему ЗНАЧЕН() не работает с дробными числами?

Если текстовое число содержит запятую как разделитель (например, "1,5"), а в настройках Excel точка, функция вернёт ошибку. Решение: замените запятые на точки через НАЙТИ/ЗАМЕНИТЬ или используйте формулу =ЗНАЧЕН(ПОДСТАВИТЬ(A1;",";".")).

Способ 3: Текст по столбцам. Перейдите в Данные → Текст по столбцам → С разделителями → Готово. Этот метод полезен, если числа хранятся с лишними символами (например, "$100" или "100 руб").

⚠️ Внимание: Если после конвертации числа отображаются в экспоненциальном формате (например, 1.23E+10), расширьте столбец или измените формат ячейки на Числовой.

2. Преобразование дат: из текста в формат даты

Дата в формате "20231231" или "31/12/2023" часто импортируется как текст. Чтобы Excel распознал её как дату, используйте эти методы:

Формулы для разных форматов:

  • 📅 Для формата ГГГГММДД (например, "20231231"): =ДАТА(ЛЕВСИМВ(A1;4);ПСТР(A1;5;2);ПСТР(A1;7;2))
  • 📅 Для формата ДД.ММ.ГГГГ с точкой: =ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "."; "/"))
  • 📅 Для UNIX-времени (количество секунд с 1970 года): =ДАТА(1970;1;1)+A1/86400

Если даты хранятся в формате ISO 8601 (например, "2023-12-31T23:59:59"), используйте комбинацию функций:

=ДАТАЗНАЧ(ЛЕВСИМВ(A1;10)) + ВРЕМЗНАЧ(ПСТР(A1;12;8))

Альтернатива: Текст по столбцам. Выделите столбец с датами, перейдите в Данные → Текст по столбцам → Формат → ДМГ (или другой подходящий формат).

Исходный текстФормулаРезультат
"31.12.2023"=ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "."; "/"))31.12.2023 (формат даты)
"20231231"=ДАТА(ЛЕВСИМВ(A1;4);ПСТР(A1;5;2);ПСТР(A1;7;2))31.12.2023
"Dec 31, 2023"=ДАТАЗНАЧ(A1)31.12.2023
📊 Какой формат дат вы чаще всего конвертируете?
ГГГГММДД (20231231)
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
UNIX-время
Другой

3. Конвертация чисел в текст с сохранением формата

Обратная задача — преобразовать числа в текст, сохраняя ведущие нули (например, для артикулов "00123") или специальные символы. Здесь поможет:

Функция ТЕКСТ():

=ТЕКСТ(A1; "00000")  

Форматирование ячеек:

  1. Выделите ячейки, кликните правой кнопкой → Формат ячеек.
  2. Выберите категорию Текстовый.
  3. Для ведущих нулей используйте пользовательский формат: введите 00000 в поле Тип.

Если нужно добавить текст к числу (например, "Артикул: 123"), используйте оператор конкатенации:

="Артикул: " & ТЕКСТ(A1; "000")
⚠️ Внимание: После конвертации числа в текст математические операции с этими ячейками станут невозможны. Чтобы вернуть числовой формат, используйте ЗНАЧЕН().

4. Разделение и объединение данных в ячейках

Частая задача — разбить полное имя "Иванов Иван Иванович" на фамилию, имя и отчество или объединить несколько ячеек в одну. Для этого есть специализированные инструменты и функции.

Разделение текста:

  • 🔪 По пробелам: Данные → Текст по столбцам → Разделитель → Пробел
  • 🔪 По символу: используйте формулу =РАЗДЕЛИТЬ(A1; ";") (в новых версиях Excel)
  • 🔪 По фиксированной длине: в том же инструменте выберите Фиксированная ширина

Объединение ячеек:

  • 🔗 Простое объединение: =A1 & " " & B1 & " " & C1
  • 🔗 С функцией СЦЕПИТЬ (или ТЕКСТСОЕД в новых версиях): =ТЕКСТСОЕДИНИТЬ("; "; ИСТИНА; A1:C1)

Убедитесь, что в соседних столбцах есть свободное место

Проверьте, нет ли лишних пробелов в данных

Сохраните оригинальные данные (на случай ошибки)

Используйте предварительный просмотр в инструменте "Текст по столбцам"-->

Для сложных случаев (например, когда разделитель — запятая, но внутри текста тоже есть запятые) используйте Power Query:

  1. Выделите данные → Данные → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец → Разделить столбец → По разделителю.
  3. Укажите разделитель и настройте параметры.

5. Конвертация валют и единиц измерения

Если вам нужно перевести рубли в доллары, килограммы в фунты или градусы Цельсия в Фаренгейты, Excel предлагает несколько подходов:

Простые формулы:

  • 💰 Валюта: =A1 * 90 (где 90 — текущий курс доллара)
  • ⚖️ Вес: =A1 * 2.20462 (килограммы в фунты)
  • 🌡️ Температура: =A1 * 9/5 + 32 (Цельсий в Фаренгейт)

Динамический курс валют: Используйте функцию СТОК!Цена() (требует подключения к интернету):

=СТОК!Цена("USD/RUB") * A1

Для массовой конвертации создайте таблицу с коэффициентами и используйте ВПР():

=A2 * ВПР(B2; ТаблицаКурсов; 2; ЛОЖЬ)

Где ТаблицаКурсов — диапазон с парами валют и их курсами.

⚠️ Внимание: При работе с финансовыми данными всегда проверяйте актуальность курсов. Функция СТОК!Цена() может возвращать задержанные данные (до 15 минут).

6. Конвертация форматов файлов через Excel

Excel не только преобразовывает данные внутри файла, но и сам может служить мостом между форматами. Например, конвертация CSV в XLSX, TXT в таблицу или экспорт данных в PDF.

Импорт данных:

  • 📄 Из CSV/TXT: Данные → Из текстового файла, затем настройте разделители и форматы столбцов.
  • 📄 Из JSON/XML: в Power Query выберите Из других источников → Из JSON/XML.

Экспорт данных:

  • 📥 В PDF: Файл → Экспорт → Создать PDF/XPS.
  • 📥 В CSV: Файл → Сохранить как → CSV (разделители — запятые).

Excel 2016 и новее поддерживает прямой импорт из веб-страниц через Данные → Из интернета, что позволяет конвертировать HTML-таблицы в редактируемый формат за несколько кликов.

Исходный форматЦелевой форматМетод
CSVXLSXОткрыть в Excel → Сохранить как XLSX
PDF (таблицы)ExcelИспользовать Adobe Acrobat или онлайн-конвертеры
JSONТаблица ExcelPower Query → Из JSON
XMLExcelДанные → Из других источников → Из XML

7. Автоматизация конвертации с помощью Power Query

Power Query (или Get & Transform в новых версиях) — это революционный инструмент для преобразования данных. Он позволяет:

  • 🔄 Объединять несколько файлов в одну таблицу.
  • 🧹 Очищать данные (удалять пустые строки, исправлять ошибки).
  • 🔀 Транспонировать таблицы (менять строки и столбцы местами).
  • 📊 Преобразовывать форматы (например, текст в даты) для тысяч строк за секунды.

Пример: Конвертация текста в числа для всего столбца:

  1. Выделите данные → Данные → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец → Преобразовать → Тип данных → Целое число.
  3. Нажмите Закрыть и загрузить.

Преимущества Power Query:

  • ⚡ Обрабатывает миллионы строк без зависаний.
  • 🔄 Сохраняет шаги преобразования для повторного использования.
  • 📁 Поддерживает подключение к базам данных, API и облачным сервисам.

8. Продвинутые техники: VBA и пользовательские функции

Для нестандартных задач, которые не решаются стандартными средствами, подойдёт VBA (Visual Basic for Applications). Например, рекурсивная конвертация вложенных структур или обработка данных с внешними зависимостями.

Пример 1: Конвертация всех ячеек на листе в верхний регистр:

Sub ConvertToUpperCase()

Dim cell As Range

For Each cell In ActiveSheet.UsedRange

If Not IsEmpty(cell) Then

cell.Value = UCase(cell.Value)

End If

Next cell

End Sub

Пример 2: Пользовательская функция для конвертации римских чисел:

Function RomanToArabic(roman As String) As Integer

Dim romanNumerals As Object, i As Integer, result As Integer

Set romanNumerals = CreateObject("Scripting.Dictionary")

romanNumerals.Add "I", 1: romanNumerals.Add "V", 5: romanNumerals.Add "X", 10

romanNumerals.Add "L", 50: romanNumerals.Add "C", 100: romanNumerals.Add "D", 500

romanNumerals.Add "M", 1000

For i = 1 To Len(roman)

If i < Len(roman) And romanNumerals(Mid(roman, i, 1)) < romanNumerals(Mid(roman, i + 1, 1)) Then

result = result - romanNumerals(Mid(roman, i, 1))

Else

result = result + romanNumerals(Mid(roman, i, 1))

End If

Next i

RomanToArabic = result

End Function

Теперь в Excel можно использовать =RomanToArabic("XIV"), чтобы получить 14.

⚠️ Внимание: Перед запуском VBA-скриптов сохраните файл в формате .xlsm (с поддержкой макросов) и включите макросы в настройках безопасности (Файл → Параметры → Центр управления безопасностью).

FAQ: Ответы на частые вопросы

Как конвертировать время из текстового формата "14:30:45" в числовой?

Используйте функцию ВРЕМЗНАЧ():

=ВРЕМЗНАЧ(A1)

Если формат нестандартный (например, "14-30-45"), сначала замените разделители:

=ВРЕМЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "-"; ":"); " "; ""))
Почему после конвертации числа в текст функция ПОИСКПОЗ не находит значения?

Функция ПОИСКПОЗ чувствительна к формату данных. Если искать текстовое "100" в столбце с числовыми 100, результат будет ошибкой. Решение:

  • Приведите оба значения к одному формату: =ПОИСКПОЗ(ТЕКСТ(100; "0"); ТекстовыйСтолбец; 0)
  • Или конвертируйте числовой столбец в текст: =ПОИСКПОЗ("100"; ТЕКСТ(ЧисловойСтолбец; "0"); 0)
Как преобразовать столбец с датами в номера недель?

Используйте функцию НОМНЕДЕЛИ():

=НОМНЕДЕЛИ(A1; 21)

Где 21 — параметр, определяющий систему нумерации недель (21 — неделя начинается с понедельника, как в ISO 8601). Для номера года добавьте ГОД():

=ГОД(A1) & "-W" & ТЕКСТ(НОМНЕДЕЛИ(A1; 21); "00")
Можно ли конвертировать Excel в Google Sheets без потери форматирования?

Да, но с оговорками:

  1. Сохраните файл Excel в формате .xlsx.
  2. Загрузите его в Google Drive и откройте через Google Sheets.
  3. Проверьте:
    • Условное форматирование может не перенестись.
    • Некоторые функции Excel (например, СТОК!Цена()) не работают в Sheets.
    • Сводные таблицы могут потребовать пересоздания.

Для сложных файлов используйте Файл → Импорт → Загрузить → Заменить текущий лист в Google Sheets.

Как конвертировать данные из вертикального списка в горизонтальный?

Есть три способа:

  1. Специальная вставка с транспонированием:
    • Скопируйте вертикальный список (Ctrl+C).
    • Кликните правой кнопкой по пустой ячейке → Специальная вставка → Транспонировать.
  • Функция ТРАНСП():
    =ТРАНСП(A1:A10)

    Введите как формулу массива (в старых версиях Excel нажмите Ctrl+Shift+Enter).

  • Power Query:
    • Загрузите данные в Power Query.
    • Выделите столбец → Преобразовать → Транспонировать.