Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Divisão de registros entre outros registros

Olá pessoal, sou nova em Qlickview e estou tentando realizar uma automatização de uma planilha excel via qlick, ao invés de uma macro.

Estou criando ifs para, conforme as condições, atribuir um valor ao campo Cliente.

Por exemplo:

if ( [Codigo_Cliente] = '5' or [Codigo_Cliente] = '5B' or [Codigo_Cliente] = '5XS' or [Codigo_Cliente] = '6XS', 'Cliente A',

     if ( [Codigo_Cliente] = '7' or [Codigo_Cliente] = '7B', 'Cliente B',...............

          if ( IsNull (Codigo_Cliente), 'NULO' ) as Cliente

A questão é, existem códigos nulos, uma quantidade variável, eu queria, quando os valores fossem nulos, que eu fizesse uma distribuição da seguinte maneira:

De todos os NULOS, 2/3 são atribuídos ao Cliente A, e do 1/3 que sobrou, 50% para o Cliente B e 50% para o Cliente C.

Preciso fazer isso pois utilizo uma outra coluna para controle financeiro e essa coluna é segregada por cliente.

Como posso resolver esse problema?

Labels (1)
4 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

Você pode otimizar o if com o uso do applymap e uma tabela mapping.

aqui tem orientações do uso deste recurso.

https://help.qlik.com/pt-BR/sense/November2017/Subsystems/Hub/Content/Scripting/ScriptPrefixes/Mappi...

Pablo

Anonymous
Not applicable
Author

Pablo obrigada pela sugestão!

É possível resolver essa questão:

"A questão é, existem códigos nulos, uma quantidade variável, eu queria, quando os valores fossem nulos, que eu fizesse uma distribuição da seguinte maneira:

De todos os NULOS, 2/3 são atribuídos ao Cliente A, e do 1/3 que sobrou, 50% para o Cliente B e 50% para o Cliente C."

com o applymap?

Anonymous
Not applicable
Author

Pablo dei uma olhada no applymap, parece que ele só pode ter apenas uma referência, isso acho que não resolve meu problema

elvis_schwarz
Creator
Creator

Bom dia Mariana

Pode ter vários valores, por exemplo:

Cria um mapa com todos os clientes que entram em uma determinada condição:

Map_Cliente:

Mapping Load * Inline [

  Codigo_Cliente, nome

  5, Cliente A                      

  5B, Cliente A       

  5XS, Cliente A                   

  6XS, Cliente A             

  7, Cliente B

  7B, Cliente B            

];

No seu load você aplica o mapping:

Cliente:
LOAD

     Codigo_Cliente,

ApplyMap('Map_Cliente',Codigo_Cliente, 'Se não encontrar correspondente ele utiliza esse parâmetro') as Classifica_Cliente

Resident ...;