O Excel possui um espaço reservado para Localizar e substituir?

5

Eu quero usar curingas no Excel Find & Substitua a caixa de diálogo para substituir as células por uma correspondência de padrão. Coluna de exemplo composta:

_4
_44
_13
...

Eu quero substituir esses valores por:

(4)
(44)
(13)
...

Então, eu tentei com _* , que encontrou o padrão com sucesso, mas não consegui encontrar em lugar algum se os recursos do Excel correspondessem a espaço reservado. Por exemplo, com regex, eu teria usado colchetes e como espaço reservado para correspondência. O Excel possui esse recurso?

    
por vlad 11.08.2013 / 21:09

2 respostas

5

Os recursos de correspondência de padrões do Excel são extremamente limitados: caracteres literais, * para corresponder a qualquer número de caracteres não especificados e? para corresponder a um único caractere não especificado. Não há recurso de placeholder de correspondência nativa, seja em funções de planilha ou em VBA.

No entanto, como Excellll observou, você pode usar o regex no VBA e pode desenvolver funções definidas pelo usuário que são baseadas em regex.

Para acessar o regex em seu código, adicione uma referência à biblioteca "Microsoft VBScript Regular Expression 5.5" por meio das seleções Tools - &% References no menu principal do editor de código do Visual Basic.

Não encontrei nenhuma documentação abrangente para a biblioteca, mas você pode encontrar muitos bits e peças - e código de exemplo - com uma pesquisa no Google.

    
por 16.08.2013 / 05:22
2

Embora esta seja uma resposta muito tardia, tive sucesso com um suplemento chamado RegEx Find / Replace para fazer exatamente o que você quer. Mas eu não sei de nenhum recurso interno para isso no Excel.

O add-in cria um botão na faixa de opções que inicia uma caixa de diálogo que se parece muito com o Excel Find / Replace. A maior parte funciona da mesma forma - você pode pesquisar em uma planilha ou pasta de trabalho, por colunas ou linhas, combinar maiúsculas e minúsculas, etc. (Não há correspondência de formato, no entanto.)

Observe, no entanto, que o suplemento usa expressões regulares conforme implementado no VBScript e, portanto, funciona de maneira diferente do que o padrão Find / Replace do Excel. Por exemplo, sua string de pesquisa _* não funcionaria. Ele corresponde a qualquer célula com zero ou mais sublinhados, o que é qualquer coisa. Por exemplo, tive sucesso em encontrar _(\d+) e substituir por '($1) . (O apóstrofo é apenas para impedir que o Excel interprete (4) como um valor negativo.)

Não estou de forma alguma afiliado ao site ou ao desenvolvedor - apenas o descobri por meio de uma pesquisa na web. Além disso, eu uso o Excel 2007 e não posso dizer se isso ainda funciona em versões posteriores. Eu o usei com sucesso tanto no Windows 7 quanto no Windows 10.

O suplemento RegEx Localizar / Substituir pode ser encontrado em link

    
por 31.05.2016 / 17:08