Dica – Excel e Expressões regulares

17 Comentários

Na sequência da rubrica  Domingo é dia de dicas do Microsoft Word, decidi escrever uma pequena dica de como usar o Microsoft Excel juntamente com expressões regulares.

O PDF é um formato muito popular hoje em dia, sendo comum existir alguma aplicação que leia este formato em qualquer computador pessoal ou de uso público. Existem inúmeras ferramentas que convertem os nossos documentos para este formato, mas quando o que queremos é o contrário, as coisas nem sempre correm como gostaríamos.

excel_00

Suponhamos que, tal como me ocorreu, gostaria de copiar uma pauta escolar recebida em PDF e calcular a média das notas. Quando tentei fazer isso, o formato da tabela perdeu-se completamente!

Para tabelas pequenas, é viável fazer tudo manualmente, mas no caso de pautas com dezenas ou centenas de linhas, torna-se extremamente penoso faze-lo. O problema acentua-se nos casos em que cada registo da tabela tem um número diferente de palavras, como mostra este exemplo. É aqui que entram as Expressões Regulares.

Queremos apagar tudo o que está antes do campo Turma, inclusive. Para começar, copiamos tudo para o Excel e abrimos a janela de pesquisa com CTRL + L (atalho da versão portuguesa).

excel_01

Para este exemplo, vou inserir «*T?» no campo “Localizar” e vou deixar o campo “Substituir” em branco, para eliminar todas as ocorrências. Esta expressão tem um significado especial. O asterisco tem o significado de “qualquer sequência de caracteres”, a letra T é lida literalmente e o ponto de interrogação é lido como “um carácter qualquer”. Na prática, esta expressão corresponde a dizer “todos os caracteres até uma letra T, mais o caracter seguinte”.

Depois só temos de substituir todas as vírgulas por pontos, se necessário, e temos finalmente uma coluna só com a informação pretendida!

excel_02

O uso de expressões regulares está disponível em diversas aplicações além do Excel. A título de exemplo, posso indicar os programas da família Libre Office, ou o Notepad++. Para quem quiser averiguar um pouco mais sobre expressões regulares, sugiro a consulta da tabela seguinte.

Homepage: List of Regular Expressions

Partilhar:
Tags:

Comentários

17

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Ricardo Almeida
    Ricardo Almeida

    Excelente dica 🙂 Não conhecia.

    Mas penso que o colar especial nalguns casos também funciona.

  2. Avatar de Pedro Pinto

    Expressões regulares são potentes!!!!

  3. Avatar de Vítor Moreira
    Vítor Moreira

    Por acaso, tive necessidade de utilizar expressões regulares na função VLOOKUP mas não consegui.

    Desenvolvi umas macros em VBA (Excel), Perl (gnumeric) e OfficeBasic (LibreOffice) para ter esse comportamento.

    Se alguém souber como se faz VLOOKUPs com regexp, apite! Tudo o que seja para simplificar é bem vindo!

  4. Avatar de MininiM
    MininiM

    Nitro PDF!

  5. Avatar de JC
    JC

    Boa dica e ilustrativa do uso das expressões regulares.
    Neste exemplo é mais fácil selecionar no PDF apenas a coluna pretendida (clicando e arrastando o rato), fazer cópia e depois colar na folha Excel.

    1. Avatar de Ecchin
      Ecchin

      Por vezes não dá 😛

  6. Avatar de dezignerdrugs

    Ainda na aula passada o professor da Teoria de Computação falou-nos nisto e usou o exemplo do word e excel. Parece-me que as ER são algo potente.

  7. Avatar de smonteiro
    smonteiro

    Eu uso um programa chamado Able2Extract Pro que funciona que é uma maravilha.

    1. Avatar de JC
      JC

      Programa muito bom. Já experimentei outros e este é realmente o melhor.

  8. Avatar de Carmi
    Carmi

    Isso é que era uma rubrica de excel em paralelo com a do Word, mas eu sei que pedir é facil.
    Bom trabalho, parabens

  9. Avatar de Pedro A.
    Pedro A.

    Boa!!! Considero-me um utilizador avançado de Excel e não conhecia as expressões regulares…
    Agora um desafio: como é que replicas a mesma pauta em excel, ou seja, como é que voltas a ter os diferentes campos em colunas?

    1. Avatar de Ecchin
      Ecchin

      Assim de repente… estou a ver uma forma.
      Usas esta forma para te veres livre da coluna do Número e do Nome, e depois usas a ferramenta de conversão de texto para colunas do Excel, usando o espaço como separador. Depois colas uma nova tabela igual a esta, e livras-te de tudo o que vem a seguir ao T maiúsculos, inclusive, ficando apenas com o Nome e o Número. Mais uma vez, usa o Excel para separar em colunas. Vais é ficar com muitas colunas para o nome, que podes unir, não sei como, agora 😀

      1. Avatar de Pedro A.
        Pedro A.

        Agora sei eu 🙂 usas a função concatenate para juntar as várias células necessárias.
        Ex:
        =concatenate(b2;” “;c2;” “;d2)

        A minha maior dificuladade seria a de partir em colunas dado que o nome do aluno tem um conjunto variável de palavras.

  10. Avatar de RJ99
    RJ99

    Existem serviços e aplicações on-line que dão uma grande ajuda.

    Por exemplo

    http://www.techsupportalert.com/content/best-free-online-applications-and-services.htm#PDF-Tools

  11. Avatar de Gustavo
    Gustavo

    isso que foi aplicado no exemplo não se trata de mais nada do que “caracteres coringas” que existem desde as versões de 1980 para MS-DOS que já processam.

    Tal procedimento do Excel “não comporta” expressões regulares, que pela definição de “Expressões regulares” se extende muito mais adiante do que foi apresentado aqui.

  12. Avatar de KLEIDSON DA SILVA
    KLEIDSON DA SILVA

    Quais são esses caracters antes do * (asterisco) e depois do ponto de interrogação(?) ? Não encontrei no teclado.

  13. Avatar de Marcos Lima
    Marcos Lima

    Não se trata exatamente de expressão regular (regex), o * e o ? foram utilizados como caracteres curingas.
    Em regex estes dois caracteres tem significados diferentes.
    Uma expressão regular que identifica trechos antes de Turma seria :

    EXEMPLO 1:
    Reconhece o trecho a ser apagado ou substituído
    .+?(?=Turma)

    EXEMPLO 2:
    Reconhece todo o trecho e considera o trecho começando com Turma como sendo o grupo 1
    ^.+?(Turma.+$)

    EXEMPLO 3:
    Reconhece o trecho que começa com Turma e ignora o trecho anterior a turma
    Turma.+$

    https://rubular.com/r/ZPhpn5TRLiUtp4
    ——————————————————————————————————————————–
    O regex pode ser utilizado em excel, editor de texto como notepad++, pspad ou linguagem de programação.
    Por exemplo python.
    # ————EXEMPLO 1————-
    from re import sub
    txt = ‘Código Nome Turma Nota’
    txt = sub(‘.+?(?=Turma)’, ”, txt)
    # ————EXEMPLO 2————-
    from re import sub
    txt = ‘Código Nome Turma Nota’
    txt = sub(‘^.+?(Turma.+$)’, ‘\\1’, txt)
    # ————EXEMPLO 3————-
    from re import search
    txt = ‘Código Nome Turma Nota’
    txt = search(‘Turma.+$’, txt)