Excel — найнебезпечніше програмне забезпечення на планеті

У 80-ті роки компанії купували комп’ютери, щоб запускати електронні таблиці. Автоматичний розрахунок податків і зарплат здавався дивом. Тисячі бухгалтерів опинилися на вулиці, іншим довелося освоювати роботу ПК, а саме — Excel.

І досі Excel відіграє найважливішу роль у бізнесі багатьох компаній. Без електронних таблиць у них просто все розвалиться. Складно знайти на комп’ютері іншу програму настільки давню і настільки важливу, від якої так багато всього залежить. І в такій ситуації факапи неминучі.

▍ Програмування в Excel

Професіонали Excel знають, що з формулами, макросами, VBA і лямбдами його функціонал практично безмежний. З лямбдами стали доступні цикли і рекурсія без використання VBA. Є ще динамічні масиви, довільні типи даних та ін.

Є навіть підтримка функцій JavaScript:

Це справжнє програмування, там можна запрограмувати розрахунки будь-якої складності. При цьому не можна забувати перше правило Excel: нікому не говорити, що ви добре ним володієте. Інакше завданням не буде кінця і краю.

Потужні можливості з програмування в Excel призвели до того, що деякі компанії побудували на його основі цілі корпоративні додатки. Наприклад, нещодавно директор британської команди Williams з автоперегонів «Формула-1» Джеймс Ваулз (James Vowles) розповів, що облік усіх 20 000 комплектуючих для складання болідів ведеться в Excel, і це перетворилося на справжній кошмар. Файл дуже важко переглядати і оновлювати. У цьому колосальному файлі Excel не вистачало інформації про те, скільки коштує кожна з деталей, скільки часу потрібно на їх виробництво, які деталі вже замовлені, а які ні. «Коли ви починаєте відстежувати сотні тисяч компонентів, що переміщуються по організації, таблиця Excel стає марною, — сказав Ваулз в інтерв’ю The Race, — через безліч станів, в яких може перебувати кожна деталь — замовлена, відкладена, перевірена, повернута — людині часто доводиться розбиратися в подробицях… І як тільки ви вводите рівень складності сучасної Формули-1, то Excel не справляється, і люди теж».

Через хаос в Excel і викликані ним затримки команда Williams пропустила ранні передсезонні тести в 2019 році. Працівникам іноді доводилося фізично шукати запчастини на заводі команди. Неправильні деталі отримували пріоритет, інші приходили із запізненням, а деякі накопичувалися. Перехід на сучасну систему трекінгу в 2023 році виявився «жахливо дорогим», а щоб компенсувати болісний процес, «люди довели себе до абсолютної межі і перейшли її».

Кілька років тому про використання Excel при розробці нового боліда розповіла команда Renault Sport, у якої розмір таблиці досягав 77 000 рядків.

І вони, напевно, не єдині компанії, які намагаються втиснути великі дані в електронні таблиці. Їх можна зрозуміти. У наш час Excel обростає допоміжними засобами. Наприклад, є навіть програма для публікації (експорту) електронних таблиць у вигляді веб-додатків. Важко відмовитися від універсального інструменту, в якому можна зробити що завгодно.

▍ Обмеження Excel

У сучасному Excel діють такі обмеження на розмір таблиць і робочих книг:

  • 1 048 576 рядків,
  • 16 384 стовпців,
  • 255 символів (ширина стовпця),
  • 32 767 символів (максимальний вміст комірки),
  • 512 шрифтів на робочу книгу,
  • не більше 65 530 гіперпосилань в одній таблиці,
  • 10 000 елементів у розкривних списках фільтрів,
  • назва файлу, включаючи шлях — не більше 218 символів,
  • та ін.

Багато обмежень пов’язані з обсягом доступної оперативної пам’яті.

Макроси, лямбди та вбудоване в Excel програмування — це чудово, проте широка функціональність має і зворотний бік. Перевантажені макросами величезні документи забирають багато системних ресурсів, тобто просто гальмують роботу. Іноді відкриття таблиці з тисячами аркушів доводиться чекати кілька хвилин, і вона насилу поміщається в пам’ять. Зловмисники використовують макроси для запуску шкідливого коду.

