Диаграмма Ганта в Power Query
Предположим, что вы ведете несколько проектов с разным бюджетом и хотите наглядно представить свои расходы на каждый из них. То есть из вот такой исходной таблицы:
.. получить что-то похожее на такую:
Другими словами, необходимо размазать бюджет по дням каждого проекта и получить упрощенный вариант проектной диаграммы Ганта. Руками такое делать долго и скучно, макросами - сложно, а вот Power Query для Excel в такой ситуации проявляет свою мощь во всей красе.
Power Query - это надстройка от компании Microsoft, которая умеет импортировать в Excel данные практически из любых источников и трансформировать их потом кучей разных способов. В Excel 2016 эта надстройка уже встроена по умолчанию, а для Excel 2010-2013 ее можно скачать с сайта Microsoft и установить затем на ваш ПК.
Сначала превратим нашу исходную таблицу в "умную", выбрав команду Форматировать как таблицу на вкладке Главная (Home - Format as Table) или нажав сочетание клавиш Ctrl+T :
Затем переходим на вкладку Данные (если у вас Excel 2016) или на вкладку Power Query (если у вас Excel 2010-2013 и вы установили Power Query как отдельную надстройку) и жмем кнопку Из таблицы / диапазона (From Table/Range). :
Наша умная таблица загружается в редактор запросов Power Query, где, первым делом, нужно настроить числовые форматы для каждого столбца с помощью выпадающих списков в шапке таблицы:
Чтобы посчитать бюджет в день, нужно вычислить длительность каждого проекта. Для этого выделим (удерживая клавишу Ctrl) сначала столбец Финиш, а потом Старт и выберем команду Добавить столбец - Дата - Вычесть дни (Add Column - Date - Subtract days):
Полученные числа на 1 меньше, чем нужно, т.к. предполагается, что начинаем каждый проект мы в первый день утром, а заканчиваем в последний день вечером. Поэтому выделим полученный столбец и добавим к нему единицу с помощью команды Преобразовать - Стандартные - Добавить (Transform - Standard - Add):
Теперь добавим столбец, где вычислим бюджет в день. Для этого на вкладке Добавить столбец (Add Column) нажмем Настраиваемый столбец (Custom Column) и в появившееся окно введем имя нового поля и формулу расчета, используя имена столбцов из списка:
Теперь самый тонкий момент - создаем еще один вычисляемый столбец со списком дат от старта до финиша с шагом 1 день. Для этого опять жмем кнопку Настраиваемый столбец (Custom Column) и используем функцию встроенного в Power Query языка М, которая называется List.Dates:
У этой функции три аргумента:
- начальная дата - в нашем случае берется из столбца Старт
- количество дат, которые надо сгенерировать - в нашем случае это число дней по каждому проекту, которое мы посчитали ранее в столбце Вычитание
- временной шаг - задается конструкцией #duration(1,0,0,0), означающей на языке М - один день, ноль часов, ноль минут, ноль секунд.
После нажатия на ОК получим список (List) дат, который можно развернуть в новые строки, используя кнопку в шапке таблицы:
... и получаем:
Теперь осталось свернуть таблицу, используя сгенерированные даты как названия для новых столбцов. За это отвечает команда Столбец сведЕния (Pivot Column) на вкладке Преобразовать (Transform):
После нажатия на ОК получаем результат очень близкий к желаемому:
Null - это, в данном случае, аналог пустой ячейки в Excel.
Осталось удалить ненужные столбцы и выгрузить полученную таблицу рядом с исходными данными командой Закрыть и загрузить - Закрыть и загрузить в... (Close & Load - Close & Load to...) на вкладке Главная (Home):
Получаем в итоге:
Для пущей красоты можно настроить вид полученных умных таблиц на вкладке Конструктор (Design): задать единый цветовой стиль, отключить кнопки фильтра, включить итоги и т.д. Дополнительно можно выделить таблицу с датами и включить для нее подсветку чисел условным форматированием на вкладке Главная - Условное форматирование - Цветовые шкалы (Home - Conditional Formatting - Color Scales):
А самое приятное, что в будущем можно смело редактировать старые или дописывать к исходной таблице новые проекты, а правую таблицу с датами затем обновлять правой кнопкой мыши - и все проделанные нами действия Power Query повторит автоматически.
Вуаля!
Ссылки по теме
- Диаграмма Ганта в Excel с помощью условного форматирования
- Календарь этапов проекта
- Генерация дубликатов строк через Power Query
Николай, спасибо за науку!!!
Добавил этот вариант в файл-пример - скачайте еще разок и посмотрите, там несложно, ага?
Спасибо за статью! Как всегда, очень познавательно!
На мой взгляд было бы интересно еще иметь возможность сортировать исходную таблицу, например: по полю «Старт» или «Бюджет».
Но я так понимаю данное решение этого делать не позволяет т.е. при сортировке строки не соответствую диаграмме даже после обновления данных?
В примере по дням точное совпадение, Проект – Альфа, Бюджет 7500 и итог по дням с 01-01-18 по 05-01-18 тоже 7500, а вот по месяцам, Проект – Альфа, Бюджет 7500 а итог по месяцам с 01-2018 по 09-2018 уже 7499.52 где теряется 0.48? Проект – Бета, Бюджет 10000 и итог по дням с 05-01-18 по 08-01-18 тоже 10000, а вот по месяцам, Проект – Бета, Бюджет 10000 а итог по месяцам с 05-2018 по 10-2018 уже 10000.65 как исправить ошибку?
Expression.Error: Аргумент "increment" выходит за пределы диапазона.
Сведения:
1.00:00:00
Да сделать это можно. По ссылке, например, сделал один из возможных вариантов отчета с преобразованием ваших данных. Форматирование можете сделать свое.
Если у вас такая ошибка, то левой кнопкой мыши нажмите на отмеченный фрагмент заголовка столбца (показан на изображении ниже) и выберите нужный тип данных:
[img]data:image/png;base64,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[/img]
Общеизвестно что всегда приятнее когда не ты сам а тебя из ложечки кормят перожеваной кашкой )))