Ir para conteúdo
  • 0

Contagem anterior a data do Calendario com criteios


Afelicio
Ir para solução Solucionado por Afelicio ,

Pergunta

  • Alunos

Boa tarde,

Estou com um projeto na onde eu preciso visualizar o que tenho de delivery criada x em aberto x faturada por dia.

Estou com dificuldade em criar uma medida que me traga as quantidades que eu tinha em aberto em determinada data, segue medida que utilizei:

Delivery Open =
Var Ddatafinalcontexto = MAX('Calendar'[SAP Date])
Return
 
CALCULATE(
DISTINCTCOUNT(Base_Delivery[Delivery Number]),
FILTER(
Base_Delivery,
Base_Delivery[Delivery Created Date]<=Ddatafinalcontexto &&
Base_Delivery[Invoice_date]>Ddatafinalcontexto || Base_Delivery[Invoice Number]="" )
)

mas ela acaba me trazendo apenas os documentos criados naquele dia e nao considera os documentos criados em dias anteriores e que nao tem um documento de faturamento ainda ou posterior a data de criação.

Preciso do seguinte resultado

Resultado esperado      
Data Total Criado Total Open Faturado
15/jun 5 3 2
16/jun 4 4 3
17/jun 5 5 4
18/jun 5 6 4
  19 6 13

Conseguem me ajudar com essa medida?

Segue PBIX e excel de base

Obrigado

 

ZGBL_DLV_IMWM_RP0435_DELIVERY_DATA_Painel_Delivery_reduzido.xlsx Painel Delivery Reduzido.pbix

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@Barony, @RodrigoSan e @Nelson Kobayashi 
Muito Obrigado pelo apoio

Acho que consegui, não sei se é o mais indicado muito menos se é o mais performatico, mas fiz o seguinte:

Uma Medida para as ordens com data de criação ate a data do contexto e data de faturamento posterior ao contexto

Open Data =
Var Ddatafinalcontexto = MAX('Calendar'[SAP Date])
Return
 
CALCULATE(
DISTINCTCOUNT(Base_Delivery[Delivery Number]),
 
FILTER(
ALL(Base_Delivery),
Base_Delivery[Delivery Created Date]<=Ddatafinalcontexto &&
Base_Delivery[Invoice_date]>Ddatafinalcontexto))

Depois fiz outra medida apenas para as ordens que estavam com data de faturamento em branco

Delivery Open Vazio =
CALCULATE(
[Delivery Qtde],
FILTER(
ALL('Calendar'),
'Calendar'[SAP Date]<=MAX(Base_Delivery[Delivery Created Date])),Base_Delivery[Invoice Number]=BLANK())

Depois criei uma medida somando as duas e o resultado deu certo

image.png.003b16b9cf510219593d6b1cdc42336a.png

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
27 minutos atrás, Afelicio disse:

Olá @Nelson Kobayashi

O total criado é uma contagem unica nesse caso, inicialmente estou desconsiderando as linhas.

O que esta open é tudo que nao tem um numero de invoice, e para o faturado tudo que tem uma invoice

Obrigado

Olá @Afelicio!

E os três cálculos são sempre baseados pela data na coluna [Delivery Created Date], é isso ?

Por exemplo, vejo na sua base de dados que há apenas dois registros sem invoice, relacionado ao mesmo "delivery number" ambos, no dia 15 de junho. Então o resultado esperado no seu banco de dados não deveria ser:

image.png.12ed516c3d3651b6e9a49c726cf84766.png

Desculpe questionar seu resultado esperado, mas estou com dificuldade de entender a lógica que leva ao resultado que você mostrou...

 

Editado por Nelson Kobayashi
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Eu me compliquei com essa regra aqui tambem, acho que eu nao soube explicar

Acho que usando o exemplo abaixo fica mais facil, no caso do dia 16 eu deveria ter um resultado de 4 em aberto, porque eu tinha 1 caso sem invoice e mais 3 casos que apesar de ter tido invoice, foram emitidas apos o dia 16, entao estava open nesta data

image.png.caaf3b20e3e72d24457883c2daf36f80.png

Não sei se consegui te explicar agoram, desculpe pela confusao na explicação

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Afelicio

Nossa, entendi o problema!

É realmente um problema complexo de se resolver, pois envolve contexto de linha e com períodos diferentes em duas colunas com mais de um critério de filtro ...

Suspeito que a solução envolva tabelas virtuais com SUMMARIZE ... Vou estudar um pouco a respeito e ver se acho uma solução.

Mas pode ser que outros colegam consigam resolver antes.

Abç.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Rapaz, estou quebrando a cabeça faz um tempo pra resolver esse problema... A solução parece lógica mas quando eu faço as MEDIDAS, o cálculo não bate ...

Será que nossos colegas feras conseguem resolver ?  Agora fiquei com muita vontade de saber como se resolve esse problema ... Será que meu palpite de SUMMARIZE está furado ?
@Rafa Lemos

@Roseane

@Frank Figueredo

@RodrigoSan

@leoslemos

@Dums

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Afelicio 

Bom dia 

Analisando dua base vc tem 30 registro com data de "Delivery Created Date" e 28 com data coluna "Invoice_date" sendo assim voce teria 02 registro em aberto ao meu entender. Se for isso eh soh fazer a difernça de acumulado de uma coluna pela coutra contando a linhas ou usar a execept veja a live 30 do karpa que pode te ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Barony e @RodrigoSan!

Obrigado pela atenção ... Como é um problema complexo, a explicação é difícil, mas vamos lá:

O cálculo dos pedidos em aberto é acumulativo pela data enquanto o cálculo dos pedidos criados e fechados são contados pela data do contexto (Delivery Created Date), vejam as imagens, acho que ficará mais claro:

image.thumb.png.f2fc66116fa1602c199b48c3dd80604d.png

image.thumb.png.d2f2bb38487d497660afb548712ef0ce.png

image.thumb.png.c040d98430c7e2187ac7256fb87c1ac7.png

Ainda tem a complicação de que nesse cálculo tem que agrupar a contagem pelo número do pedido (Delivery Number).

É um problema tão doido de resolver que resolvi pedir ajudar aos universitários .... kkkk

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...