Британия потеряла 16 тысяч заражённых, потому что в Excel закончились строчки
Октябрь 2020. Разгар пандемии. Англия ведёт учёт тестов, отслеживает контакты, строит графики и принимает решения о локдаунах.
И тут выясняется, что примерно 16 тысяч положительных результатов просто не попали в систему.
Не потеряли в дороге. Не перепутали. Не украли.
Они не влезли в файл.
Как это было устроено
Схема выглядела так.
Лаборатории отправляли результаты тестов в Общественное здравоохранение Англии (Public Health England) обычными текстовыми файлами формата CSV. Никаких ограничений по объёму там нет — хоть миллион строк.
Дальше эти данные сводили воедино. И вот на этом этапе кто-то использовал Excel в старом формате .xls.
Тот самый, из 2003 года.
У .xls есть жёсткий предел: 65 536 строк. Всё, что не поместилось, отбрасывается.
Причём — и это ключевой момент — молча.
Никакого предупреждения. Никакого красного окна «внимание, данные обрезаны». Файл открывается, всё выглядит нормально, таблица заполнена. Просто конец списка отсутствует.
Дополнительная деталь, которая усугубила ситуацию: один тест занимал в таблице не одну строчку, а несколько — со служебными полями. То есть лимит выбирался быстрее, чем можно было предположить.
В результате за период с 25 сентября по 2 октября из системы выпало 15 841 подтверждённых случая.
Что это означало на практике
Каждый положительный результат в системе отслеживания запускает цепочку: контакт-трейсеры обзванивают человека, выясняют, с кем он общался, и предупреждают этих людей о необходимости изолироваться.
Нет записи в системе — нет звонка.
По оценкам, порядка 48 тысяч человек, контактировавших с заражёнными, не получили уведомления вовремя. Они продолжали ходить на работу, в магазины и в гости, не подозревая, что уже могли подхватить вирус.
Кроме того, эти данные шли в статистику, на основе которой принимались решения о введении ограничений в конкретных районах.
То есть какое-то время правительство планировало противоэпидемические меры, глядя на цифры, из которых вычли шестнадцать тысяч случаев.
Ошибку обнаружили, когда кто-то заметил странное расхождение между тем, что сообщали лаборатории, и тем, что показывала база.
Как чинили
Решение оказалось... скажем так, соответствующим уровню проблемы.
Файлы разбили на несколько частей поменьше.
Не перевели на нормальную базу данных. Не отказались от формата двадцатилетней давности. Просто стали резать входящие данные на куски, которые помещаются.
Позже систему всё-таки переработали, но первая реакция была именно такой.
Отдельно отмечу трогательную деталь: официальные лица в комментариях старательно избегали слова «Excel», предпочитая формулировку «техническая проблема».
Технически — не соврали.
Это, к сожалению, не единичный случай
Excel — прекрасная программа. Проблема в том, что её используют для задач, для которых она не предназначена. И происходит это регулярно, на очень высоком уровне и с очень дорогими последствиями.
Вот несколько показательных примеров.
Как Excel обосновал политику жёсткой экономии
2010 год. Экономисты Кармен Рейнхарт и Кеннет Рогофф публикуют работу «Рост во времена долга».
Главный вывод: когда государственный долг превышает 90% ВВП, экономический рост резко замедляется.
Работа становится одной из самых цитируемых в экономике за десятилетие. На неё ссылаются политики по обе стороны Атлантики, обосновывая необходимость сокращать бюджетные расходы. Она фигурирует в дискуссиях о мерах экономии в Европе.
2013 год. Аспирант Массачусетского университета Томас Херндон получает от преподавателя учебное задание: воспроизвести результаты известного исследования.
Он берёт работу Рейнхарт и Рогоффа. Считает. Не сходится.
Считает снова. Опять не сходится.
Херндон обращается к авторам, и те — надо отдать им должное — присылают ему исходную таблицу.
В таблице обнаруживается формула усреднения, которая захватывает не все строки. Из расчёта выпали пять стран, включая Австралию, Австрию, Бельгию, Канаду и Данию.
Плюс к этому — спорные методологические решения по взвешиванию данных.
После пересчёта картина меняется существенно. Резкого обрыва роста на отметке 90% не обнаруживается.
Ошибка в диапазоне ячеек. В работе, которой аргументировали экономическую политику целых государств.
«Лондонский кит» и таблица, которую копировали вручную
2012 год. JPMorgan Chase теряет около шести миллиардов долларов на торговых операциях подразделения в Лондоне.
История сложная, там хватает и рискованных стратегий, и проблем с надзором. Но в отчёте о расследовании есть отдельный примечательный фрагмент.
Модель оценки риска работала на связке таблиц Excel, между которыми данные переносились копированием вручную.
И в одной из формул расчёта волатильности вместо деления на среднее значение двух показателей стояло деление на их сумму.
Результат: риск систематически занижался примерно вдвое.
Крупнейший банк США. Модель управления рисками. Копипаст между вкладками.
Как учёные переименовали гены, потому что Excel не сдался
Это моя любимая часть.
У человеческих генов есть короткие обозначения. Например, SEPT2 (септин 2) или MARCH1.
Excel, увидев такое в ячейке, включает автоформатирование и радостно превращает их в даты: 2-Sep, 1-Mar.
Отменить это можно, но нужно заранее выставить текстовый формат. Про это, разумеется, помнят не все.
Исследование 2016 года проверило дополнительные материалы к статьям в генетических журналах.
Результат: примерно 20% работ содержали испорченные названия генов.
Данные, на которых строятся выводы о заболеваниях, лежали в открытом доступе с датами вместо генов.
А теперь развязка.
В 2020 году Комитет по номенклатуре генов человека официально переименовал ряд генов, чтобы избежать конфликта с Excel.
SEPT2 стал SEPTIN2. И так далее.
Не производитель софта поправил поведение программы. Наука изменила терминологию, чтобы подстроиться под текстовый редактор.
Это, пожалуй, лучшая иллюстрация расстановки сил в современном мире.
Олимпиада, лишний ноль и десять тысяч человек без мест
2012 год, подготовка к Олимпиаде в Лондоне.
Сотрудник, вносивший данные о продаже билетов на синхронное плавание, ввёл 20 000 вместо 10 000.
Одна лишняя цифра.
В результате продали примерно десять тысяч билетов на места, которых не существует.
Обнаружили не сразу. Пересадить всех было некуда. Организаторам пришлось предлагать пострадавшим билеты на другие соревнования и возвращать деньги.
Барклайс покупает то, что не собирался
2008 год. Крах Lehman Brothers. Barclays в спешном порядке выкупает часть активов.
Список приобретаемого готовили в Excel. Из таблицы убрали позиции, которые покупать не планировалось.
Убрали — методом скрытия строк.
При конвертации файла в PDF для подачи в суд скрытые строки благополучно вернулись обратно в документ.
В итоге Barclays получила 179 контрактов, которые приобретать не намеревалась.
Разбирались с этим уже отдельно, через суд.
И совсем короткое
TransAlta, 2003. Канадская энергокомпания подаёт заявки на контракты. Ошибка при копировании строк в таблице — заявки уходят не туда и не по тем ценам. Убыток около 24 миллионов долларов.
Гендиректор прокомментировал это фразой, которую стоит выбить в граните: «Обычная ошибка при копировании и вставке в электронной таблице».
Fidelity Magellan Fund, 1994. При подготовке оценки прибыли бухгалтер пропустил знак «минус». Убыток в 1,3 миллиарда превратился в прибыль. Инвесторам пообещали дивиденды, которых не было. Пришлось публично извиняться.
MI5, 2010. Из-за ошибки форматирования при выгрузке данных запрос на прослушку ушёл по неверным телефонным номерам. Пострадали 134 номера, не имевших отношения к делу — цифры сдвинулись.
Что со всем этим делать
Вывод не в том, что Excel плохой. Excel замечательный, и именно поэтому его суют куда попало.
Проблема в другом.
Электронная таблица создаёт иллюзию надёжности. Данные выглядят упорядоченно, всё в клеточках, формулы считают. Психологически это воспринимается как система, хотя системой не является.
Настоящая база данных при попытке засунуть в неё лишнее выдаст ошибку. Excel просто молча обрежет.
Именно поэтому все перечисленные истории объединяет одна общая черта: ошибку никто не заметил сразу. Ни в JPMorgan, ни в британском здравоохранении, ни в экономической статье, которую цитировали тысячи раз.
Потому что таблица выглядела нормально.
Так что если у вас на работе критически важный процесс держится на файле, который передают по почте с названием вроде «отчёт_финал_2_ИСПРАВЛЕННЫЙ.xlsx» — вы теперь примерно понимаете масштаб рисков.
Отдельный привет тем, кто ведёт в Excel бухгалтерию, склад, кадры и планирование одновременно. В одном файле. С 2017 года.
Держитесь. Британия тоже держалась.
Если такое заходит — у нас в канале Интересные факты этого добра хватает. Проверенные истории, без учебникового тона.



















