Прав был Стив Джобс, когда говорил:
Работать надо не 12 часов, а головой!
Сегодня хочу поделиться с вами своей историей, как нельзя лучше иллюстрирующей эту фразу. Парень из соседнего отдела действовал обычным способом, а я включил голову и сделал то же самое в разы быстрее.
Предисловие
Несколько лет назад я работал в строительной компании. Одна из задач сотрудников - подготовка тендерных и коммерческих предложений (КП). Частью коммерческого предложения является таблица в Excel с перечнем работ и материалов, а также их стоимостью. Таблицу для заполнения, как правило, предоставляет Заказчик.
Так было и в этот раз. С одной особенностью. Заказчик заблокировал все ячейки в таблице, кроме тех, в которые надо вводить данные. Причина понятна - чтобы кто-то из участников тендера случайно (или намеренно) не внёс изменения в перечень работ и материалов, не изменил формулы.
Вот только работать с такой таблицей оказалось совершенно неудобно. Обычно сбоку таблицы выполняют вспомогательные расчёты. А здесь это сделать было невозможно.
В итоге, нашли в интернете программу и взломали таблицу: удалили пароль и разблокировали ячейки. Дальше несколько дней готовили КП: запрашивали цены у поставщиков, делали расчёты, заполняли таблицу.
Проблема подкралась там, где не ждали
В нужный день таблицу отправили Заказчику. Он взломанную таблицу не принял и потребовал прислать КП в невзломанной таблице.
Казалось бы, что проще? Просто скопировать данные из одной таблицы в другую, они же (таблицы) одинаковые. Но суровая реальность оказалась слишком суровой.
Структура таблицы была такой, что незаблокированные ячейки в столбике чередовались с заблокированными. Примерно вот так: зелёные - незаблокированные, остальные - заблокированные.
Зачем так было сделано - неясно, но это не позволяло скопировать несколько ячеек подряд (либо столбик целиком) из одной таблицы и вставить в таблицу с заблокированными ячейками. При копировании таким образом вставка осуществлялась только в первую ячейку.
В таблице было около двух с половиной тысяч позиций. И каждую ячейку нужно было копировать отдельно или заполнять вручную.
Сколько это всё заняло времени при заполнении обычным способом
Поняв всю безнадёжность ситуации, сотрудник сначала расстроился, а потом быстро начал переносить данные из одной таблицы в другую. Работа-то сама себя не сделает.
Сначала до конца рабочего дня в офисе. Это заняло у него 2 часа.
Потом поехал домой и привлёк на помощь жену. Она диктовала данные из первой (взломанной) таблицы, а он вбивал во вторую. Дело пошло быстрее, но они потратили 4 часа чтобы полностью заполнить таблицу. В сумме вышло ещё 4*2=8 часов.
После этого выяснилось, что итоговые значения в таблицах не совпадают. Данные в незаблокированном файле были с множеством знаков после запятой, а в ячейке отображалось только два, которые и диктовала жена. Пришлось подгонять итоговые данные под нужные значения, выборочно корректируя некоторые позиции. Это заняло ещё 2 часа.
В итоге весь этот процесс занял 2+4*2+2=12 часов.
Вот такую печальную историю я услышал на обеде у невыспавшегося и грустного сотрудника соседнего отдела. Грустного потому, что впереди его ждала ещё одна такая таблица по второму зданию. Но уже на более чем 3000 позиций.
Я решил выручить парня, предлагая заполнить таблицу вместо него, если он оплатит мне ужин на двоих в соседнем хорошем ресторане. Он согласился, но поставил условие, что я сделаю это до конца рабочего дня.
А вот как сделал я, просто включив голову
Ввязываясь в эту, казалось бы авантюру, я уже знал, как с честью из неё выйду. Тут есть пара важных моментов, без которых всё было бы немного сложнее:
- Таблицы идентичны по структуре
- Размеры таблиц известны и совпадают
А дальше запускаем Excel, открываем редактор Visual Basic for Applications и пишем примитивный код на два десятка строк.
Запускаем, тестируем и вуаля! Данные из одной таблицы в другую программа переносит за несколько секунд.
На всё это у меня ушло около 20 минут. Как раз в остаток обеденного перерыва уложился.
А теперь сравните 12 часов и 20 минут.
Причём, следующий раз на заполнение такой таблицы он потратит ещё около 12 часов, а я уже пару минут: готовый код-то уже есть, осталось только запустить.
Вот так, просто включив голову, я сэкономил кучу времени и влёгкую заработал на бесплатный ужин в хорошем ресторане.
===
Понравилась статья? Ставьте палец вверх и я напишу ещё интересней. Не забывайте подписываться на канал, чтобы не пропустить новую статью.