Диаграмма Waterfall (bridge)
Диаграмма Waterfall (bridge)
Диаграмма waterfall (bridge) — это форма графической визуализации, которая позволяет определить общий (кумулятивный) эффект, последовательно представляя положительные и отрицательные значения факторов. Диаграмма waterfall также известна, как каскадная диаграмма. Иногда употребляется термин «летающие кирпичи» (ввиду визуальной схожести), однако в профессиональном контексте такой термин практически не используется. Зачастую финансисты называют такую диаграмму мост или bridge.Также метод распространен в индустриальном анализе показателей эффективности [1] .
Диаграмма типа waterfall была популяризирована консалтинговой фирмой McKinsey & Company, специализирующейся на стратегическом управлении, в презентации для клиентов. [2] [3]
Не следует путать с водопадной диаграммой, используемой для трехмерного представления звука (время, частота, амплитуда).
Описание паттерна Bridge
Паттерн Bridge разделяет абстракцию и реализацию на две отдельные иерархии классов так, что их можно изменять независимо друг от друга.
Первая иерархия определяет интерфейс абстракции, доступный пользователю. Для случая проектируемого нами логгера абстрактный базовый класс Logger мог бы объявить интерфейс метода log() для вывода сообщений. Класс Logger также содержит указатель на реализацию pimpl, который инициализируется должным образом при создании логгера конкретного типа. Этот указатель используется для перенаправления пользовательских запросов в реализацию. Заметим, в общем случае подклассы ConsoleLogger, FileLogger и SocketLogger могут расширять интерфейс класса Logger.
Все детали реализации, связанные с особенностями среды скрываются во второй иерархии. Базовый класс LoggerImpl объявляет интерфейс операций, предназначенных для отправки сообщений на экран, файл и удаленный компьютер, а подклассы ST_LoggerImpl и МT_LoggerImpl его реализуют для однопоточной и многопоточной среды соответственно. В общем случае, интерфейс LoggerImpl необязательно должен в точности соответствовать интерфейсу абстракции. Часто он выглядит как набор низкоуровневых примитивов.
Паттерн Bridge позволяет легко изменить реализацию во время выполнения программы. Для этого достаточно перенастроить указатель pimpl на объект-реализацию нужного типа. Применение паттерна Bridge также позволяет сократить общее число подклассов в системе, что делает ее более простой в поддержке.
Бридж диаграмма что это такое
Каскадная диаграмма показывает нарастающий итог по мере добавления или вычитания значений. Это помогает понять, как серия положительных и отрицательных значений влияет на исходную величину (например, чистую прибыль).
Столбцы обозначены цветом, чтобы можно было быстро отличить положительные значения от отрицательных. Столбцы начального и конечного значений часто начинаются с горизонтальной оси,в то время как промежуточные значения являются плавающими столбцами. Из-за такого вида каскадные диаграммы также часто называют диаграммами моста.
Создание каскадной диаграммы
Щелкните Вставка > Вставить каскадную или биржевую диаграмму > Каскадная.
Для создания каскадной диаграммы также можно использовать вкладку Все диаграммы в разделе Рекомендуемые диаграммы.
Совет: На вкладках Конструктор и Формат можно настроить внешний вид диаграммы. Если эти вкладки не отображаются, щелкните в любом месте каскадной диаграммы, и на ленте появится область Работа с диаграммами.
Итоги и промежуточные итоги с началом на горизонтальной оси
Если данные содержат значения, которые считаются итогами или итогами, например «Чистый доход», их можно настроить так, чтобы они начинались с горизонтальной оси с нуля и не «плавали».
Дважды щелкните точку данных, чтобы открыть области задач Формат точки данных, и установите в поле Установить как итог.
Примечание: Если щелкнуть столбец один раз, будет выбран ряд данных, а не точка данных.
Чтобы снова сделать столбец плавающим, снимите флажок Задать как итог.
Совет: Итоги также можно задать, щелкнув правой кнопкой мыши точку данных и выбрав в контекстном меню пункт Задать как итог.
Отображение и скрытие соединительных линий
Соединительные линии соединяют конец предыдущего столбца c началом следующего, помогая отобразить поток данных на диаграмме.
Чтобы скрыть соединитеальные линии, щелкните правой кнопкой мыши ряд данных, чтобы открыть области задач Формат ряда данных, и скроем поле Показать соединитеальные линии.
Чтобы снова отобразить эти линии, установите флажок Отображать соединительные линии.
Совет: В легенде диаграммы точки данных сгруппированы по типам: Увеличение, Уменьшение и Итог. Если щелкнуть легенду диаграммы, на диаграмме будут выделены все столбцы, соответствующие выбранной группе.
Вот как можно создать каскадную диаграмму в Excel для Mac:
На вкладке Вставка нажмите кнопку Каскадная (значок каскадной) и выберите каскадная.
Примечание: На вкладках Конструктор и Формат можно настроить внешний вид диаграммы. Если эти вкладки не отображаются, щелкните в любом месте каскадной диаграммы, чтобы отобразить их на ленте.
Анализ влияния факторов
В отличие от предыдущих 2-х задач, где анализировалось изменение значения показателя за несколько периодов, в этом разделе визуализируем влияние каждого фактора на полученное фактическое значение.
Пусть в начале года было задано плановое значение для прибыли = 140. В конце года было получено значение прибыли = 171. При этом известен вклад каждого из факторов (столбец С).
Используя подходы, указанные в этой статье выше, можно построить диаграмму Водопад для анализа влияния факторов.
Эта диаграмма состоит из 3-х рядов данных. Первый ряд данных включает начальное и конечное значение прибыли, а также невидимые служебные столбцы. Для построения такого ряда проще всего сначала установить для столбцов диаграммы значение Нет заливки , а затем для крайнего правого и левого значений вручную установить нужный цвет (например, синий). Для этого нужно выделить на диаграмме столбцы ряда, через 1 сек выделить левый столбик, изменить его заливку. Затем тоже сделать для последнего столбика. Подробнее см. статью Гистограмма в MS EXCEL с накоплением .
Второй ряд содержит значения положительных отклонений (зеленый цвет), третий ряд — отрицательные (красные столбики). Диаграмма построена в файле примера на листе Факторы .
Применимость
Когда вы хотите разделить монолитный класс, который содержит несколько различных реализаций какой-то функциональности (например, если класс может работать с разными системами баз данных).
Чем больше класс, тем тяжелее разобраться в его коде, и тем больше это затягивает разработку. Кроме того, изменения, вносимые в одну из реализаций, приводят к редактированию всего класса, что может привести к внесению случайных ошибок в код.
Мост позволяет разделить монолитный класс на несколько отдельных иерархий. После этого вы можете менять их код независимо друг от друга. Это упрощает работу над кодом и уменьшает вероятность внесения ошибок.
Когда класс нужно расширять в двух независимых плоскостях.
Мост предлагает выделить одну из таких плоскостей в отдельную иерархию классов, храня ссылку на один из её объектов в первоначальном классе.
Когда вы хотите, чтобы реализацию можно было бы изменять во время выполнения программы.
Мост позволяет заменять реализацию даже во время выполнения программы, так как конкретная реализация не «вшита» в класс абстракции.
Кстати, из-за этого пункта Мост часто путают со Стратегией. Обратите внимание, что у Моста этот пункт стоит на последнем месте по значимости, поскольку его главная задача — структурная.
Диаграмма waterfall может быть использована в аналитических целях, особенно для понимания или объяснения постепенного изменения, в количественном выражении, некоего значения, обусловленного влиянием положительными и отрицательными факторами [3] .
Диаграммы waterfall могут быть использованы для различных типов количественного анализа, начиная от анализа запасов и заканчивая анализом эффективности инвестиций.
Создание каскадной диаграммы
На редактируемом листе можно создать каскадную диаграмму.
В каскадной диаграмме необходимо использовать одну меру для каждой полосы диаграммы. Порядок мер определяет порядок полос в диаграмме. Для каждой меры необходимо определить, как она влияет на предыдущее значение. В каскадную диаграмму можно добавить максимум 15 мер.
Выполните следующие действия.
- Перетащите на лист пустую каскадную диаграмму с панели ресурсов.
Добавьте первую меру.
Это будет первая полоса диаграммы. По умолчанию она будет использовать операцию меры Добавить и отображать положительное значение.
Добавьте вторую меру.
Это вторая полоса диаграммы. Чтобы использовать эту меру для отображения отрицательного влияния, установите для параметра Операция меры значение Вычесть .
Продолжите добавление мер, устанавливая для параметра Операция меры значение Добавить или Вычесть в зависимости от того, какое влияние необходимо.
Добавьте подытоги. Существует два способа добавления полос подытогов в диаграмму.
- При наличии поля данных, содержащего данные подытогов, добавьте меру с данными подытогов и выберите Подытоги для параметра Операция меры .
- При отсутствии поля данных, содержащего данные подытогов, можно добавить подытог, вычисляемый автоматически. Для этого установите флажок Подытоги для меры, перед которой требуется полоса подытогов.
После создания каскадной диаграммы ее вид и настройки можно изменить с помощью панели свойств.
Определение мер
Чтобы определить влияние меры на предыдущее значение, можно использовать параметр Операция меры каждой меры.
Значение меры добавляется к предыдущей полосе. Если это первая мера, вся полоса отображается с 0.
Значение меры вычитается из предыдущей полосы.
Значение меры считается подытогом.
В каскадной диаграмме, показанной выше, первая полоса, Sales , определена как Добавить . Вторая полоса, Sales cost , определена как Вычесть , а третья полоса, Sales margin , определена как Подытоги .
Как построить диаграмму "водопад" (waterfall)
Все чаще и чаще встречаю в отчетности разных компаний и слышу просьбы от слушателей на тренингах объяснить как строится каскадная диаграмма отклонений — она же «водопад», она же «waterfall», она же «мост», она же «bridge» и т.д. Выглядит она примерно так:
Издали действительно похожа на каскад водопадов на горной реке или навесной мост — кто что видит 🙂
Особенность такой диаграммы том, что:
- Мы наглядно видим начальное и конечное значение параметра (первый и последний столбцы).
- Положительные изменения (рост) отображаются одним цветом (обычно зеленым ), а отрицательные (спад) — другим (обычно красным ).
- Иногда в диаграмме могут присутствовать ещё и столбцы промежуточных итогов ( серые , приземленные на ось Х столбцы).
В повседневной жизни такие диаграммы используются обычно в следующих случаях:
- Наглядное отображение динамики какого-либо процесса во времени: потока наличности (cash-flow), инвестиций (вкладываем деньги в проект и получаем от него прибыль).
- Визуализация выполнения плана (крайний левый столбик в диаграмме — факт, крайний правый — план, вся диаграмма отображает наш процесс движения к желаемому результату)
- Когда нужно наглядно показать факторы, влияющие на наш параметр (факторный анализ прибыли — из чего она складывается).
Есть несколько способов построения такой диаграммы — всё зависит от вашей версии Microsoft Excel.
Способ 1. Самый простой: встроенный тип в Excel 2016 и новее
Если у вас Excel 2016, 2019 или новее (или Office 365), то построение такой диаграммы не составит труда — в этих версиях Excel такой тип уже встроен по умолчанию. Нужно будет лишь выделить таблицу с данными и выбрать на вкладке Вставка (Insert) команду Каскадная (Waterfall) :
В результате мы получим практически готовую уже диаграмму:
Сразу же можно настроить желаемые цвета заливки для положительных и отрицательных столбцов. Удобнее всего это сделать, выделив соответствующие ряды Увеличение и Уменьшение прямо в легенде и, щёлкнув по ним правой кнопкой мыши, выбрать команду Заливка (Fill) :
Если нужно добавить в диаграмму столбцы с промежуточными итогами или финальный столбец-итог, то удобнее всего это сделать с помощью функций ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTALS) или АГРЕГАТ (AGGREGATE) . Они посчитает накопленную с начала таблицы сумму, исключив при этом из нее выше расположенные аналогичные итоги:
В данном случае, первый аргумент (9) — это код математической операции суммирования, а второй (0) заставляет функцию не учитывать в результатах уже вычисленные итоги за предыдущие кварталы.
После добавления строк с итогами останется выделить на диаграмме появившиеся итоговые колонки (сделать два последовательных одиночных щелчка по столбцу) и, щёлкнув правой кнопкой мыши, выбрать команду Установить в качестве итога (Set as total) :
Выбранный столбец «приземлится» на ось Х и автоматически поменяет цвет на серый.
Вот, собственно, и всё — диаграмма-водопад готова:
Способ 2. Универсальный: невидимые столбцы
Если у вас Excel 2013 или более древние версии (2010, 2007 и т.д.), то описанный выше способ вам не подойдёт. Придется идти обходным путем и выпиливать недостающую каскадную диаграмму из обычной гистограммы с накоплением (суммированием столбиков друг на друга).
Хитрость тут заключается в использовании прозрачных столбцов-подпорок, приподнимающих наши красные и зеленые ряды данных на нужную высоту:
Для построения такой диаграммы нам потребуется добавить к исходным данным еще несколько вспомогательных колонок с формулами:
- Во-первых, нужно разделить наш исходный столбец, выделив положительные и отрицательные значения в разные колонки с помощью функции ЕСЛИ (IF) .
- Во-вторых, нужно будет добавить перед сделанными столбцами колонку Пустышки, где первое значение будет 0, а начиная со второй ячейки формулой будет вычисляться высота тех самых прозрачных подпирающих столбцов.
После этого останется выделить всю таблицу кроме исходного столбца Поток и создать обычную гистограмму с накоплением через Вставка — Гистограмма (Insert — Column Chart) :
Если теперь выделить синие столбцы и сделать их невидимыми (по ним правой кнопкой мыши — Формат ряда — Заливка — Нет заливки), то мы как раз и получим то, что требуется.
В плюсах подобного способа — простота. В минусах — необходимость считать вспомогательные колонки.
Способ 3. Если уходим в минус — всё сложнее
К сожалению, предыдущий способ адекватно работает только для положительных значений. Если хотя бы на каком-то участке наш водопад уходит в отрицательную область, то сложность задачи возрастает в разы. В этом случае необходимо будет формулами просчитать каждый ряд (пустышки, зеленые и красные) отдельно для отрицательной и положительной частей:
Чтобы не сильно мучиться и не изобретать велосипед, готовый шаблон для такого случая можно скачать в заголовке этой статьи.
Способ 4. Экзотический: полосы повышения-понижения
Этот способ основан на использовании специального малоизвестного элемента плоских диаграмм (гистограмм и графиков) — Полос повышения-понижения (Up-Down Bars) . Эти полосы попарно соединяют точки двух графиков, чтобы наглядно показать какая из двух точек выше-ниже, что активно используется при визуализации план-факта:
Легко сообразить, что если убрать линии графиков и оставить на диаграмме только полосы повышения-понижения, то мы получим все тот же «водопад».
Для такого построения нам потребуется добавить к нашей таблице еще два дополнительных столбца с простыми формулами, которые расчитают положение двух требуемых невидимых графиков:
Для создания «водопада» нужно выделить столбец с месяцами (для подписей по оси Х) и два дополнительных столбца График 1 и График 2 и построить для начала обычный график через Вставка — График (Insert — Line Сhart) :
Теперь добавим к нашей диаграмме полосы повышения-понижения:
- В Excel 2013 и новее для этого необходимо выбрать на вкладке Конструктор команду Добавить элемент диаграммы— Полосы повышения-понижения (Design — Add Chart Element — Up-Down Bars)
- В Excel 2007-2010 — перейти на вкладку Макет — Полосы повышения-понижения (Layout — Up-Down Bars)
Диаграмма после этого начнёт выглядеть примерно так:
Осталось выделить графики и сделать их прозрачными, щелкнув по ним по очереди правой кнопкой мыши и выбрав команду Формат ряда данных (Format series) . Аналогичным образом можно изменить и стандартные, весьма убого выглядящие, чёрно-белые цвета полос на зелёные и красные, чтобы получить в итоге более приятную картинку:
В последних версиях Microsoft Excel ширину полос можно изменить, щёлкнув по одному из прозрачных графиков (не по полосам!) правой кнопкой мыши и выбрав команду Формат ряда данных — Боковой зазор (Format series — Gap width) .
В старых версиях Excel для такого исправления приходилось использовать команду на Visual Basic:
- Выделите построенную диаграмму
- Нажмите сочетание клавиш Alt + F11 , чтобы попасть в редактор Visual Basic
- Нажмите сочтетание клавиш Ctrl + G , чтобы открыть панель прямого ввода команд и отладки Immediate (обычно она расположена внизу).
- Скопируйте и вставьте туда вот такую команду: ActiveChart.ChartGroups(1).GapWidth = 30 и нажмите Enter :
При желании можно, конечно, поиграться со значением параметра GapWidth, чтобы добиться нужной величины зазора: