Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Caros, bom dia.
Vejam por gentileza, se podem me ajudar.
Ao fazer uma condicional para definir o perfil (p,m,g,gg) de um cliente não estou chegando ao resultado esperado. Para fazer esse "if" tenho algumas condicionais, como volume dos últimos 3 meses, a segmentação do cliente e Uf. Ps.:Estou fazendo na dimensão pois no futuro vou precisar filtrar.
Bem, como pode ser visto na imagem abaixo, ao filtrar um cliente com característica "cust_group={06}" ele entra no primeiro if e retorna resultado "P1" sendo que o correto seria retornar o resultado do segundo if "P".
Abaixo segue meu código,
=Aggr(
if(
sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)>-100 and
sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)<51, 'P1',
if(
sum({<VTYPE={010}, cust_group={'06'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)>-100 and
sum({<VTYPE={010}, cust_group={'06'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)<1500, 'P',
))
,ship_to_descr )
Obrigado.
Você pode revisar sua lógica colocando essa cláusula fora do Set Analysis e dentro do if
Lembre que um Sum(<Set Analysis>Expressao) retorna um valor
Pode ser compartilhado o aplicativo de exemplo?
Olá Anil,
Infelizmente o arquivo está com mais de 100mb além de ter mtas informações que não posso compartilhar.
Você pode colocar primeiro para o último e último primeiro e verificar?
Desculpe Anil, não entendi ....
Eu disse isso?
= Aggr (
if
sum ({VTYPE = {010}, cust_group = {'06'} , MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) -100 and
sum ({VTYPE = {010}, cust_group = {'06'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) 1500, 'P',
if
sum ({VTYPE = {010}, cust_group = {'10'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) -100 and
sum ({VTYPE = {010}, cust_group = {'10'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) 51, 'P1',
))
, ship_to_descr)
Ele entra no 1o if porque a expressão abaixo retorna 0 que fica entre -100 e 51
sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)
Obrigado pela resposta Anil,
Resolveu em parte, pq os clientes que tem configuração cust_group = {'10'} ficaram como "P" sendo que deveriam ser "P1". Estranho né ?!
Obrigado pela resposta Clever, pensei que ele avaliava se o cust group =06 e caso não fosse ele passava para o próximo if,
Existe alguma forma do if levar em consideração o cust_group ?
Você pode revisar sua lógica colocando essa cláusula fora do Set Analysis e dentro do if
Lembre que um Sum(<Set Analysis>Expressao) retorna um valor