Comparar strings

Ao contrário das outras categorias, nos dados de texto há poucas restrições quanto aos tipos de valores que aparecem em uma célula. No aplicativo, esses dados normalmente são interpretados como o tipo "String". Consequentemente, encontrar valores de string com o mesmo significado pode ser um desafio, porque pequenas diferenças no conteúdo ou na estrutura podem invalidar uma correspondência.

Esta seção apresenta alguns métodos para comparar strings.

  • Alguns sistemas de destino podem impor limites em relação ao comprimento de valores importados. Para saber mais informações sobre como gerenciar os comprimentos das strings, consulte Gerenciar comprimentos de string.

Encontrar substrings

Use as funções a seguir para encontrar substrings que façam parte do valor de uma coluna.

Nome da funçãoDescrição
Função LEFT

Corresponde ao conjunto de caracteres mais à esquerda de uma string, conforme especificado pelo parâmetro. A string pode ser especificada como uma referência de coluna ou um literal de string.

Função RIGHT

Corresponde ao grupo certo de caracteres em uma string, conforme especificado pelo parâmetro. A string pode ser especificada como uma referência de coluna ou um literal de string.

Função FIND

Retorna o valor de índice na string de entrada em que uma string correspondente especificada está localizada. A pesquisa é feita da esquerda para a direita.

Função RIGHTFIND

Corresponde ao grupo certo de caracteres em uma string, conforme especificado pelo parâmetro. A string pode ser especificada como uma referência de coluna ou um literal de string.

Função SUBSTRING

Corresponde a uma string em parte ou em todo, com base nos valores de início e fim de índice definidos pelo usuário dentro da string.

A transformação a seguir verifica os cinco valores à esquerda da versão em letras minúsculas da coluna ProdId para ver se ela corresponde a xxxx-. Se o valor for detectado, o valor ProdName será definido como NO_NAME:

Nome da transformação Edit with formula
Parâmetro: colunas ProdName
Parâmetro: fórmula IF(LEFT(LOWER(ProdId,5))=='xxxx-','NO_NAME' ,ProdName)

Comparar finais de string por padrão

Use as funções STARTSWITH e ENDSWITH para determinar se uma string começa ou termina com um padrão especificado.

Dica: essas funções são mais úteis para realizar verificações baseadas em padrões em strings. Para literais de string, use as funções LEFT e RIGHT. Saiba mais a seguir.

A transformação a seguir vai inserir o valor error na coluna custCodeStatus, se o valor custCode começar com seis dígitos em uma linha:

Nome da transformação Edit with formula
Parâmetro: colunas custCodeStatus
Parâmetro: fórmula IF(STARTSWITH(custCode,`{digit}{6}`), 'error',custCodeStatus)

Consulte Função STARTSWITH.

Consulte Função ENDSWITH.

Corresponder strings

Correspondência exata

Use a função EXACT para comparar se duas strings são correspondências exatas. As entradas de string podem ser literais, referências de coluna ou expressões que têm strings como resultado.

OBSERVAÇÃO: a função EXACT determina correspondências exatas. Diferenças de espaço em branco ou no uso de maiúsculas e minúsculas retornam false.

Aninhe expressões de função dentro da referência EXACT para eliminar diferenças comuns e que talvez não sejam úteis entre strings. Na transformação a seguir, um valor true será inserido na coluna matches se colA e colB forem correspondências exatas, depois que as diferenças de espaço em branco e maiúsculas/minúsculas tiverem sido removidas:

Nome da transformação New formula
Parâmetro: fórmula IF(EXACT(LOWER(REMOVEWHITESPACE(colA)))==EXACT(LOWER(REMOVEWHITESPACE(colB))),'true','false')
Parâmetro: novo nome da coluna matches

Correspondência Doublemetaphone

A plataforma também aceita o algoritmo doublemetaphone em correspondência difusa. Esse algoritmo fornece mecanismo para correspondência de proximidade. A função DOUBLEMETAPHONEEQUALS aceita um segundo parâmetro opcional para definir a força do algoritmo.

Esse algoritmo funciona gerando duas codificações separadas para cada string: uma principal e uma secundária. Teste essas codificações usando a função DOUBLEMETAPHONE. Consulte Função DOUBLEMETAPHONE.

Esse algoritmo pode ser aplicado para comparar duas strings, como na transformação a seguir.

Nome da transformação New formula
Parâmetro: fórmula DOUBLEMETAPHONEEQUALS(colA,colB,'strong')
Parâmetro: novo nome da coluna matches
  • Os dois primeiros parâmetros da função são os literais de string, as referências de coluna ou as funções que retornam strings a serem comparadas.
  • O terceiro parâmetro é opcional. Ele determina o nível de correspondência obrigatório para retornar true. Opções:

    Limite de correspondênciaDescrição
    'strong'Ambas as codificações principais precisam ser correspondentes.
    'normal'Pelo menos uma codificação principal precisa corresponder a qualquer uma das codificações da outra string.
    'weak'Uma codificação principal ou secundária de cada uma pode corresponder.
  • Para saber mais informações, consulte Função DOUBLEMETAPHONEEQUALS.

Comparar strings

Em valores de string, use as funções de comparação de string para verificar semelhanças usando configurações de compilação em latim.

Dica: qualquer coluna pode ser convertida no tipo de dados "String" para usar essas funções.

A compilação se refere à organização de conteúdo gravado em uma ordem padronizada. As funções de comparação de strings utilizam regras de compilação para o latim. Um resumo das regras:

  • As comparações diferenciam maiúsculas de minúsculas.
    • As letras maiúsculas são maiores que as versões em minúsculas da mesma letra.
    • No entanto, as letras minúsculas que estão mais adiante no alfabeto são maiores do que a versão em maiúscula da letra anterior.
  • Duas strings serão iguais se houver correspondência exata.
    • Se duas strings forem idênticas, mas a segunda tiver um caractere adicional no final, a segunda string será considerada maior.
  • Uma versão normalizada de uma letra é a versão não acentuada e minúscula dela. Na comparação de strings, ela tem o valor mais baixo de todas as variantes.
    • a é inferior a ă.
    • No entanto, em comparação com b, a = ă.
    • O conjunto de caracteres normalizados latinos contém mais de 26 caracteres.

Esta tabela ilustra algumas regras generalizadas de compilação em latim:

OrdemDescriçãoExemplo inferiorExemplo superior
1espaço em branco(espaço)(enter)
2Pontuação'@
3Números12
4LetrasaA
5 Ab

Recursos:

OBSERVAÇÃO: no conjunto de gráficos a seguir (link abaixo), os valores na parte superior da página são inferiores aos listados mais abaixo. Da mesma maneira, os gráficos listados na barra de navegação esquerda estão listados em ordem crescente.

Para saber mais informações sobre as regras de compilação aplicáveis, consulte http://www.unicode.org/charts/collation/.

Funções disponíveis:

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.