Перенос данных из Microsoft Project в Excel — задача, с которой рано или поздно сталкивается каждый менеджер проектов. Несмотря на то, что оба продукта принадлежат Microsoft, их форматы хранения информации принципиально разные: Project оперирует задачами, зависимостями и ресурсами, а Excel работает с табличными данными. Эта разница часто становится причиной потери структуры при экспорте — диаграммы Гантта превращаются в бессвязные списки, а иерархия задач теряется.
В этой статье мы разберём 5 рабочих методов переноса данных — от стандартного экспорта до автоматизации через VBA, — а также покажем, как избежать типичных ошибок. Вы узнаете, какой способ подходит для экспорта диаграмм Гантта с сохранением визуализации, как перенести данные с учётом иерархии задач, и почему иногда проще использовать промежуточный формат .CSV вместо прямого экспорта в .XLSX.
1. Стандартный экспорт через меню Project
Самый очевидный способ — воспользоваться встроенной функцией экспорта. Он подходит для одноразового переноса небольших проектов (до 500 задач), но имеет ограничения: теряются связи между задачами, форматирование и часть метаданных (например, базовые планы).
Чтобы экспортировать данные:
- 📂 Откройте файл проекта в MS Project и перейдите во вкладку
Файл → Экспорт → Сохранить проект как файл. - 📄 В списке форматов выберите
Excel (.xlsx)илиCSV (.csv)(последний лучше подходит для дальнейшей обработки в Power Query). - ⚙️ В окне мастера экспорта выберите, какие данные переносить: задачи, ресурсы или назначения. Для диаграмм Гантта выбирайте
Задачи с отображением структуры. - 🔄 Нажмите
Далееи дождитесь завершения процесса. В Excel данные откроются в виде таблицы с колонками:ID,Название задачи,Длительность,Начало,Окончаниеи т.д.
⚠️ Внимание: Если в проекте используются пользовательские поля (например, Текст1, Число5), они не экспортируются по умолчанию. Чтобы их сохранить, перед экспортом добавьте эти поля в текущее представление через Вид → Таблица → Другие таблицы.
2. Экспорт с сохранением структуры (иерархии задач)
По умолчанию Project экспортирует задачи в "плоский" список, игнорируя вложенность подзадач. Чтобы сохранить иерархию, нужно:
- В MS Project перейдите в представление
Диаграмма Гантта. - Нажмите
Формат → Стиль отступаи выберитеПоказать подзадачи. - Экспортируйте данные в Excel как описано в первом методе, но на шаге выбора полей добавьте колонку
Уровень структуры(Outline Level).
В Excel после импорта:
- 📊 Выделите колонку с уровнем структуры.
- 🔢 Перейдите во вкладку
Данные → Структура → Группироватьи выберитеАвтоматически. - 🖼️ Для визуального отступа используйте условное форматирование:
Главная → Условное форматирование → Правила отступа.
| Поле в Project | Соответствие в Excel | Примечание |
|---|---|---|
Outline Level |
Уровень структуры | Определяет вложенность подзадач (1 — основная задача, 2 — подзадача первого уровня и т.д.) |
Outline Number |
Номер структуры | Уникальный идентификатор пути задачи (например, 1.2.3) |
WBS |
Код структуры работ | Сохраняется только если включено в представлении Project |
Отобразить подзадачи в представлении Гантта|Добавить колонку "Outline Level"|Экспортировать в формат .XLSX (не CSV)|Проверить группировку в Excel-->
3. Перенос диаграммы Гантта в Excel
Диаграмма Гантта в Project — это не просто таблица, а визуальное представление с временными шкалами. При стандартном экспорте она превращается в набор дат и длительностей. Чтобы перенести её в Excel с сохранением графического вида, есть два способа:
Способ 1: Копирование как изображения
- 🖼️ В Project выделите область диаграммы Гантта (без заголовков столбцов).
- 📋 Нажмите
Ctrl+C(копировать). - 📑 В Excel вставьте как
Рисунок(Главная → Вставить → Специальная вставка → Рисунок).
⚠️ Внимание: Вставленная диаграмма станет статичным изображением. При изменении данных в Excel она не обновится автоматически. Для динамической связи используйте Способ 2.
Способ 2: Экспорт данных + построение Гантта в Excel
- Экспортируйте задачи в Excel с колонками
Название,Начало,Длительность(в днях),% выполнения. - В Excel создайте стековую гистограмму:
=ВСТАВИТЬ → Гистограмма → Стековая гистограмма - Настройте оси:
- 📅 Ось X: даты начала задач (формат
дд.мм.гггг). - 📊 Ось Y: названия задач.
- 🎨 Заливка: используйте условное форматирование для отображения % выполнения.
- 📅 Ось X: даты начала задач (формат
Как автоматизировать обновление диаграммы Гантта в Excel?
Создайте связь между файлом Project и Excel через Power Query:
1. В Excel перейдите в Данные → Получение данных → Из файла → Из базы данных MS Project.
2. Выберите файл .MPP и загрузите данные как таблицу.
3. На основе этой таблицы постройте диаграмму Гантта.
4. При изменении исходного файла Project обновите запрос в Excel через Данные → Обновить все.
4. Автоматизация экспорта через VBA
Если вам регулярно приходится переносить данные из Project в Excel, ручной экспорт станет утомительным. VBA-скрипты позволяют автоматизировать процесс, сохраняя структуру, форматирование и даже создавая готовые отчёты. Ниже приведён пример макроса для экспорта задач с иерархией и базовыми полями:
Sub ExportToExcel()
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
Dim projTask As Task
Dim rowNum 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 = "Окончание"
xlSheet.Cells(1, 6).Value = "Длительность (дней)"
rowNum = 2
' Экспорт задач
For Each projTask In ActiveProject.Tasks
If Not projTask Is Nothing Then
xlSheet.Cells(rowNum, 1).Value = projTask.ID
xlSheet.Cells(rowNum, 2).Value = projTask.Name
xlSheet.Cells(rowNum, 3).Value = projTask.OutlineLevel
xlSheet.Cells(rowNum, 4).Value = projTask.Start
xlSheet.Cells(rowNum, 5).Value = projTask.Finish
xlSheet.Cells(rowNum, 6).Value = projTask.Duration / 480 ' Конвертация минут в дни
rowNum = rowNum + 1
End If
Next projTask
' Форматирование
xlSheet.Columns("A:F").AutoFit
xlApp.Visible = True
' Сохранение файла
xlWB.SaveAs "C:\Export\ProjectTasks.xlsx"
End Sub
Чтобы запустить этот скрипт:
- В MS Project нажмите
Alt+F11, чтобы открыть редакторVBA. - Вставьте код в новый модуль (
Insert → Module). - Настройте путь сохранения в строке
xlWB.SaveAs. - Запустите макрос на выполнение (
F5). - 📈 Объединения нескольких проектов в один отчёт.
- 🔄 Регулярного обновления данных (например, еженедельных отчётов).
- 📊 Создания сводных таблиц с агрегацией по ресурсам или временным периодам.
⚠️ Внимание: Если в проекте используются пользовательские поля (например, Текст10 или Флаг20), их нужно добавить в скрипт вручную. Для этого используйте свойство projTask.Text10 или projTask.Flag20.
Стандартный экспорт через меню|Копирование диаграммы как изображения|VBA-скрипты|Power Query|Другой способ-->
5. Использование Power Query для сложных проектов
Power Query (встроенный в Excel 2016+) позволяет импортировать данные из MS Project с гибкой трансформацией. Этот метод подходит для:
Инструкция по импорту:
- В Excel перейдите во вкладку
Данные → Получение данных → Из файла → Из базы данных MS Project. - Выберите файл
.MPPи нажмитеИмпорт. - В окне Power Query выберите таблицу
Задачи(илиРесурсы, если нужен экспорт ресурсов). - При необходимости отфильтруйте данные (например, оставьте только задачи с
% выполнения < 100%). - Нажмите
Закрыть и загрузить, чтобы перенести данные в Excel.
Преимущества Power Query:
- 🔄 Автоматическое обновление: при изменении исходного файла
.MPPдостаточно нажатьОбновить все. - 🛠️ Трансформация данных: можно добавлять вычисляемые колонки (например,
Остаток дней = Длительность * (1 - % выполнения)). - 📂 Объединение проектов: импортируйте данные из нескольких файлов
.MPPв одну таблицу.
6. Типичные ошибки и их решения
Даже при правильном экспорте данные в Excel могут отображаться некорректно. Вот самые распространённые проблемы и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
Дата в формате 44197 вместо 01.01.2021 |
Excel воспринимает дату как число (количество дней с 1900 года) | Выделите колонку → Главная → Формат → Формат ячеек → Дата |
Пустые ячейки в колонке Длительность |
В Project длительность указана в часах, а Excel ожидает дни | Разделите значение на 8 (для 8-часового рабочего дня) или используйте формулу =[Длительность]/480 (480 минут = 1 день) |
| Потеряны связи между задачами (предшественники) | Стандартный экспорт не сохраняет зависимости | Экспортируйте колонку Предшественники (Predecessors) и восстанавливайте связи вручную или через VBA |
Кириллические символы отображаются как ???? |
Несовпадение кодировок при экспорте в .CSV |
Сохраняйте в .XLSX или открывайте .CSV через Импорт данных с выбором кодировки UTF-8 |
⚠️ Внимание: Если в проекте используются календари с нестандартными рабочими днями (например, 6-дневная рабочая неделя), длительность задач в Excel будет рассчитана неверно. В этом случае:
- Экспортируйте колонку
Календарь задачи(Task Calendar). - В Excel добавьте вспомогательную таблицу с коэффициентами пересчёта (например, для 6-дневной недели
Длительность (дней) = Длительность (часов) / 6).
7. Альтернативные инструменты для экспорта
Если встроенные средства MS Project не справляются с задачей, рассмотрите специализированные инструменты:
- 📊 Seavus Project Viewer: бесплатная утилита для просмотра файлов
.MPPс функцией экспорта в Excel и PDF. Поддерживает диаграммы Гантта и ресурсные таблицы. - 🔄 MPP to Excel Converter (от Nucleus Technologies): платное решение для пакетного экспорта нескольких проектов с сохранением форматирования.
- 🌐 Project Reader: онлайн-сервис для конвертации
.MPPв.XLSXбез установки ПО. Подходит для разовых задач, но не гарантирует конфиденциальность данных. - 📈 Smartsheet: облачный сервис для управления проектами с встроенным экспортом в Excel. Позволяет импортировать файлы
.MPPи синхронизировать данные.
⚠️ Внимание: При использовании сторонних инструментов проверяйте:
- 🔒 Безопасность данных: онлайн-сервисы могут сохранять загруженные файлы на своих серверах.
- 📋 Поддержку версий: не все инструменты работают с MS Project 2021 или Project Online.
- 💰 Лицензионные ограничения: бесплатные версии часто ограничивают количество задач (например, до 1000 строк).
FAQ: Частые вопросы по экспорту Project → Excel
Можно ли экспортировать базовый план (baseline) из Project в Excel?
Да, но не через стандартный экспорт. Вам нужно:
- В Project добавить в текущее представление колонки
Базовое начало(Baseline Start) иБазовое окончание(Baseline Finish). - Экспортировать задачи в Excel как описано в первом методе.
- В Excel сравнить базовые даты с фактическими, используя формулы вида
=IF([Фактическое окончание]-[Базовое окончание]>0; "Превышение"; "В пределах").
Как экспортировать данные о загрузке ресурсов (resource allocation)?
Для экспорта загрузки ресурсов:
- В Project откройте представление
Лист ресурсов(Вид → Лист ресурсов). - Добавьте колонки
Загрузка(Peak Units) иЗатраты(Cost). - Экспортируйте данные в Excel, выбрав в мастере экспорта опцию
Ресурсы.
Для детализации по задачам используйте представление Использование ресурсов (Вид → Использование ресурсов) и экспортируйте его как таблицу.
Почему после экспорта в Excel пропадают пользовательские поля?
Это происходит потому, что:
- Пользовательские поля (
Текст1,Число5и т.д.) не включены в стандартное представление. - При экспорте Project учитывает только видимые колонки.
Решение:
- Перед экспортом добавьте нужные поля в текущее представление через
Вид → Таблица → Другие таблицы → Изменить таблицу. - Или используйте
VBA-скрипт, явно указав свойства типаprojTask.Text1.
Можно ли автоматизировать экспорт для еженедельных отчётов?
Да, есть три способа автоматизации:
- Power Query: настройте запрос на импорт из
.MPPи обновляйте его еженедельно. - VBA: напишите макрос, который открывает файл
.MPP, экспортирует данные и сохраняет их в заданную папку. - Project Online + Power Automate: если вы используете Project Online, настройте поток в Power Automate для автоматического экспорта данных в Excel по расписанию.
Пример VBA-скрипта для еженедельного экспорта:
Sub WeeklyExport()
Dim projApp As Application
Dim projFile As String
Dim xlApp As Object
Dim exportPath As String
' Пути к файлам
projFile = "C:\Projects\Current.mpp"
exportPath = "C:\Reports\Weekly_" & Format(Date, "yyyy-mm-dd") & ".xlsx"
' Открытие Project
Set projApp = Application
projApp.FileOpen projFile
' Экспорт в Excel
Set xlApp = CreateObject("Excel.Application")
' ... (код экспорта, аналогичный примеру выше)
xlApp.ActiveWorkbook.SaveAs exportPath
xlApp.Quit
' Закрытие Project
projApp.FileClose
End Sub
Как перенести в Excel данные о критическом пути?
Критический путь в Project — это задачи, задержка которых влияет на сроки проекта. Чтобы экспортировать их:
- В Project откройте представление
Диаграмма Гантта. - Перейдите в
Формат → Критический путь(задачи критического пути будут выделены красным). - Добавьте в таблицу колонку
Критический(Critical), которая будет содержатьДа/Нет. - Экспортируйте задачи в Excel и отфильтруйте по колонке
Критический = Да.
Для визуализации критического пути в Excel используйте условное форматирование: выделите красным строки, где Критический = Да.