Сенсация! Вот как один переключатель в LibreOffice Calc вывел его далеко впереди Excel

Icons of Microsoft Excel and LibreOffice Calc floating above a blurred spreadsheet background with charts and graphs.

Долгие годы я был убежденным сторонником Excel и считал его непревзойденным. Но стоило столкнуться с задачей поиска по шаблону (регулярным выражениям), как моё мнение изменилось: бесплатный Calc от LibreOffice справляется с такими задачами заметно лучше. Здесь работа с регулярками встроена по умолчанию — любые, даже самые хитрые проверки, делаются в два счета с одной простой формулой.

Регулярные выражения выручают, когда нужно найти или проверить сложный шаблон в тексте. Все, кто хоть раз разбирал “грязные” данные — отслеживал коды не по образцу или искал информацию внутри длинных текстов, — понимают: стандартные средства быстро пасуют. Вот тут на сцену выходит regex.

Почему Calc уверенно обходит Excel при работе с регулярками

Excel не сказать, что совсем не поддерживает регулярные выражения — в 2024 году Microsoft добавила REGEXEXTRACT, REGEXTEST и REGEXREPLACE. Но, если честно, этого маловато.

Во-первых, новые функции есть только у подписчиков Microsoft 365. Пользователи “вечных” лицензий, таких как Office 2021, их не получат вовсе. В веб-версии Excel регулярки есть, но она уступает по функционалу — сложные задачи на ней всё равно не решить.

libre office

LibreOffice

LibreOffice — полноценная бесплатная альтернатива Microsoft Office. Тот же набор программ, только совершенно бесплатно.

Во-вторых, даже если у вас платная версия, Excel не даст использовать регулярки как критерий в формулах. Например, посчитать ячейки по определенному шаблону через =COUNTIF(A:A,REGEXTEST(…)) просто не получится — Excel не воспримет такой результат.

А вот в Calc поддержка regex идет «из коробки». Одна универсальная функция REGEX отвечает за поиск и замену, а что еще круче — в привычные формулы вроде СЧЁТЕСЛИ или СУММЕСЛИ можно прямо в критерий вписать регулярное выражение! Всё просто, бесплатно и прозрачно: логика решения помещается в одну короткую формулу, без карусели из вложенных функций.

По умолчанию поддержка регулярных выражений в Calc выключена. Чтобы включить её, зайдите в меню Сервис → Параметры → LibreOffice Calc и поставьте галочку «Включить регулярные выражения в формулах».

Давайте покажу на реальных задачах, где Excel просто не тянет, а Calc решает их на лету.

Считаем по шаблону: Calc против Excel

Пример: Мне нужно узнать, сколько ячеек в столбце A содержат три заглавные буквы, затем тире и ровно четыре цифры (например, ABC-1234).

A Calc spreadsheet with codes in column A and the ABC-1234 count format in column C.

Как это делается в LibreOffice Calc

В Calc всё до смешного просто: в ячейке E2 пишу формулу, указываю регулярку — и задача решена.

где:

The COUNTIF function in Calc, with a regex pattern used as the criterion.

Это буквально магия: обычный СЧЁТЕСЛИ, в качестве критерия — регулярное выражение. Всё делается одной читабельной формулой без лишних усложнений. Нужно поменять шаблон — редактируем один символ.

Есть ли вариант в Excel?

В Excel встроенные функции не принимают регулярки прямо как аргумент. Даже с подпиской Microsoft 365 приходится городить длинную, громоздкую конструкцию с SUM, двойным минусом и REGEXTEST. Формула получается громоздкой, легко ошибиться:

The REGEXTEST function nested inside SUM in Excel to count the number of codes that follow the ABC-1234 format.

А если у вас старая версия Excel, формула превращается в монстр из вложенных функций. Всё считается, но разобраться — практически невозможно:

