Remover Acentos No Qlikview

     

    Olá Pessoal, estou aqui para demonstrar uma forma simples de resolver um problema bem comum quando trabalhamos múltiplas fontes de dados: como remover acentos no Qlikview.

    O cenário é bem típico. Eu tenho uma aplicação que mistura dados de múltiplas fontes de dados, incluindo um banco de dados Oracle e planilhas em Excel. O problema é que o nome das Cidades na base Oracle está acentuado e no Excel nem sempre. Então como igualar para poder realizar um link/join entre as informações.

    A solução é bem simples. Vamos utilizar a função MapSubString. Esta função utiliza uma tabela com dois campos para executar uma substituição do tipo DE -> PARA, carácter a carácter.

    mapsubstring(‘mapname’, expr)

    Antes de utilizar a função MapSubString temos que carregar nossa tabela de conversão de caracteres. Bom vou dar uma colher de chá e publicar a que estou utilizando. Ela está bem completa, mas se precisar incluir mais uma conversão, fique a vontade, é só incluir uma nova linha. Segue o LOAD da tabela abaixo:

    RemoveAcento_Map:

    Mapping

    LOAD * INLINE [

    F1, F2

    Š, S

    š, s

    Ž, Z

    ž, z

    À, A

    Á, A

    Â, A

    Ã, A

    Ä, A

    Å, A

    Æ, A

    Ç, C

    È, E

    É, E

    Ê, E

    Ë, E

    Ì, I

    Í, I

    Î, I

    Ï, I

    Ñ, N

    Ò, O

    Ó, O

    Ô, O

    Õ, O

    Ö, O

    Ø, O

    Ù, U

    Ú, U

    Û, U

    Ü, U

    Ý, Y

    Þ, B

    ß, B

    à, a

    á, a

    â, a

    ã, a

    ä, a

    å, a

    æ, a

    ç, c

    è, e

    é, e

    ê, e

    ë, e

    ì, i

    í, i

    î, i

    ï, i

    ð, o

    ñ, n

    ò, o

    ó, o

    ô, o

    õ, o

    ö, o

    ø, o

    ù, u

    ú, u

    û, u

    ý, y

    ý, y

    þ, b

    ÿ, y

    ];

    Um pouco grande certo? Bom espero que ajude.

    Continuando com nosso exemplo eu fiz uma pequena aplicação. Primeiro criei uma pequena tabela de nomes ao qual dei o nome de NOMES:

    NOMES:

    LOAD * INLINE [

    NOME_NORMAL

    Luiz Otávio

    Pedro Miguel

    William

    Ícaro

    Giovanni

    João Paulo

    Kauê

    Maitê

    Eloá

    Lívia

    ];

    Logo em seguida eu utilizo a função MapSubString para remover os acentos. O primeiro parâmetro da função MapSubString é o nome da tabela DE -> PARA que apresentei acima. O segundo é o campo onde os caracteres serão substituídos. Vejamos:

    LOAD

    NOME_NORMAL,

    MapSubString('RemoveAcento_Map', NOME_NORMAL) as NOME_SEM_ACENTO

    Resident NOMES;

    O Resultado pode ser visto na imagem abaixo:

    Resultado da remoção de acentos

    Se quiserem colocar em caixa alta (maiúscula) é só colocar um Upper antes do MapSubstring:

    LOAD

    NOME_NORMAL,

    Upper(MapSubString('RemoveAcento_Map', NOME_NORMAL)) as NOME_SEM_ACENTO

    Resident NOMES;

    Bem é isso, espero que tenham gostado e que este post seja útil. Até breve e mandem seus comentários!

    Segue o Código de Exemplo: http://wallace-prado.com.br/wp-content/uploads/2014/08/RemoverAcentos.zip