Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
rodrigo_rocha
Creator
Creator

Classificação Tabela Curva ABC!!

Olá Pessoal!!

Estou com um problema relacionado a classificar uma tabela. Estou desenvolvendo uma aplicação de Curva ABC de Equipamentos e o meu problema esta justamente na formula da Curva, pois sem ela eu consigo classificar em ordem decrescente as porcentagens da terceira coluna. Quando eu coloco a formula a qual me referi ela funciona corretamente porem a classificação que eu coloquei se desfaz e não da mais para mudar. Qual sera o problema? Segue abaixo a formula da Curva ABC e as imagens da tabela antes e depois da aplicação da formula.

Formula:

If (RangeSum(Above(TOTAL Column(2), 0, RowNo(total))) <= 0.6, 'A',
if (RangeSum(Above(TOTAL Column(2), 0, RowNo(total))) <= 0.85, 'B', 'C'))

Imagens:

Abaixo a Tabela sem a Curva ABC com a ordem correta:

clipboard_image_0.png

Agora com a Curva ABC e com a ordem alterada e, mesmo clicando para ordenar na tabela e também mudando a classificação na edição da mesma não funciona.

clipboard_image_1.png

Desde já agradeço!!

Rodrigo Ramos Rocha

1 Solution

Accepted Solutions
vandrecarlos
Contributor III
Contributor III

@rodrigo_rocha 

Pelo que notei, você está utilizando a visualização em tabela. 

Ao clicar na "dimensão" que você informou que não pode ser o critério de ordenação, se ela estiver com a classificação marcada para ser através da quantidade, decrescente, ela irá obedecer, e ao clicar na descrição a mesma irá ordenar não em ordem alfabética e sim Maior->Menor ou Menor->Maior.

Entendeu? rs

Caso você altere a sua visualização para crosstable, a mesma não permite ordenação com clique de mouse na dimensão, e irá respeitar sempre a sua ordenação marcada na tabela, que no caso da imagem em anexo é decrescente pela soma da quantidade.

View solution in original post

6 Replies
vandrecarlos
Contributor III
Contributor III

Amigo, boa tarde!

 

Pela sua fórmula, a ordenação é predominante para o cálculo correto.

Tente colocar nas opções da sua tabela a ordenação correta para evitar este tipo de erro.

 

Caso você queira manter a classificação ABC independente da ordenação do usuário, tente colocar o seu cálculo no script para ser efetivo.

rodrigo_rocha
Creator
Creator
Author

Olá Vandrecarlos

Já tentei arrumar direto nas opções da tabela, porém não funciona. O único campo que ordena corretamente é o da descrição mas não pode ser por ele, o correto seria pela porcentagem ou pela quantidade que ai o calculo ABC ficaria correto.

At.

Rodrigo Ramos Rocha

vandrecarlos
Contributor III
Contributor III

Você teria algum QVD ou LOAD INLINE para que eu possa testar?

rodrigo_rocha
Creator
Creator
Author

Vou te passar o arquivo que estou utilizando como base, o script e as formulas que estou utilizando.

Script:

NF:
LOAD
[Emissao] as nf_data_entrega,
Year(Emissao) as nf_emissao_ano,
Month(Emissao) as nf_emissao_mes,
Day(Emissao) as nf_emissao_dia,
date(MonthStart(Emissao),'MMM/YYYY') as nf_emissao_mes_ano,

Status as nf_status,

Produto as produto_codigo,
Descrição as produto_descricao,

Qtde as nf_qtde,
FROM
[lib://Tabelas (virginia_administrador)/030237ABC_*.csv]
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);

TMP_Calendario:
LOAD DISTINCT
nf_data_entrega
Resident NF;

Calendario:
NoConcatenate
LOAD
nf_data_entrega,
Day(nf_data_entrega) as Dia,
Month(nf_data_entrega) as Mês,
Year(nf_data_entrega) as Ano,
DayNumberOfQuarter(nf_data_entrega) as [Dia Trimestre],
DayNumberOfYear(nf_data_entrega) as [Dia Ano],
MonthName(nf_data_entrega) as [Mes Ano],
QuarterName(nf_data_entrega) as [Quarter],
Week(nf_data_entrega) as [Semana],
WeekStart(nf_data_entrega) as [Semana Inicio],
WeekEnd(nf_data_entrega) as [Semana Fim],
ceil(Month(nf_data_entrega)/3)&'º Trim' as [Trimestre],
ceil(Month(nf_data_entrega)/6)&'º Sem' as [Semestre],
If(nf_data_entrega<=today(),1,0) AS FlgRealizado,
WeekDay(nf_data_entrega) as [Dia Semana]
Resident TMP_Calendario;

DROP table TMP_Calendario;

Formulas:

Qtde: sum({<nf_status={'A'}>}nf_qtde)

%: sum({<nf_status={'A'}>}nf_qtde) / sum(total{<nf_status={'A'}>}nf_qtde)

Curva ABC: If (RangeSum(Above(TOTAL Column(2), 1, RowNo(total))) <= 0.6, 'A',
if (RangeSum(Above(TOTAL Column(2), 1, RowNo(total))) <= 0.85, 'B', 'C'))

A base segue em anexo. Não deu para anexar o arquivo .csv. 

Caso consiga verificar qual é o problema, por favor fale pela discussão mesmo, pois o meu Qlik não abre outros arquivos de fora.

Desde já agradeço!!

Rodrigo Ramos Rocha

vandrecarlos
Contributor III
Contributor III

@rodrigo_rocha 

Pelo que notei, você está utilizando a visualização em tabela. 

Ao clicar na "dimensão" que você informou que não pode ser o critério de ordenação, se ela estiver com a classificação marcada para ser através da quantidade, decrescente, ela irá obedecer, e ao clicar na descrição a mesma irá ordenar não em ordem alfabética e sim Maior->Menor ou Menor->Maior.

Entendeu? rs

Caso você altere a sua visualização para crosstable, a mesma não permite ordenação com clique de mouse na dimensão, e irá respeitar sempre a sua ordenação marcada na tabela, que no caso da imagem em anexo é decrescente pela soma da quantidade.

rodrigo_rocha
Creator
Creator
Author

Show Vandrecarlos!!

Entendi sim!! Obrigado!!!

Rodrigo Ramos Rocha