Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
andrevcavalcant
Contributor II
Contributor II

Distribuir valores de metas comerciais desconsiderando domingos e feriados

Pessoal,

Bom dia.

Estou com uma dúvida que está me deixando incomodado no Qlik Sense

Parece fácil de resolver mas eu não estou conseguindo.

É o seguinte:

Preciso criar uma coluna com os valores orçados de meta de venda em volume em uma tabela simples que possui todo o nosso movimento de vendas em volume e outros números.

A regra é: Aos domingos não deve existir valores, aos sábados eu tenho que definir minha meta em 50% e em dias de semana normais tenho que mostrar o valor cheio, usando dias úteis de cada mês que estão guardados em uma tabela.

Por exemplo: para determinado mês tenho 90.000 toneladas orçadas. Desta forma tenho que dividir este valor por igual entre os dias úteis e aplicar 0,5 desse valor diário para os sábados e o valor cheio para os dias úteis.

Poderiam me ajudar ? Já procurei vários exemplos na comunidade mas não achei nada muito parecido.

Abraço a todos.

Labels (3)
2 Replies
Thiago_Justen_

André,

Se você tiver algum exemplo seria mais fácil, mas de qualquer forma deixa eu sugerir algo:

Criar uma variável para a meta diária:

vMetaDiaria=>Sum(TonOrcada) / Count(NetWorkDays(Min(Data),Max(Data),$(vFeriados)))

E daí, usamos o if para criar a situação necesária:

If(WeekDay(Data)=5,$(vMetaDiaria)*0.5,$(vMetaDiaria))

//Aqui o que fizemos no if = Se dia da semana for Sábado (WeekDay() = 5), considera 0,5 da meta, se não considera a 100% da meta.

Nessa sugestão calculo vFeriados no script. Veja aqui como: Re: Projeção de Vendas

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

Thiago,

Bom dia.

Antes de mais nada quero te agradecer demais por me responder.

Eu fiz mais ou menos desta forma. Porém tenho alguns pontos que diferenciam o exemplo que você me passou pois temos duas tabelas que armazenam os dias úteis e os feriados.

diasuties.png

feriados.png

Daí tentei das seguintes formas:

//sem o domingo:

if([Dia Semana] = 'sáb', Sum({$<mes =, ano = >}toneladas_bdg)/DiasUteisMes * 0.5,

if([Dia Semana] = 'dom', ' ', Sum({$<mes =, ano = >}toneladas_bdg)/DiasUteisMes * 1))


Tenho o seguinte resultado:


Img1.png

Neste caso, não está zerando o valor orçado do dia 1 de maio que foi feriado e não divide o valor em partes iguais por todos os dias úteis. tenho 90.561 toneladas orçadas e quando trago para a tabela onde quero mostrar o valor, tenho 93.501.

Tentei adaptar esta fórmula que é usada no valor projetado, mas também não dá certo:


if (Dimensionality() = 0,sum({<[Data Documento]= {"=$(=max([Data Documento]))"}>}toneladas_bdg),

aggr(rangesum(above($(vVolBDG),0,rowno(total)))/rangesum(above(only(CountDiaUtilHist),0,rowno(total))),[Data Documento])*DiasUteisMes)

Tenho o seguinte resultado:

Img2.png

Neste eu consigo tratar corretamente os dias úties, mas não entendo de onde vem o valor enorme que a fórmula calcula. A variável vVolBDG é =Sum(toneladas_bdg).

Podes me ajudar ???

Abraço.