Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Tratar no Load de numéro de celulares

Pessoal, estou querendo tratar um numeros de celulares, antes na hora de gerar o script.

O exemplo estão abaixo.

Alguma dica?

Numero_BancoNumero_Tratado
27-9818-892327998188923
27-98106-202127981062021
3345-0723Não Celular
9951-740627999517406

Tratar assim,

Pegar todos os sem traços

Exemplo: 27-9818-8923  - deixar apenas o ultimos 7 digitos. (sem traços)

resultado: 8188923

Depois inserir :279

ResultadoFinal: 2798188923

Neves
1 Solution

Accepted Solutions
Thiago_Justen_

Teste este script e veja se te atende:

Temp:

load * Inline [

Numero

27-9818-8923

27-98106-2021

3345-0723

9951-7406

98101-0634

];

Final:

load

Numero,

If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',

If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&

    If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&

        If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')))) as Celular

Resident Temp;

drop table Temp;

Resultado:

Capturar.PNG

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

5 Replies
Thiago_Justen_

Teste este script e veja se te atende:

Temp:

load * Inline [

Numero

27-9818-8923

27-98106-2021

3345-0723

9951-7406

98101-0634

];

Final:

load

Numero,

If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',

If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&

    If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&

        If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')))) as Celular

Resident Temp;

drop table Temp;

Resultado:

Capturar.PNG

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Ribeiro
Specialist
Specialist
Author

Show Thiago

Neves
Thiago_Justen_

#TMJ Agnaldo

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Ribeiro
Specialist
Specialist
Author

Thiago  a solução está correta.

ele deveria retirar os 7 digitos depois acrescentar.

Mas caso o funcionário erre eu gostaria também de acertar veja na imagem abaixo.

o usuario digitou um 9 a mais.

2018-03-27_08-19-38.png

Neves
Thiago_Justen_

Adicionei um Right() pra pegar apenas 9 dígitos e assim tratar essa possibilidade.

If(Left(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),1)<>9,'Não Celular',

If(Len(Trim(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-'))))<9,'279'&

    If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),'27'&

        Right(If(SubStringCount(Numero,'-')=2,SubField(Numero,'-',2)&SubField(Numero,'-',3),PurgeChar(Numero,'-')),9))) as Celular

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago