Excel - encontre e remova o texto, rodeado de vários caracteres

0

Eu tenho um arquivo do Excel com ~ 5.500 linhas de itens de estoque. Uma célula em cada linha é um campo de descrição e contém HTML.

Algumas (mas não todas) dessas células contêm um link formatado assim:

<p><a href="back-to-site-url"><span class="caps">Back to Website<span></a></p>

Alguns deles têm as tags <span> , outras não. A URL âncora também está variando entre todas as ocorrências desse link.

Existe alguma lógica que remova esse link? Uma busca e substituição diretas não funcionaria, apesar de possivelmente amostrar 100 células aleatórias, ver quais combinações de links existem e realizar a localização e a substituição delas.

Que tal uma macro? É possível encontrar cada célula contendo "Voltar ao site" e remover o texto com algum tipo de condicional?

    
por javy 18.02.2014 / 11:53

1 resposta

1

O SUBSTITUTE s aninhado pode funcionar para você. Por exemplo, eu tenho uma lista de endereços MAC que podem ser formatados com um dos três delimitadores (dois pontos, traço, espaço) ou nenhum delimitador. Para torná-las consistentes, faço o seguinte para que elas não sejam delimitadas:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),":",""),"-","")

SUBSTITUTE leva até quatro argumentos, mas isso só precisa dos três primeiros (que são obrigatórios mesmo assim).

  • texto é o primeiro argumento e representa o texto em que você deseja trabalhar. Aqui, o SUBSTITUTE dos alvos mais internos A1. Então, o próximo SUBSTITUTE para o exterior terá o resultado do primeiro, e assim por diante.
  • old_text é o segundo argumento. Este é o texto dentro de texto que você deseja substituir. O mais interno SUBSTITUTE acima está manipulando espaços, o próximo em direção ao externo manipula dois-pontos e o mais externo lida com traços. Se SUBSTITUTE não consegue encontrar old_text em texto , não se importa - simplesmente não faz nada.
  • new_text é o último argumento. Este é o valor para o texto de substituição. Como eu só quero remover os delimitadores com a fórmula acima, ele usa uma string nula - "".

Obviamente, limpar as coisas com as quais você está lidando será muito mais complicado. No entanto, deve haver uma quantidade finita e relativamente limitada de valores que realmente precisam ser limpos. Espero que isso te leve na direção certa.

    
por 21.07.2014 / 01:18