Ранее мы рассматривали переменные, которые выражаются:
– единичным числом – например, стартовая дата проекта, или средняя процентная ставка по кредитам;
– числовым рядом – например, плановые расходы на продвижение продукта.
Первый вид переменных вносится в модель как число в единственную ячейку (с возможной валидацией данных, ограничивающей числа предустановленным списком). Второй вид переменных вносится в модель как числовой ряд. Его можно располагать как по горизонтали, в прямом календарном порядке, так и по вертикали, списком с календарными ключами. Первый метод методологически менее корректен (особенно в случае смены длины периода в модели), но нагляднее и делает ошибку менее вероятной. Второй делает вызов переменных сложнее программно: чтобы транспонировать такую матрицу переменных, нужно использовать уже знакомую нам функцию VLOOKUP, а помимо риска ошибки, изобилие в модели таких функций заставляют ее заметно притормаживать даже на современных процессорах, особенно если функции перебирают большие массивы (от нескольких сотен ячеек). Начинающим аналитикам рекомендуется первый метод: создать отдельный лист для всех переменных, размещаемых во временные ряды, и выложить переменные горизонтальными рядами, а затем вызывать их оттуда прямыми запросами (вида =Sheet!A$1).
Теперь рассмотрим третий вариант переменных, которые присутствуют в бизнесе любой компании, – матрицу. Самый типичный пример такой матрицы – персонал компании. Характеристики типичного бизнес-процесса по найму таковы:
- должность;
- подразделение;
- тип должности (руководитель, инженер, продавец и пр.);
- дата найма;
- регулярные расходы (заработная плата, ежемесячные платежи по соцпакетам, соцналоги);
- разовые расходы (премиальные, бонусы за наем, платежи агентствам по найму);
- периодические расходы (например, ежегодное приобретение новой компьютерной техники взамен выбывающей из строя).
Обратим внимание, что даты увольнения в этом перечне нет, хотя все сотрудники рано или поздно покидают фирму. Фирма имеет дело не с людьми, а с функциями людей, и уход сотрудника не означает ликвидации его должности, на которую необходимо нанять нового сотрудника. Исключение составляют ситуации срочного найма – например, под проекты, заведомо имеющие начало и конец, но в этом случае такой наем корректнее учитывать не вместе со штатными сотрудниками, а раздельно, как вид контракторов фирмы. Ситуацию с моделированием найма новых сотрудников на место выбывших мы в данном разделе из соображений простоты рассматривать не будем.
Существуют три основных метода учета в модели бизнес-процессов, связанных с персоналом. Большая часть аналитиков решают задачу, создав матрицу вида:
Достоинства такой матрицы:
- Создается просто и быстро
Недостатки такой матрицы:
- негибкая;
- не содержит всех бизнес-процессов в явном виде (дата найма определяется вручную, местом перехода от пустоты к числу);
- не позволяет автоматически ответить на вопросы «сколько руководителей работает в компании через год» или «сколько нужно выплатить агентству по найму»;
- не позволяет автоматически добавить нового сотрудника – для этого в модель приходится вносить новую строку и копировать все формулы на ряд вниз; если где-то дальше в модели эти строки суммируются – формулы нужно менять вручную и там; риск ошибки вниз по цепочке достаточно велик.
Более продвинутый аналитик использует условную функцию IF, чтобы создать матрицу из списка бизнес-процессов:
Прокомментируем формулу:
=IF (дата начала <= номер периода,зарплата,0)
=IF( | Условная функция, определяющая, начался ли период найма или нет |
$E4 | Вызываем переменную из колонки E «дата начала», в этом же ряду (4). Колонка закреплена жестко (знак $), ряд гибко (знак $ отсутствует). При копировании формулы колонка останется прежней, ряд сместится пропорционально. |
<= | Сравниваем значение оператором «больше или равно» с… |
F$2, | Вызываем переменную из колонки E «дата начала», в этом же ряду (4). Колонка закреплена гибко (знак $ отсутствует), ряд жестко (знак $). При копировании формулы колонка сместится пропорционально, ряд останется прежним. |
$D4, | Если значение «даты начала» меньше и не равно значению «период», значит, сотрудник уже нанят. Расход на его зарплату – сумма зарплаты. Вызываем переменную из колонки D «зарплата», в этом же ряду (4). Колонка закреплена жестко (знак $), ряд гибко (знак $ отсутствует). При копировании формулы колонка останется прежней, ряд сместится пропорционально. |
0 | Если значение «даты начала» меньше и не равно значению «период», значит, сотрудник еще не нанят (вакансия не открыта или открыта и не занята). Расход на его зарплату – 0. |
) | Формула завершена |
Достоинства такой матрицы:
- гибче: позволяет поменять дату найма и автоматически получить новый денежный поток.
Недостатки такой матрицы:
- не содержит всех бизнес-процессов в явном виде (отсутствуют разовые и периодические расходы);
- не позволяет автоматически ответить на вопросы «сколько руководителей работает в компании через год» или «сколько нужно выплатить агентству по найму»;
- не позволяет автоматически добавить нового сотрудника.
В следующем выпуске мы рассмотрим третий способ создания матрицы, которая решит почти все наши проблемы: через создание базы данных на сотрудников и запросы из нее любой нужной нам информации двумя способами – для Excel 2007–2010 и для любых версий Excel.