Перенос данных из Microsoft Project в Excel — типичная задача для проектных менеджеров, аналитиков и финансовых специалистов. В Excel удобнее строить сводные отчёты, проводить дополнительный анализ или интегрировать проектные данные с другими системами (например, 1С или Power BI). Однако стандартные инструменты экспорта в MS Project часто ограничены: теряется форматирование, разбиваются связанные задачи или не переносятся пользовательские поля.
В этой статье разберём 5 способов переноса — от элементарного копирования до автоматизации через VBA, — а также покажем, как сохранить структуру диаграммы Ганта, ресурсы и базовые планы. Особое внимание уделим проблеме с датами в формате "дд.мм.гггг" при экспорте в старые версии Excel (2010 и ниже), которая ломает все временные расчёты.
1. Ручное копирование данных (быстро, но с ограничениями)
Самый простой метод — выделение ячеек в MS Project и вставка в Excel через буфер обмена (Ctrl+C → Ctrl+V). Он подходит для разовых операций с небольшими объёмами данных (до 500 строк). Однако у способа есть критические недостатки:
- 🔹 Теряется форматирование: цвета задач, выделение критических путей, пользовательские стили.
- 🔹 Разрываются связи между задачами (преемственность не переносится).
- 🔹 Дата начинается с 1900 года в Excel, если не настроен региональный формат.
- 🔹 Не переносятся заметки (
Notes), вложения и базовые планы.
Чтобы минимизировать потери, перед копированием:
- Откройте в Project вид
Задачи → Диаграмма Ганта. - Нажмите
Файл → Параметры → Дополнительнои установите флажокКопировать изображения при копировании в другие программы. - Выделите нужные столбцы (зажмите
Shiftдля выбора диапазона).
2. Экспорт через "Сохранить как" (Excel или CSV)
MS Project позволяет сохранить проект в форматах .xlsx или .csv через меню Файл → Сохранить как. Этот метод лучше ручного копирования, так как сохраняет структуру таблицы, но тоже имеет ограничения:
| Формат | Плюсы | Минусы |
|---|---|---|
.xlsx |
Сохраняет иерархию задач (подзадачи), часть форматирования | Не переносит диаграмму Ганта, ресурсы и календари |
.csv |
Универсальный формат для импорта в другие системы | Теряет все формулы, связи и многоуровневые заголовки |
.mpp → .xml |
Сохраняет максимально полные данные (включая заметки) | Требует дополнительной обработки в Excel (через Power Query) |
Для экспорта в .xml:
- Выберите
Файл → Сохранить как → Другие форматы. - В списке типов файлов найдите
XML-формат (*.xml). - Откройте полученный файл в Excel через
Данные → Получить данные → Из файла → Из XML.
Как исправить кодировку в CSV?
Если при открытии CSV в Excel вместо кириллицы отображаются "кракозябры", откройте файл через Блокнот, сохраните с кодировкой UTF-8, затем импортируйте в Excel через Данные → Из текста.
3. Использование отчётов MS Project (для диаграмм Ганта)
Если вам нужно перенести визуальное представление проекта (например, диаграмму Ганта с цветовой кодировкой), используйте встроенные отчёты:
- Перейдите в
Проект → Отчёты → Визуальные отчёты. - Выберите шаблон
Диаграмма ГантаилиИспользование ресурсов. - Нажмите
Просмотр, затемКопировать в буфер обмена. - Вставьте в Excel как
Рисунок(правая кнопка →Специальная вставка → Рисунок).
Преимущество метода: сохраняется визуальная структура проекта. Недостаток: данные не редактируются (это просто картинка). Для редактируемой версии диаграммы Ганта в Excel придётся использовать VBA или надстройки.
4. Автоматизация через VBA (для продвинутых пользователей)
Скрипты VBA позволяют переносить данные из Project в Excel с полным контролем над структурой, сохраняя связи между задачами, ресурсы и пользовательские поля. Ниже пример макроса, который экспортирует задачи с их длительностью и датами:
Sub ExportToExcel()
Dim prj As Project
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
Dim t As Task
Dim row As Integer
' Создаём экземпляр Excel
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Add
Set xlSheet = xlWB.Sheets(1)
' Заголовки столбцов
xlSheet.Cells(1, 1).Value = "ID"
xlSheet.Cells(1, 2).Value = "Название задачи"
xlSheet.Cells(1, 3).Value = "Длительность"
xlSheet.Cells(1, 4).Value = "Начало"
xlSheet.Cells(1, 5).Value = "Окончание"
' Экспорт задач
row = 2
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
xlSheet.Cells(row, 1).Value = t.ID
xlSheet.Cells(row, 2).Value = t.Name
xlSheet.Cells(row, 3).Value = t.Duration
xlSheet.Cells(row, 4).Value = t.Start
xlSheet.Cells(row, 5).Value = t.Finish
row = row + 1
End If
Next t
' Форматируем даты
xlSheet.Columns("D:E").NumberFormat = "dd.mm.yyyy"
' Сохраняем файл
xlWB.SaveAs "C:\Export\ProjectTasks.xlsx"
xlApp.Quit
End Sub
Чтобы запустить макрос:
- В MS Project нажмите
Alt+F11, чтобы открыть редакторVBA. - Вставьте код в новый модуль (
Insert → Module). - Настройте путь сохранения в строке
xlWB.SaveAs. - Запустите макрос клавишей
F5.
☑️ Подготовка к VBA-экспорту
5. Использование Power Query (для сложных трансформаций)
Power Query в Excel позволяет импортировать данные из MS Project через промежуточный XML-файл с последующей обработкой. Это актуально, если нужно:
- 🔄 Объединить данные из нескольких проектов.
- 📊 Преобразовать структуру (например, развернуть иерархию задач в плоскую таблицу).
- 🔍 Отфильтровать задачи по статусу или ресурсам.
Пошаговая инструкция:
- Экспортируйте проект в
XML(как описано в разделе 2). - В Excel перейдите в
Данные → Получить данные → Из файла → Из XML. - В окне
Power Queryразверните узлыTasksиResources. - Удалите ненужные столбцы (например,
OutlineLevel, если не нужна иерархия). - Нажмите
Закрыть и загрузить.
Пример трансформации в Power Query для развёртывания подзадач:
let
Источник = Xml.Tables(File.Contents("C:\Export\Project.xml")),
Tasks = Источник{0}[Tasks],
#"Развернутые строки" = Table.ExpandTableColumn(Tasks, "Task", {"Name", "Start", "Finish"}, {"Task.Name", "Task.Start", "Task.Finish"})
in
#"Развернутые строки"
6. Надстройки и сторонние инструменты
Если встроенные методы не покрывают ваши нужды, рассмотрите специализированные надстройки:
| Инструмент | Функционал | Стоимость |
|---|---|---|
| Project Reader | Чтение .mpp без MS Project, экспорт в Excel |
От $99 |
| Seavus Project Viewer | Просмотр и экспорт диаграмм Ганта, ресурсов, отчётов | От $299 |
| MPP to XLS Converter | Пакетный экспорт нескольких проектов в Excel | От $49 |
Преимущества надстроек:
- 🔧 Сохраняют все пользовательские поля и заметки.
- 📅 Корректно обрабатывают даты и календари.
- 🔄 Поддерживают обратный импорт из Excel в Project.
Недостатки: платные лицензии и возможные проблемы совместимости с новыми версиями MS Project (например, Project 2021 или Project Online).
Частые ошибки и их решения
При переносе данных из Project в Excel пользователи сталкиваются с типичными проблемами. Вот как их избежать:
⚠️ Внимание: Если в Excel даты отображаются как######, это означает, что ширина столбца недостаточна. Растяните столбец или примените форматДатавручную.
Проблема 1: В Excel не отображаются кириллические символы.
Решение: Сохраните файл CSV в кодировке UTF-8 (через Блокнот) или используйте XML.
Проблема 2: Разорваны связи между задачами (преемственность).
Решение: Экспортируйте данные через VBA или надстройки, которые сохраняют поле Predecessors.
Проблема 3: В Excel не перенеслись пользовательские поля (например, Текст1, Число5).
Решение: Вручную добавьте эти поля в таблицу Excel после экспорта или используйте Power Query для их извлечения из XML.
Почему в Excel вместо длительности задачи "5д" отображается "5"?
Excel автоматически преобразует текстовые значения длительности (например, "5д" или "2нед") в числа. Чтобы вернуть исходный формат, перед экспортом в Project замените сокращения на полные названия ("5 дней") или используйте пользовательское поле с текстовым форматом.
FAQ: Ответы на популярные вопросы
Можно ли перенести диаграмму Ганта в Excel так, чтобы её можно было редактировать?
Да, но не стандартными средствами. Вам понадобится:
- Экспортировать данные задач (даты начала/окончания, длительность) в Excel.
- Создать ленточную диаграмму (
Вставка → Ленточная диаграмма). - Настроить оси по датам и задачам вручную.
Для автоматизации используйте VBA или надстройки вроде Gantt Excel.
Как перенести ресурсы (люди, оборудование) вместе с задачами?
Способы:
- Через
VBA: в макросе добавьте цикл поActiveProject.Resources. - Через
Power Query: разверните узелResourcesвXML-файле. - Через надстройки: Seavus Project Viewer экспортирует ресурсы в отдельный лист Excel.
Почему при экспорте в Excel теряются цвета задач?
Цвета в MS Project — это часть форматирования диаграммы Ганта, которое не переносится в табличные форматы (XLSX, CSV). Решения:
- Используйте условное форматирование в Excel на основе статуса задачи (например, красный для просроченных).
- Экспортируйте диаграмму как рисунок (раздел 3 статьи).
Как автоматизировать экспорт при каждом изменении проекта?
Настройте автоматическое обновление:
- Сохраните проект в
XML. - В Excel подключитесь к файлу через
Power Query. - Создайте макрос, который обновляет данные по кнопке или по расписанию (через
Application.OnTime).
Для Project Online используйте Power Automate (Microsoft Flow) с триггером на изменения проекта.
Можно ли перенести базовый план (Baseline) в Excel?
Да, но не всеми способами. Базовый план хранится в полях Baseline Start, Baseline Finish и т.д. Чтобы его экспортировать:
- В Project добавьте эти поля в таблицу (
Правка → Столбцы). - Экспортируйте через
VBAилиXML.
В ручном режиме или через Сохранить как базовый план не переносится.