Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
ftataides
Contributor II
Contributor II

Utilização da Função Max e Aggr no cálculo de Média de Dias

Olá,

Pessoal tenho uma tabela de vendas e uma tabela de dias úteis por filial, pois consideramos os calendários municipais em nossas analises.

Estou tentando montar um KPI de Média Dia que desconsidere os dias úteis por filial, quero utilizar sempre o maior valor de cada mês, ex.:  No ano de 2018 para o mês de Janeiro tenho as opções de 21, 22 e 23 dias úteis. A opção correta seria 23 dias úteis.

Para calcular a média de vendas diária de um ano especifico no grupo todo, tentei as seguintes expressões:

Sum({$<Ano={'2018'}>}[ReceitaTotal]) / Sum(Aggr(Mediun([Dias Úteis]), [Mês], [Ano]={'2018'}))

No entanto ele está considerando o maior dia útil do ano, ou seja 23, neste exemplo ele desconsidera que meu maior valor para fevereiro foi 18 dias úteis por exemplo e considera que tive 23 dias em todos os meses.

Outra opção que tentei foi:

Sum({$<Ano={'2018'}>}[ReceitaTotal]) / Sum(Aggr(Mediun([Dias Úteis]), [Mês]={"jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",}, [Ano]={'2018'}))

Nesta segunda tentativa ele retornou a média dia sem qualquer valor, não teve erro de sintaxe, porém não teve retorno de valor.

Importante¹  Preciso que essa média responda aos filtros (Trimestre, mês, etc.);

Importante²  Como ficaria a Sintaxe caso eu queira filtrar uma filial? Ou seja tendo a necessidade de considerar os dias uteis de cada mês em um ano especifico para uma filial especifica para calcular a média.


Labels (2)
6 Replies
ftataides
Contributor II
Contributor II
Author

Tentei com Max na verdade e não com Mediun, com Mediun é como estou usando para "tapar buraco" porém desta forma esta incorreto também, pois considera que todos os meses tem a mesma quantidade de dias.


Sum({$<Ano={'2018'}>}[ReceitaTotal]) / Sum(Aggr(Max([Dias Úteis]), [Mês], [Ano]={'2018'}))


Sum({$<Ano={'2018'}>}[ReceitaTotal]) / Sum(Aggr(Max([Dias Úteis]), [Mês]={"jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez",}, [Ano]={'2018'}))

Thiago_Justen_

Talvez isso:

Sum({$<Ano={$(=Max(Ano))}>}[ReceitaTotal]) / Sum({$<Ano={$(=Max(Ano))},Mes,[Dias Úteis]={$(=Max([Dias Úteis]))}>}[ReceitaTotal])

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
ftataides
Contributor II
Contributor II
Author

Agradeço Thiago, a lógica faz muito sentido mas infelizmente não deu certo, o resultado deste calculo esta dando 1,24 quando na verdade a média de venda dia fica em torno de 50k.

Thiago_Justen_

Se você tiver como postar um app de exemplo eu tento outra solução.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
ftataides
Contributor II
Contributor II
Author

Oi Thiago, então eu não consigo mandar o modelo para vc pq contém dados da empresa que não tenho autorização de compartilhar, mas vou tentar ser bem especifico abaixo, pois preciso muito de ajuda com isto rs.

Obs. Enviei uma solicitação no Skype para caso necessário e se possível, compartilhar a tela ctgo em um call e vc me auxiliar.

Eu fragmentei a conta para ficar mais fácil, deixei de lado a soma das vendas nesse momento para tentarmos acertar a soma dos dias úteis e ficou desta forma.

Sum( Aggr (Max([Dias Úteis]),[Mês],[Ano]={'2018'} )) , O Objetivo deste calculo deveria ser identificar o maior valor de dias uteis em cada mês, ex:(Jan 22, Fev 18, Mar 21, etc.), independente da filial e somá-los, resultando no total de dias do ano. nesse ano de 2018 por exemplo deveríamos ter como resultado 250 dias úteis, no entanto a formula está identificando o maior valor entre todos os meses que é 23 e multiplicando por 12, resultando em 276 dias, diferente do que eu preciso.

Abaixo um modelo de como está minha tabela de dias úteis, lembrando que tenho mais de 40 filiais e o período é de 2014 a 2018 e pretendo atualiza-la em breve com 2019.

  

  

FilialAnoMêsDias Úteis
162014Jan22
162014Fev20
162014Mar19
162014Abr20
162014Mai21
162014Jun21
162014Jul22
162014Ago21
162014Set22
162014Out23
162014Nov20
162014Dez22
162015Jan21
162015Fev19
162015Mar22
162015Abr20
162015Mai20
162015Jun22
162015Jul22
162015Ago21
162015Set21
162015Out21
162015Nov20
162015Dez22
Thiago_Justen_

Neste caso, já que o intuito é apenas calcular o número de dias úteis sugiro a expressão:

Para 2018, por exemplo:

NetWorkDays(YearStart(Today()),YearEnd(Today()),$(vFeriados))


Onde vFeriados é definida no script.

Para maior esclarecimento deixo o app anexo para sua consulta e validação.

Usei a planilha de feriados contida aqui: Datas Comemorativas - Feriados Nacionais - Brasil.xls

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago