Визуализация иерархических данных — одна из самых востребованных задач при работе с Microsoft Excel.hether вы строите организационную структуру компании, генеалогическое древо или схему проектных задач, дерево (древо) помогает наглядно отобразить связи между элементами. Но как перенести такие структуры из головы на экран, если Excel изначально не предназначен для работы с графами?
Многие пользователи ошибочно считают, что для создания древа обязательно нужен Visio или специализированное ПО. На деле же в Excel есть как минимум 5 способов построить интерактивное или статичное древо — от простых диаграмм SmartArt до продвинутых решений с Power Query и формулами. В этой статье мы разберём каждый метод с пошаговыми инструкциями, нюансами и готовыми шаблонами для скачивания.
Важно: если вам нужно древо с динамическим обновлением (например, при изменении данных в таблице), обратите внимание на способы с формулами и Power Pivot. Для одноразовых презентаций подойдут статичные варианты вроде SmartArt или вставки фигур.
1. Способ: Древо через SmartArt — быстро и без формул
SmartArt — встроенный инструмент Excel для создания диаграмм, включая иерархические структуры. Это самый простой способ, не требующий знания формул или макросов. Подходит для презентаций, где не нужна привязка к данным таблицы.
Чтобы создать древо через SmartArt:
- Перейдите на вкладку
Вставка→ группаИллюстрации→ кнопкаSmartArt. - В открывшемся окне выберите категорию
Иерархия. - Выберите макет (например,
Иерархия,Горизонтальная иерархияилиИерархический список). - Нажмите
OK— в рабочем листе появится заготовка древа.
Теперь можно редактировать текст прямо в блоках или через панель Текст слева. Чтобы добавить новый элемент:
- 🔹 Наведите курсор на блок, рядом с которым нужно вставить элемент.
- 🔹 Нажмите на стрелочку в левом верхнем углу блока и выберите
Добавить фигуру(После,Перед,ВышеилиНиже). - 🔹 Для удаления блока выделите его и нажмите
Delete.
Плюсы метода:
- 🔹 Не требует знания формул.
- 🔹 Гибкая настройка дизайна (цвета, шрифты, эффекты).
- 🔹 Можно экспортировать как изображение.
Минусы:
- 🔸 Древо не привязано к данным таблицы — при изменении исходных данных придётся править вручную.
- 🔸 Ограниченная функциональность для больших структур (более 100 элементов).
2. Способ: Древо с помощью фигур и соединительных линий
Если SmartArt кажется слишком ограниченным, можно построить древо вручную с использованием фигур (Прямоугольник, Овал) и соединительных линий. Этот метод требует больше времени, но даёт полный контроль над дизайном.
Алгоритм действий:
- На вкладке
ВставкавыберитеФигурыи добавьте нужные элементы (например,Прямоугольникдля узлов). - Расположите фигуры на листе в соответствии с иерархией.
- Для соединения фигур используйте
Соединительная линия(находится в том же менюФигуры). - Привяжите линии к фигурам: выделите линию, затем кликните по фигуре — линия "прилипнет" к её краю.
Советы для удобства:
- 🔹 Используйте
ВыровнятьиРаспределить(вкладкаФормат) для ровного расположения элементов. - 🔹 Для массового копирования фигур удерживайте
Ctrlпри перетаскивании. - 🔹 Чтобы линии не съезжали при перемещении фигур, используйте
Привязку к сетке(Вид → Показать → Сетка).
Критическая особенность: если фигуры или линии съезжают при изменении масштаба, зафиксируйте их положение через Формат фигуры → Положение и размер → Привязка к ячейке.
Включить сетку (Вид → Сетка)
Создать заготовки фигур заранее (копировать через Ctrl+D)
Использовать Соединительные линии со стрелками для наглядности
Группировать готовые блоки (Ctrl+G) для удобства перемещения-->
3. Способ: Динамическое древо с формулами (для продвинутых)
Если ваше древо должно автоматически обновляться при изменении данных в таблице, понадобятся формулы массива или функции ВПР/ИНДЕКС. Этот метод сложнее предыдущих, но даёт гибкость для работы с большими наборами данных.
Рассмотрим пример на основе таблицы с иерархией отделов компании:
| ID | Название отдела | Родительский ID | Уровень |
|---|---|---|---|
| 1 | Дирекция | - | 1 |
| 2 | Финансы | 1 | 2 |
| 3 | Маркетинг | 1 | 2 |
| 4 | Бухгалтерия | 2 | 3 |
Чтобы визуализировать эту структуру:
- Создайте вспомогательную таблицу для отступов. В столбце
Отступиспользуйте формулу:=ПОВТОР(" ";B2-1)где
B2— ячейка с уровнем вложенности. - Объедините отступы с названиями отделов:
=СЦЕПИТЬ(D2; " "; A2)где
D2— ячейка с отступом,A2— название отдела. - Отсортируйте данные по столбцу
УровеньиID. - Используйте
Условное форматированиедля выделения уровней разными цветами.
Пример формулы для автоматического определения уровня:
=ЕСЛИ(B2="-";1;ПОИСКПОЗ(B2;$A$2:$A$100;0)+1)
Где B2 — родительский ID текущего элемента, $A$2:$A$100 — диапазон с ID всех элементов.
SmartArt
Фигуры и соединительные линии
Формулы и условное форматирование
Power Query или Power Pivot
Не создаю древо в Excel-->
4. Способ: Древо через Power Query (для больших данных)
Power Query — мощный инструмент Excel для трансформации данных, который позволяет строить рекурсивные иерархии (например, для многомерных структур). Этот метод подходит для работы с тысячами строк и сложными связями.
Инструкция по созданию древа через Power Query:
- Импортируйте исходную таблицу в
Power Query(Данные → Получить данные → Из таблицы/диапазона). - Добавьте столбец с уровнем вложенности. Для этого:
- Создайте пользовательский столбец с формулой (на языке M):
if [ParentID] = null then 1 else ... - Используйте рекурсивную функцию для подсчёта уровней (пример кода ниже).
- Создайте пользовательский столбец с формулой (на языке M):
Условное форматирование или SmartArt.Пример кода на языке M для рекурсивного подсчёта уровней:
(let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
AddLevel = (t as table) as table =>
let
AddLevelColumn = Table.AddColumn(t, "Level", each if [ParentID] = null then 1 else
let parentLevel = Table.SelectRows(t, (row) => row[ID] = [ParentID]){0}[Level]
in parentLevel + 1)
in AddLevelColumn,
Result = AddLevel(Source)
in
Result)
⚠️ Внимание: Рекурсивные функции в Power Query могут вызвать ошибку "Циклическая ссылка", если в данных есть зацикленные связи (например, отдел A ссылается на отдел B, а тот — обратно на A). Перед импортом проверьте данные на наличие таких зависимостей.
5. Способ: Интерактивное древо с помощью сводных таблиц и срезов
Если вам нужно интерактивное древо, которое можно разворачивать и сворачивать, используйте сводные таблицы в комбинации со срезами. Этот метод идеален для анализа больших иерархий (например, структуры продукции или организационных единиц).
Пошаговая инструкция:
- Подготовьте исходную таблицу с колонками:
ID,Название,Родительский ID,Уровень. - Создайте сводную таблицу (
Вставка → Сводная таблица). - Перетащите поле
Названиев областьСтроки. - В настройках сводной таблицы включите опцию
Показать в виде структуры(Дизайн → Макет → Показать в виде структуры). - Добавьте срез (
Вставка → Срез) для фильтрации по уровням или категориям. - 🔹 Возможность сворачивать/разворачивать ветки древа.
- 🔹 Автоматическое обновление при изменении исходных данных.
- 🔹 Интеграция с Power Pivot для сложных расчётов.
- 🔹
TreeMap— прямоугольные блоки, размер которых пропорционален значению (например, бюджету отдела). - 🔹
Sunburst— круговая диаграмма с вложенными сегментами.
Преимущества метода:
⚠️ Внимание: Если в сводной таблице не отображаются все уровни иерархии, проверьте, включена ли опцияПоказать элементы без данныхв настройках поля (Правая кнопка по полю → Параметры поля).
Как убрать пустые строки в сводной таблице?
В настройках сводной таблицы перейдите на вкладку Дизайн → Пустые строки и выберите Не показывать пустые элементы. Также можно отключить отображение промежуточных итогов через Параметры поля → Нет субтоталей.
6. Способ: Древо через надстройки (TreeMap и Sunburst)
Excel поддерживает два типа диаграмм для визуализации иерархий:
Чтобы создать TreeMap или Sunburst:
- Выделите данные (должны быть колонки с иерархией:
Уровень 1,Уровень 2,Значение). - Перейдите на вкладку
Вставка→Иерархические диаграммы. - Выберите
TreeMapилиSunburst. - Настройте цвета и подписи через
КонструкториФормат.
Пример данных для Sunburst:
| Регион | Город | Продажи |
|---|---|---|
| Центр | Москва | 1500 |
| Центр | Санкт-Петербург | 1200 |
| Юг | Краснодар | 800 |
Ограничения:
- 🔸
TreeMapиSunburstне показывают связи между элементами — только вложенность. - 🔸 Сложно читать при большом количестве уровней (более 3–4).
Сравнение способов: какой выбрать?
Выбор метода зависит от цели, объёма данных и необходимости автоматического обновления. Ниже таблица сравнения:
| Способ | Сложность | Динамическое обновление | Макс. элементов | Когда использовать |
|---|---|---|---|---|
SmartArt |
Низкая | Нет | до 50 | Презентации, простые структуры |
| Фигуры + линии | Средняя | Нет | до 100 | Кастомизированный дизайн |
| Формулы | Высокая | Да | до 1000 | Автоматизация, большие таблицы |
| Power Query | Очень высокая | Да | 10 000+ | Сложные иерархии, ETL |
| Сводные таблицы | Средняя | Да | до 5000 | Интерактивный анализ |
Для одноразовых задач (например, древо для отчёта) подойдёт SmartArt или фигуры. Если нужно автоматически обновляемое древо, используйте формулы или Power Query. Для анализа данных лучше всего подходят сводные таблицы или диаграммы Sunburst.
FAQ: Частые вопросы по созданию древа в Excel
Можно ли создать древо с фотографиями сотрудников?
Да, для этого:
- Создайте древо через
SmartArtили фигуры. - Вставьте фотографии в документ (
Вставка → Рисунок). - Обрежьте фотографии под размер фигур (
Формат → Обрезка). - Перетащите фотографии поверх фигур древа.
Для автоматического подтягивания фотографий из папки потребуется VBA.
Как экспортировать древо из Excel в Word или PowerPoint?
Есть три способа:
- 🔹 Скопировать древо (
Ctrl+C) и вставить в документ черезСпециальная вставка → Рисунок. - 🔹 Сохранить как PDF (
Файл → Экспорт → PDF), затем вставить PDF-страницу в Word. - 🔹 Для
SmartArt: скопировать в PowerPoint напрямую (сохранятся анимации).
Почему в сводной таблице не отображаются все уровни древа?
Проблема может быть в:
- 🔹 Отсутствии данных — проверьте, есть ли значения для всех уровней.
- 🔹 Некорректной сортировке — отсортируйте данные по
УровнюиID. - 🔹 Скрытых элементах — включите
Показать элементы без данныхв настройках поля.
Как сделать древо с горизонтальной ориентацией?
Для горизонтального древа:
- 🔹 В
SmartArtвыберите макетГоризонтальная иерархия. - 🔹 При ручном построении через фигуры расположите элементы слева направо.
- 🔹 В
Sunburstгоризонтальная ориентация не поддерживается — используйтеTreeMap.
Можно ли анимировать древо в Excel?
Нatively Excel не поддерживает анимацию древа, но есть обходные пути:
- 🔹 PowerPoint: перенесите древо в презентацию и добавьте анимацию появления.
- 🔹 VBA: напишите макрос для пошагового отображения элементов.
- 🔹 Office Scripts (Excel Online): создайте скрипт для динамического разворачивания веток.