Como filtrar e listar nomes de pessoa com a letra u
Se você já precisou extrair nomes de uma base de dados que contenham a letra u, sabe que parece simples até acontecer de tudo. A pergunta aparece com frequência em fóruns de TI e também em grupos de pesquisa genealógica, então vou explicar como eu resolvo isso na prática.
O que você precisa considerar antes de começar
Nomes de pessoa com u aparecem em praticamente qualquer base brasileira. Mas o problema não é a letra em si — é a forma como os dados chegam. Nome mal digitado, acento que sumiu, espaço extra, letra maiúscula em lugar aleatório. Tudo isso quebra filtros ingênuos de uma linha. O primeiro passo é normalizar. Converter tudo para minúsculas e remover acentos. Se você pular essa etapa, vai perder nomes como "Gustavo" escrito "Gustvxo" por um erro de digitação, ou "Luiz" que virou "Luis" em um sistema legado que confundia os dois grafias. Eu levei uns três dias pra entender por que minha query retornava apenas 60% dos registros esperados em um projeto de triagem de cadastros de um escritório de registro civil. Achei que era problema na tabela. Era só normalização. Depois disso, passei a usar:
LOWER(REPLACE(REPLACE(REPLACE(REPLACE(nome, 'á', 'a'), 'ã', 'a'), 'é', 'e'), 'ê', 'e')) Esse tipo de limpeza antes do filtro resolveu o problema de forma consistente.
A regra prática
Depois da normalização, o filtro em si é simples: verificar se a string resultante contém a sequência "u". Em SQL, funciona com LIKE ou REGEXP. Em planilhas, com CONT.SE ou uma fórmula longa de SUBSTITUIR. Vou mostrar o que eu uso mais no dia a dia. Em PostgreSQL ou MySQL:
👉 Clique no botão abaixo para saber mais sobre o assunto!
SELECT nome FROM pessoas WHERE LOWER(REPLACE(nome, 'á', 'a'), 'é', 'e') LIKE '%u%'; Em Excel, se a coluna A tiver os nomes:
=SE(SOMPROD(NÍMERO.CORRESP({"u"};CORinga(COMEÇA(BAIXO(A2);"u"))) > 0; "sim"; "nao") Não use fórmulas com múltiplos CORinga aninhados. Fica lento e difícil de manter. Prefira helper columns.
Detalhes que parecem bobos mas quebram tudo
Nomes estrangeiros com U duplo ou sequências incomuns aparecem bastante em bases multilaterais. Um caso específico que me pegou foi um lote de sobrenomes japoneses onde o "U" estava em maiúscula por erro de importação de CSV, e o filtro case-sensitive não capturava. A solução foi tratar a normalização antes de qualquer filtro. Outro ponto: nomes compostos. Se seu objetivo é nomes de pessoa com u, considere se quer verificar no nome completo ou apenas no primeiro nome. A maioria dos relatórios pede apenas o primeiro nome, mas alguns sistemas usam o nome inteiro como chave única, o que muda completamente o resultado.
Vantagens e limitações reais
O método de normalização + LIKE é rápido em bases pequenas. Em tabelas com milhões de linhas, pode demorar. Nesses casos, criar um índice computado na versão normalizada do nome melhora muito a performance. Não adianta só aplicar o filtro e torcer pelo otimizador. Limitações: a abordagem não corrige erros de digitação semânticos, como "ugusto" no lugar de "augusto". Para esses casos, exige fuzzy matching ou um dicionário de correção manual. Se sua base tiver muitos desses erros, recomendo usar uma ferramenta de deduplicação antes do filtro final.
Quando não usar esse método
Se o foco for apenas nomes próprios de batismo sem sobrenome e a base é extremamente suja, essa técnica gera muito ruído. Nesse cenário, prefira combinar com uma lista de validação de nomes permitidos, ou usar uma etapa de higienização intermediária antes de aplicar qualquer LIKE. Funciona melhor quando a origem dos dados já passou por algum tratamento prévio de consistência.