A long, complex formula that would need to be used in older versions of Excel to count the number of cells containing a specific string structure.
Icons of Microsoft Excel and LibreOffice Calc floating above a blurred spreadsheet background with charts and graphs.

Может ли бесплатная альтернатива Excel полностью заменить оригинал?

Похоже, Excel утрачивает лидерство на наших глазах…

Извлекаем нужный текст: Calc против Excel

Пример: Нужно получить шестизначный числовой код (например, 123456) — он спрятан в скобках внутри хаотичного текста. Хочу видеть только сам код, без скобок и “мусора”.

A Calc spreadsheet with disorganized text values in column A, each containing a six-figure code in red.

Как это делается в Calc

В Calc всё элементарно: в B2 прописываю нужную формулу.

где:

Двойным кликом растягиваю формулу вниз по столбцу B — Calc сам обработает все строки.

The MID function in Calc, with a regex pattern and the nested SEARCH function used to extract a six-digit code from a text string.

Понятная логика, минимум сложностей: » 1″ обозначает начало кода, а 6 — количество нужных цифр. Формула прозрачная и легко адаптируется под новые задачи.

А что Excel?

Excel такое действительно умеет делать одной функцией, но синтаксис сложнее — нужно аккуратно прописывать скобки и подгруппы, чтобы получить один нужный код:

Еще добавляется таинственный “2” в конце — не сразу понятно, зачем он. В результате формула сложнее и запутаннее, чем в Calc.

The REGEXEXTRACT function in Excel used to extract a number from a messy text string.

Если Excel старый — приходится искать позиции скобок вручную через FIND, вычислять, откуда брать код для MID, сколько символов тащить… Получается суматоха, и если скобок несколько, формула легко собьется:

The MID and FIND functions used in a formula in legacy Excel to extract a digit string from a messy text string.
Two hands using a laptop with the Excel logo on the screen and some icons and charts around it.

5 бесплатных альтернатив Microsoft Excel

Не хотите зависеть от Excel? Вот на что можно перейти уже сегодня.

Извлечение и форматирование: Calc снова впереди!

Пример: Допустим, в A — список “грязных” идентификаторов товаров, закопанных среди прочего текста. Всегда используются четыре цифры и две буквы (например, 1234AB), нужно вытащить их и отформатировать, чтобы получилось 1234-AB.

A product information list in column A of a Calc spreadsheet, with the four-digit-two-letter identifiers in each formatted red.

Решения на одном REGEX в Calc

Вот тут особенно приятно: всё решает одна функция REGEX — никаких вспомогательных столбцов и “костылей”. Просто так:

где:

Дальше — растягиваю нужную формулу вниз, и все коды преобразуются в нужный формат автоматически.

The REGEX function used in Calc to extract an identifier from a messy text string and reformat it as four numbers, a hyphen, and two letters.

Эта формула идеально показывает преимущество Calc: чётко указываю, что искать и как отформатировать. Нужно поменять структуру кода — редактирую два символа, и готово.

Универсальность REGEX в Calc — это мощь. Одна функция решает и поиск, и извлечение, и замену — не нужно держать в голове кучу разных команд и не приходится “плясать с бубном” вокруг скобок. Всё работает наглядно и на любом устройстве — бесплатно.

Что может Excel?

В Microsoft 365 формула похожа, но вам придётся выбирать между тремя функциями — в разных задачах нужны разные REGEX-функции, это сбивает с толку. В данном случае понадобится REGEXREPLACE:

REGEXREPLACE used in Excel to extract and reformat an identifier from a messy text string.

В старых версиях Excel это превращается в гигантскую формулу с кучей вспомогательных шагов. Разобраться потом не сможет вообще никто, кроме автора.

Если подытожить: в LibreOffice Calc регулярные выражения на порядок проще, быстрее, читаемее и бесплатны на любой платформе. В Excel похожие инструменты либо доступны только по подписке, либо для сложных задач нужно прибегать к хакам, макросам и невероятному количеству вложенных функций.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий