Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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:
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.
Desde já agradeço!!
Rodrigo Ramos 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.
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.
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
Você teria algum QVD ou LOAD INLINE para que eu possa testar?
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
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.