Формулы для текста и кодов в вычисляемой колонке
Адрес одной строкой, код с нулями спереди, СНИЛС, который нельзя отдавать как есть, сумма «1 234,50» вместо 1234.5 — обычно за этим пишут макрос или открывают Excel. В Tabulens для этого есть функции вычисляемой колонки: регулярные выражения, разбор по разделителю, хэш SHA-256, Base64, кодирование для адресов и HTML, формат числа и даты.
Бесплатно для личного использования. «Преобразование» → «Вычисляемая колонка». Файлы не загружаются на сервер. Версия для Windows — 5,4 МБ, без установки: подробнее. Для организаций — лицензия, 2000 ₽ за рабочее место.
Функции
| Функция | Что делает |
|---|---|
REGEXEXTRACT(x, 'шаблон', [группа]) | часть текста по регулярному выражению; группа — в скобках, без скобок возвращается всё совпадение; не нашлось — пусто |
REGEXREPLACE(x, 'шаблон', чем) | заменяет все совпадения |
SPLITPART(x, ';', n) | n-я часть через разделитель, счёт с единицы; −1 — последняя; пробелы по краям убираются |
SHA256(x, [соль]) | хэш SHA-256 от «соль + значение»; пустое значение остаётся пустым |
BASE64(x), UNBASE64(x) | кодирование и раскодирование Base64 |
URLENCODE(x), URLDECODE(x) | пробел ↔ %20 и прочее для адресов |
HTMLENCODE(x), HTMLDECODE(x) | экранирует и возвращает < > & |
NUMFMT(x, знаков, [разряды], [точка]) | число в текст с нужным числом знаков и разделителями |
DATEFMT(дата, 'маска') | дата в текст по маске: YYYY, YY, MM, DD, hh, mm, ss |
Язык тот же, что у обычных формул и у строки фильтра, поэтому функции можно вкладывать друг в друга и сочетать с IF, TRIM и остальными.
Примеры
| Задача | Формула |
|---|---|
| Номер дома из адреса «ул. Ленина, д. 15» | REGEXEXTRACT(ADRES, 'д\. ?(\d+)') |
| Убрать ведущие нули у кода | REGEXREPLACE(KOD, '^0+', '') |
| Последнее слово — например, отчество из «ФИО» | SPLITPART(FIO, ' ', -1) |
| Один и тот же код вместо СНИЛС у всех, кто знает соль | SHA256(SNILS, 'ваша-соль') |
| Сумма как «1 234,50» | NUMFMT(SUMMA, 2, ' ', ',') |
| Дата как «05.03.2024» или «20240305» | DATEFMT(DR, 'DD.MM.YYYY'), DATEFMT(DR, 'YYYYMMDD') |
Регулярные выражения не различают регистр, а \w в них означает букву любого алфавита, а не только латиницу — кириллица, диакритика и иероглифы подходят.

Хэш вместо личных данных
SHA256(SNILS, 'соль') даёт один и тот же код для одного и того же СНИЛС: по таким кодам можно сводить и сверять две выгрузки, не видя самих номеров. Без соли хэш короткого номера легко подобрать перебором, поэтому соль нужна — храните её как пароль.
Если нужен просто порядковый номер, а не код, используйте «Анонимизировать» — оно заменяет значения номерами по порядку.

В сценарии
Любую такую формулу можно сделать шагом сценария. В каталоге «+» у шагов с формулами есть группа «Текст и коды»: заготовки «Часть текста по шаблону», «Дата или число — в текст по маске», «Дополнить нулями слева», «Убрать ведущие нули», «Хэш SHA-256 с солью» — остаётся заменить колонку и шаблон.
Соль записана в формуле, а значит, и в файле сценария. Передаёте сценарий другим — передавайте его только тем, кому можно знать соль.
Частые вопросы
Что будет, если шаблон ничего не нашёл?
REGEXEXTRACT вернёт пустое значение, а REGEXREPLACE оставит текст как есть. Колонку с пустыми можно отфильтровать как любую другую.
Как посчитать части с конца?
Отрицательный номер в SPLITPART: −1 — последняя часть, −2 — предпоследняя.
Можно ли записать результат в файл?
Вычисляемая колонка в файл не пишется. В её меню есть «Записать значения в колонку» — значения лягут правкой и сохранятся как любые другие.
Хэш обратим?
Нет: SHA-256 — односторонняя функция. Восстановить значение можно только перебором, поэтому у коротких номеров нужна соль.
Бесплатно для личного использования. Файл не загружается на сервер. Версия для Windows — 5,4 МБ, без установки: подробнее. Для организаций — лицензия, 2000 ₽ за рабочее место.