Тисячі аркушів, формули та макроси з автоматичними розрахунками — це вже міні-додатки. Excel не створений для такого.

У розпал епідемії ковіду Національна служба охорони здоров’я Великої Британії втратила результати тестування на ковід у процесі конвертації файлів з формату CSV у XLS, який підтримує лише близько 65 000 рядків. Для довідки, XLS — це старий формат 1987 року, на зміну якому в 2007 році прийшов XLSX.

Були втрачені дані про 15 841 пацієнта:

У цій ситуації можна сказати, що технічні обмеження Excel поставили під загрозу життя людей. Вони стали заручниками застарілого формату, який як і раніше доступний заради зворотної сумісності. На думку фахівців, Національна служба охорони здоров’я повинна була замінити Excel у своєму технологічному процесі обробки даних.

Гарвардські професори Кармен Рейнхарт і Кеннет Рогофф опублікували наукову роботу про кореляцію зростання ВВП і високого національного боргу країн. Через помилку в обчисленнях Excel висновки їхньої економічної роботи виявилися невірними. За некоректним розрахунком, країни з найбільшим боргом показують падіння ВВП, хоча насправді там спостерігається зростання 2,2% (виправлений розрахунок).

У 2012 році банк JPMorgan Chase ледь не збанкрутував через ризиковані інвестиції. Як показало внутрішнє розслідування, розрахунки ризиків виконувалися в таблицях Excel, де дані переносилися вручну копіпастом з однієї таблиці в іншу — і була допущена помилка, що призвело до заниження ризиків при торгівлі деривативами.

Коли Barclays викуповував активи збанкрутілого банку Lehman Brothers, вони приховали 179 рядків з непотрібними активами в таблиці Excel, але не видалили їх. При роздрукуванні документа в PDF ці рядки були надруковані — і суд зобов’язав Barclays викупити в тому числі ці 179 збиткових активів.

У 2023 році австрійська політична партія SPÖ через помилку в Excel оголосила переможцем на виборах не того кандидата.

У 2017 році фінансовий директор Adobe заборонив своїм співробітникам користуватися Excel (всі перейшли на Adaptive Insights EPM, з інших альтернатив називають Anaplan і Workiva). З такими ж заборонами виступило керівництво China Bistro, ABM Industries, Wintrust Financial і багатьох інших компаній. Відмова від Excel знижує ризики помилок в розрахунках і спрощує документообіг.

Дослідження EuSpRIG (Європейська група з ризиків електронних таблиць) показало, що понад 90% електронних таблиць містять помилки, а в половині корпоративних таблиць присутні «суттєві дефекти».

Ну і на додачу традиційні глюки з автоформатуванням, через яке навіть біологам доводиться перейменовувати гени людини, такі як MARCHF1 (колишній MARCH1) і SEPTIN1 (колишній SEPT1), щоб Excel не сприймав їх за дати. Дослідження 3597 опублікованих наукових статей показало, що приблизно в 20% супровідних матеріалів (електронних таблиць) до статей присутні помилки в назвах генів:

З ідентифікаторів та інших значень у комірках за замовчуванням видаляються провідні нулі — це також стандартна поведінка Excel, яка часто призводить до проблем. Імпорт будь-яких даних із CSV в Excel пов’язаний із ризиком їх пошкодження. А ці дані можуть бути життєво важливими, необхідними для порятунку тих самих пацієнтів у лікарнях.

Ось чому Excel іноді називають «найнебезпечнішою програмою на планеті». Занадто багато від неї залежить. І занадто багато помилок.

▍ Альтернативи Excel

У наш час багато користувачів вважають за краще використовувати онлайн-альтернативи Excel, такі як Google Sheets. Ці таблиці мають сильно обмежену функціональність у порівнянні з Excel, але мають важливу перевагу: можливість спільної роботи.

Існують і більш просунуті сервіси, крім Google Sheets. Наприклад, Airtable вже виходить на межу між електронними таблицями та реляційною СУБД і позиціонується як конструктор додатків:

Нещодавно з’явився ще один сервіс — Grist, який позиціонує себе як опенсорсна альтернатива Airtable. Але між Grist та Airtable є й ключові відмінності. Grist набагато краще налаштовується, тут надійніша підтримка формул і загалом інший підхід до питань володіння даними, включно з контролем дозволів на доступ (кастомні фільтри діють для конкретних користувачів, тож кожному можна показувати окрему версію документа або дозволяти редагувати лише певні стовпці).

