Fórmulas de texto e códigos em uma coluna calculada
Um endereço em uma linha só, um código com zeros à esquerda, um CPF que não pode sair da empresa, um valor como «1.234,50» em vez de 1234.5: para isso costuma-se escrever uma macro ou abrir o Excel. O Tabulens tem funções para isso na coluna calculada: expressões regulares, divisão por separador, hash SHA-256, Base64, codificação para URL e HTML, formato de número e de data.
Grátis para usar. «Transformação» → «Coluna calculada…». Nada é enviado. Versão para Windows — 5.4 MB, sem instalação: detalhes. Pro — US$ 29 uma vez: preço.
As funções
| Função | O que faz |
|---|---|
REGEXEXTRACT(x, 'padrão', [grupo]) | parte do texto por uma expressão regular; o grupo fica entre parênteses, sem parênteses volta toda a ocorrência; se não houver, fica vazio |
REGEXREPLACE(x, 'padrão', por) | substitui todas as ocorrências |
SPLITPART(x, ';', n) | a parte n por um separador, contando de um; −1 é a última; espaços das bordas são removidos |
SHA256(x, [sal]) | hash SHA-256 de «sal + valor»; valor vazio continua vazio |
BASE64(x), UNBASE64(x) | codifica e decodifica Base64 |
URLENCODE(x), URLDECODE(x) | espaço ↔ %20 e o resto, para endereços |
HTMLENCODE(x), HTMLDECODE(x) | escapa e restaura < > & |
NUMFMT(x, casas, [milhar], [vírgula]) | um número em texto com as casas e separadores escolhidos |
DATEFMT(data, 'máscara') | uma data em texto por uma máscara: YYYY, YY, MM, DD, hh, mm, ss |
É a mesma linguagem das fórmulas comuns e da linha de filtro, então as funções se aninham e combinam com IF, TRIM e as demais.
Exemplos
| Tarefa | Fórmula |
|---|---|
| Número da casa em «Rua das Flores, nº 15» | REGEXEXTRACT(ENDERECO, 'nº ?(\d+)') |
| Remover zeros à esquerda de um código | REGEXREPLACE(CODIGO, '^0+', '') |
| A última palavra, p. ex. o sobrenome em «NOME» | SPLITPART(NOME, ' ', -1) |
| O mesmo código no lugar do CPF para quem conhece o sal | SHA256(CPF, 'seu-sal') |
| Um valor como «1.234,50» | NUMFMT(VALOR, 2, '.', ',') |
| Uma data como «05.03.2024» ou «20240305» | DATEFMT(NASCIMENTO, 'DD.MM.YYYY'), DATEFMT(NASCIMENTO, 'YYYYMMDD') |
As expressões regulares não diferenciam maiúsculas e \w significa uma letra de qualquer alfabeto, não só latino: acentos, cirílico e caracteres CJK valem.
Hash no lugar de dados pessoais
SHA256(CPF, 'sal') dá o mesmo código para o mesmo CPF, então duas exportações podem ser cruzadas e comparadas por esses códigos sem que ninguém veja os números. Sem sal, o hash de um número curto é fácil de descobrir por força bruta; use sal e guarde-o como uma senha.
Se só precisa de um número de ordem, e não de um código, use «Anonimizar»: ele troca os valores por números em sequência.
Em um cenário
Qualquer uma dessas fórmulas pode ser uma etapa de cenário. No catálogo «+», as etapas de fórmula têm o grupo «Texto e códigos» com modelos: parte do texto por um padrão, data ou número em texto com máscara, completar com zeros à esquerda, remover zeros à esquerda, hash SHA-256 com sal. Basta trocar a coluna e o padrão.
O sal fica escrito na fórmula e, portanto, também no arquivo do cenário. Passe o cenário só a quem pode conhecer o sal.
Perguntas frequentes
E se o padrão não encontrar nada?
REGEXEXTRACT devolve um valor vazio e REGEXREPLACE deixa o texto como está. Os vazios podem ser filtrados como em qualquer outra coluna.
Como pego partes a partir do fim?
Com um número negativo em SPLITPART: −1 é a última parte, −2 a anterior.
Dá para gravar o resultado no arquivo?
Uma coluna calculada não é gravada no arquivo. O menu dela tem «Gravar os valores na coluna»: os valores entram como uma edição e são salvos como qualquer outra.
O hash é reversível?
Não: SHA-256 é de mão única. Só se recupera um valor testando possibilidades, por isso números curtos precisam de sal.
Grátis para usar. Seu arquivo não é enviado a nenhum servidor. Versão para Windows — 5.4 MB, sem instalação: detalhes. Pro — US$ 29 uma vez: preço.