Múltiplas datas no Power BI: pedido, entrega e análise
Um pedido pode ser recebido em março e entregue em abril. Se o relatório usa apenas um campo de data sem explicar seu papel, o gestor pode interpretar o mesmo valor como venda criada, faturamento ou entrega. Modelar múltiplas datas no Power BI começa pela definição do evento que cada indicador representa.
Este guia usa pedido e entrega como exemplo. O desenho precisa respeitar a granularidade da fonte: um pedido com várias entregas exige eventos ou itens adequados, e não apenas uma data substituída a cada remessa. Os exemplos DAX são ilustrativos e dependem dos relacionamentos descritos.
1. Escreva a pergunta antes de escolher a data
“Quanto foi pedido no mês?” e “quanto foi entregue no mês?” selecionam populações diferentes. Já “quanto dos pedidos de março foi entregue em abril?” combina dois recortes. Registre essas perguntas para decidir como os calendários e as medidas devem funcionar.
Não dê a todas as medidas o nome genérico de total. Use rótulos como valor dos pedidos por data de criação e valor entregue por data de entrega. A distinção complementa os indicadores de vendas e ajuda a evitar comparações que confundem entrada comercial e execução operacional.
2. Confira o significado das colunas de origem
Identifique datas reais, previstas e renegociadas. Uma previsão de entrega não comprova que o produto chegou. Uma data de faturamento também não deve ser usada como confirmação operacional sem uma regra explícita. Registre a fonte e a situação de cada evento.
Para entregas parciais, escolha se a análise ocorrerá por remessa, item ou conclusão do pedido. Uma data única no cabeçalho pode responder apenas parte dessas perguntas. Antes de criar medidas, compare alguns pedidos conhecidos e confirme quais eventos estão representados em cada linha.
3. Prepare um calendário com cobertura suficiente
A orientação da Microsoft para tabelas de datas descreve uma tabela com uma linha por data e requisitos como valores únicos e ausência de lacunas. Garanta que o intervalo cubra as datas relevantes do modelo, inclusive previsões futuras quando fizerem parte da análise.
Padronize a granularidade dos campos relacionados. Se o calendário representa dias e a fonte contém horário, mantenha uma coluna diária adequada para o vínculo. Teste a interpretação de datas e preserve o horário original quando ele for necessário para avaliar janelas operacionais.
4. Escolha o relacionamento padrão
Em um desenho simples, o calendário pode ter relacionamento ativo com a data do pedido e outro inativo com a data de entrega. A documentação de relacionamentos do modelo explica sua função na propagação de filtros.
Escolha o padrão conforme a pergunta mais frequente, não apenas conforme a primeira coluna disponível. Se o usuário selecionar abril, uma medida comum sobre a tabela de pedidos seguirá o caminho ativo. Isso precisa corresponder à expectativa expressa no nome da medida e da página.
5. Use USERELATIONSHIP para uma medida específica
Para uma tabela didática com uma linha por pedido e uma única entrega concluída, suponha dois vínculos entre dCalendario e fPedidos. A data do pedido é ativa; a data da entrega é inativa. Uma medida ilustrativa é:
Valor por Data de Entrega =
CALCULATE(
SUM(fPedidos[Valor]),
USERELATIONSHIP(
fPedidos[DataEntrega],
dCalendario[Data]
)
)
A documentação de USERELATIONSHIP informa que a função utiliza um relacionamento existente durante o cálculo. A página de CALCULATE explica a avaliação em contexto de filtro modificado. Esse exemplo não calcula quantidades de remessas parciais nem transforma valor de pedido em receita contábil.
6. Use calendários por função para filtros independentes
Se a página precisa filtrar simultaneamente o período de criação e o período de entrega, considere uma dimensão de datas para cada função, com relacionamentos ativos e nomes distintos. A orientação de relacionamentos ativos e inativos discute esse tipo de necessidade.
Na prática, rotule os segmentadores como período do pedido e período da entrega. A seleção combinada deve representar a interseção pretendida. Escolher março no primeiro e abril no segundo não significa comparar os dois totais mensais; significa examinar os registros que atendem aos dois recortes.
7. Teste um conjunto pequeno de eventos
Considere três pedidos hipotéticos: um criado e entregue em março, outro criado em março e entregue em abril, e um terceiro criado em abril ainda sem entrega. O total por criação em março inclui os dois primeiros; o total por entrega em março inclui somente o primeiro.
O segundo aparece na entrega de abril, embora não tenha sido criado naquele mês. O terceiro não deve ser tratado como entregue apenas porque possui previsão. Monte essa conferência manual e compare com cada medida. Ela esclarece a regra melhor que uma comparação de grandes totais sem identificar os registros.
8. Revise ausências, filtros e segurança
Datas de entrega vazias exigem uma interpretação de negócio, como pedido ainda aberto ou confirmação ausente. Separe as situações quando a fonte permitir. Uma medida por entrega não substitui a análise de pedidos pendentes, pois trabalho aberto precisa de outra definição de população.
Confira filtros diretamente nas tabelas de fatos e o comportamento com perfis de acesso. A documentação de relacionamentos ativos e inativos registra limitações de propagação de filtros de segurança por caminhos inativos. Teste o desenho com os perfis reais; ativar um caminho numa medida não deve ser interpretado como configuração de autorização.
9. Documente o desenho e valide a publicação
Liste o papel de cada calendário, os relacionamentos e as medidas que usam cada data. Confira detalhes, totais e segmentadores após alterações. Para avaliar cumprimento de prazo, relacione essa organização ao OTIF, mantendo a data prometida separada da confirmação real.
O modelo editável de Logística pode apoiar a apresentação operacional, com ajustes conforme a fonte. A análise por diferentes datas exige revisar o modelo e implementar medidas apropriadas. Um relatório confiável deixa claro qual evento aconteceu, em qual período e quais registros compõem cada resultado.