І Grist, і Airtable дозволяють пов’язувати записи в різних таблицях. В Airtable пов’язані записи відображаються у картці як швидке посилання на пов’язану інформацію. У Grist можна витягати дані частково чи повністю, у вигляді картки або таблиці.

Можна створювати безліч різних комбінацій одних і тих самих даних. У деяких аспектах Grist радше нагадує СУБД Access, а не Excel:

Grist і Airtable пропонують колонки кількох типів: числові, текстові, дата, вибір, посилання та вкладення. Підхід до роботи з БД є їхньою відмінною рисою порівняно з традиційними електронними таблицями. Обидва сервіси пропонують зручні віджети, такі як календар для вибору дати та випадний список з автозаповненням.

Для розробників кастомні віджети відкривають більше можливостей. Вони можуть зчитувати та/або записувати дані в документ і відображати їх у нових форматах, наприклад, створювати рахунки-фактури чи поштові наклейки. Крім того, можна підключати зовнішні дані. Наприклад, під’єднати карту та позначити місця, збережені в документі. У Grist віджети схожі на Blocks SDK Airtable, які також дозволяють користувачам Airtable створювати власні застосунки.

В Airtable скриптові застосунки більш просунуті, ніж у Grist, проте й тут доступні функції на кшталт вбудовування Google Maps, рандомізації значень або масового прикріплення файлів до комірки, хоча інші автоматизовані можливості поки що недоступні.

Grist і Airtable підтримують Excel-подібні функції на зразок IF(), CONCATENATE(), COUNT() тощо. Водночас Grist підтримує Python для створення потужніших формул, які поглиблюють аналіз даних та обчислення.

Усю реляційну структуру таблиць Grist можна експортувати у вигляді файлу .grist, який є файлом SQLite і може бути відкритий в інших програмах SQLite. Резервне копіювання документів виконується автоматично, а знімки можна легко експортувати у повному обсязі.

На жаль, і Grist, і Airtable — платні сервіси. Безкоштовний тариф Airtable дозволяє зберігати лише 1200 рядків, тоді як у Grist — 5000 рядків. Але у Grist опубліковано вихідний код, тож сервер можна встановити на власному хостингу й користуватися ним безкоштовно.

Порівняння функціоналу Grist та Airtable:

Як потенційну альтернативу Excel можна згадати ще Ultorg — застосунок для роботи з базами даних загального призначення, який підключається до наявних даних:

Докладніше автор пояснює концепцію в цій дев’ятихвилинній презентації.

▍ Усе можна виправити. Люди просто не хочуть цього робити

Ми згадали кілька випадків, коли люди віддають перевагу використанню «костилів» Excel замість спеціалізованої СУБД чи ERP. Вони часто користуються старим інструментом, навіть коли він уже не є ефективним рішенням завдання. Але ніхто не хоче перебудовувати базу з нуля, усі тримаються за старе легасі й будують нові костилі поверх старих. Усе це перетворюється на величезний картковий будинок, який лише дивом не падає.

Цікаво, що це явище схоже на деякі когнітивні викривлення, коли люди заплющують очі на реальність, якщо вона не збігається з їхніми установками. Щоб уникнути зосереджених роздумів, людина готова витримати навіть фізичний біль.

Покладаючись на Excel, потрібно пам’ятати, що це досить обмежена й глючна програма, не СУБД, не ERP, не корпоративна система, а просто електронні таблиці. Заради безпеки іноді слід обрати надійніше, спеціалізоване ПЗ або написати власне рішення. Як відомо, великі дані в Excel не вміщуються.

Є думка, що Excel піддається ефекту Лінди, згідно з яким прогнозований термін життя технології пропорційний її віку. Чим довше технологія з нами, тим важче їй померти. У такому разі Excel можна вважати безсмертним.

🚀Долучайтесь до нашої спільноти Telegram:

🚀Долучайтесь до нашої спільноти FaceBook:

🚀Долучайтесь до нашої спільноти Twiter X:

Leave a Reply