Tenho uma lista de nomes que quero comparar com outra lista de nomes. No entanto, alguns nomes incluem caracteres especiais (especificamente # e parênteses). Percebi que o XLOOKUP parece não detectar correspondências que incluam caracteres especiais, mas nada na documentação sugere que certos caracteres sejam proibidos.
No exemplo abaixo, a primeira coluna contém a lista completa de nomes, a quarta coluna contém a lista de referências para comparação. A segunda coluna contém o comando:
=XLOOKUP(A2,$D$2:$D$9,$D$2:$D$9,"not found",3)
Como pode ser visto, os nomes "Phoebe (#6)" e "Simeon (#)" aparecem tanto na lista completa quanto na lista de consulta (em negrito), mas retornam um resultado "não encontrado".
Qualquer ajuda é muito apreciada!
Observe que estou usando a versão para Mac do Excel (16.96.1), então estou me perguntando se isso é um problema com bugs do Mac (Sonoma 14.6.1) ou se o problema pode ser reproduzido no Windows. Também estou me perguntando se é realmente um bug ou se há algo mais acontecendo.
Atualização : Observe que preciso usar REGEX no meu caso porque frequentemente procuro correspondências parciais. Não pensei em incluir a parte REGEX no meu exemplo original para mantê-lo simples, mas vários comentaristas notaram que é a REGEX que causa o problema (ou seja, usar a opção de correspondência exata funciona bem). Existe algum motivo para a REGEX causar esse problema e alguma solução alternativa que permita usar REGEX com caracteres especiais?
Sua fórmula não funciona com seus dados porque não corresponde aos parênteses (
( )
).Em uma Regex, parênteses são caracteres especiais que delimitam um grupo de captura.
Se você quiser combiná-los especificamente, você tem que escapar deles colocando uma barra invertida antes deles.
Para modificar sua fórmula para que ela funcione como uma regex, você pode usar algo como:
A
REDUCE
função substituirá qualquer um dos caracteres no argumento da matriz por\
+the character
.Neste caso, tenho apenas
)
and(
no array, mas você pode adicionar outros caracteres, se necessário.Não tenho certeza de como isso ajuda você com correspondências parciais, mas explica por que sua regex não funciona.
Você está usando 3 como o 4º argumento de XLOOKUP que é para "correspondência REGEX", você tentou com uma correspondência exata, ou seja
Isso funciona para mim para retornar todos os seus valores conforme o esperado