Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
matrixkid
New Contributor III

Contar valor gerado por expressão em outro objeto

Ola, amigos!

Criei um objeto TABELA no Designer da qual tem varios campos, e uma delas contém uma expressão, da qual, após um IF enorme, atribui valor "Selecionado", "Não Selecionado" para cada linha correspondente.

Em outro objeto, preciso contar quantos "Selecionado" eu tenho por região. Exemplo:

Tabela 1

Regioes | bla bla bla | Resultado

NORTE | agaga       | Selecionado

SUL      | agahaha    | Não Selcionado

OESTE | gahhhh      | Selecionado

LESTE  | Gahh        | Selecionado

Tabela 2

-------------

Regioes   | Total

SUL        | 5

NORTE   | 2

e assim vai, onde o TOTAL seria a contagem de Selecionado da Tabela 1.

Imagino que seja simples, mas já cacei vários posts e não consegui resposta para isso. Pode ser macro também.

Agradeço,

André

Tags (1)
1 Solution

Accepted Solutions
matrixkid
New Contributor III

Re: Contar valor gerado por expressão em outro objeto

Marcio, obrigado pela resposta.

Essas tabelas sao objetos no designer .

Imagina que para achar o resultado "Selecionado" tive que fazer o IF abaixo com uma panca de condição:

=

if(IMS2016>0,

// Se NAO é fornecedor novo e #SKUS ATIVOS = 0 então

if(vFornNovoDERMO='NÃO' and aggr( nodistinct count( {<IMS2016={'>$(=0)'},STATUS_PP={'ATIVO'},PACOTE={'DERMO'} >} GMR), GMR)=0,'-',

// GMR

if(Cobert_Mix<>2,

  if( Part_Acum_GMR < avg({<PACOTE={'DERMO'}>}Cobert_Mix), 'Selecionado',

  if(STATUS_PP='Ativo',

  if(Share_SC >= 0.25, 'Selecionado',

  if(Data_Cadastro>(AddMonths(today(),-6)), 'Selecionado',

  if(Importancia_OL_TT_SC > aggr( Nodistinct avg( {<Importancia_OL_TT_SC={'>0'},PACOTE={'DERMO'}>} Importancia_OL_TT_SC),GMR),'Selecionado',

  '-') )   )   )   )

,

// PACOTE

  if( Part_Acum_Pacote < vPercentualDERMO, 'Selecionado',

  if(STATUS_PP='Ativo',

  if(Share_SC >= 0.25, 'Selecionado',

  if(Data_Cadastro>(AddMonths(today(),-6)), 'Selecionado',

  if(Importancia_OL_TT_SC > aggr( Nodistinct avg( {<Importancia_OL_TT_SC={'>0'},PACOTE={'DERMO'}>} Importancia_OL_TT_SC),GMR),'Selecionado',

  '-')   )   )   )   ) ) )

// SENAO ZERO

,'-')


Agora preciso na tabela 2 (objeto) pegar o total de selecionado que esse monte de IF gerou. Posso até usar a função COUNT pra isso, mas não consigo nem começar a fórmula com tanto IF envolvido. Porém, acho que pode dar certo de outra forma. é possivel somar COUNT dentro da expressão?

Tipo:

=count(if akajkaka, CAMPO)

+

count(if gaghaha, CAMPO)

+

count(if hhalalaa, CAMPO)

????



5 Replies
MCampestrini
Valued Contributor

Re: Contar valor gerado por expressão em outro objeto

Boa tarde

Se não estou enganado, basta criar o gráfico somente com a dimensão Região, e na expressão a formula Sum({Resultado = {'Selecionado'} 1).

Para isso funcionar, a coluna Resultado deve estar no script.

Márcio Rodrigo Campestrini
matrixkid
New Contributor III

Re: Contar valor gerado por expressão em outro objeto

Marcio, obrigado pela resposta.

Essas tabelas sao objetos no designer .

Imagina que para achar o resultado "Selecionado" tive que fazer o IF abaixo com uma panca de condição:

=

if(IMS2016>0,

// Se NAO é fornecedor novo e #SKUS ATIVOS = 0 então

if(vFornNovoDERMO='NÃO' and aggr( nodistinct count( {<IMS2016={'>$(=0)'},STATUS_PP={'ATIVO'},PACOTE={'DERMO'} >} GMR), GMR)=0,'-',

// GMR

if(Cobert_Mix<>2,

  if( Part_Acum_GMR < avg({<PACOTE={'DERMO'}>}Cobert_Mix), 'Selecionado',

  if(STATUS_PP='Ativo',

  if(Share_SC >= 0.25, 'Selecionado',

  if(Data_Cadastro>(AddMonths(today(),-6)), 'Selecionado',

  if(Importancia_OL_TT_SC > aggr( Nodistinct avg( {<Importancia_OL_TT_SC={'>0'},PACOTE={'DERMO'}>} Importancia_OL_TT_SC),GMR),'Selecionado',

  '-') )   )   )   )

,

// PACOTE

  if( Part_Acum_Pacote < vPercentualDERMO, 'Selecionado',

  if(STATUS_PP='Ativo',

  if(Share_SC >= 0.25, 'Selecionado',

  if(Data_Cadastro>(AddMonths(today(),-6)), 'Selecionado',

  if(Importancia_OL_TT_SC > aggr( Nodistinct avg( {<Importancia_OL_TT_SC={'>0'},PACOTE={'DERMO'}>} Importancia_OL_TT_SC),GMR),'Selecionado',

  '-')   )   )   )   ) ) )

// SENAO ZERO

,'-')


Agora preciso na tabela 2 (objeto) pegar o total de selecionado que esse monte de IF gerou. Posso até usar a função COUNT pra isso, mas não consigo nem começar a fórmula com tanto IF envolvido. Porém, acho que pode dar certo de outra forma. é possivel somar COUNT dentro da expressão?

Tipo:

=count(if akajkaka, CAMPO)

+

count(if gaghaha, CAMPO)

+

count(if hhalalaa, CAMPO)

????



MCampestrini
Valued Contributor

Re: Contar valor gerado por expressão em outro objeto

Na maioria dos casos sim.

Márcio Rodrigo Campestrini
matrixkid
New Contributor III

Re: Contar valor gerado por expressão em outro objeto

Vlw, Marcio... após fundir a cuca consegui resolver usando COUNT <condicao> + COUNT <condicao>.

MCampestrini
Valued Contributor

Re: Contar valor gerado por expressão em outro objeto

Legal!

Marque então as respostas certas/úteis para mantermos a comunidade organizada.

Márcio Rodrigo Campestrini