Добавить в корзинуПозвонить
Найти в Дзене

Excel нервно закурил в сторонке!

Привет, друзья! Бывает так, что даже простая задача в табличном процессоре становится рутиной и грозит растянуться на долгие часы, а то и дни. И в моей практике был такой случай, когда минимальные знания программирования буквально за 15 минут помогли решить столь же несложную (хотя, как посмотреть) задачу, которую изначально предполагалось решать в Excel.
Итак, ко мне подошел коллега и попытался

Привет, друзья! Бывает так, что даже простая задача в табличном процессоре становится рутиной и грозит растянуться на долгие часы, а то и дни. И в моей практике был такой случай, когда минимальные знания программирования буквально за 15 минут помогли решить столь же несложную (хотя, как посмотреть) задачу, которую изначально предполагалось решать в Excel.

Итак, ко мне подошел коллега и попытался нагрузить меня работой. Есть таблица с двумя столбцами. В первом столбце – дата и время выезда автомобиля из гаража, во втором – время прибытия в пункт назначения. Нужно было по этим данным вычислить время работы и простоя машины. Проблема была в том, что таблицы «колотились» вручную. Даты и время писались в них как попало, на разных строчках. Поэтому, чтобы посчитать время, не отходя от таблиц, нужно было вручную выровнять ячейки, совместив их друг с другом, и только после этого сделать вычисления. В принципе таблицы были небольшие, но их было почти 200 штук!

-2

За основу решения был взят Python, который циклично считывал файлы. В таблице значения ‘nan’ заменялись нулями. Затем каждый столбец преобразовывался в список, из которого удалялись нулевые значения. Осталось только оба списка объединить в DataFrame и вычислить разницу во времени, записав результат в третий столбец. Результат, кстати, выгружался в том же Excel, на «языке» которого привыкли говорить мои на тот момент новые коллеги. На написание программы ушло минут 10-12. Минуты за 2-3 программа прочла все таблицы и посчитала в них значения.

-3

Оставалось только торжественно переслать по корпоративной почте результаты моего труда руководителю, который… Который стал мне поручать задачи на программирование на регулярной основе.

Ваш Доктор Прог!