Usar relacionamentos de forma eficaz

Outra função DAX que permite substituir o comportamento padrão é USERELATIONSHIP.

Considere o exemplo de modelo de dados a seguir.

Captura de tela dos relacionamentos

A captura de tela anterior mostra um relacionamento estabelecido entre as colunas  Date ** e ** OrderDate, como mostrado pelas linhas destacadas que conectam as duas. A linha sólida entre as duas tabelas indica que esse é o relacionamento ativo. Isso significa que, por padrão, qualquer segmentação na tabela de data em que as medidas dos dados de Vendas são exibidas estará na coluna OrderDate. Há um relacionamento tracejado entre as colunas Date e ShipDate, indicando que esse é o relacionamento inativo. Esse relacionamento nunca será usado, a menos que seja explicitamente declarado em uma medida.

O objetivo é criar o relatório a seguir, no qual você tem dois visuais: Vendas por data de envio e Vendas por data do pedido.

Captura de tela da criação de visuais com dimensões com função múltipla

Esses visuais mostram as vendas ao longo do tempo, mas a parte superior do visual é por data de pedido e a parte inferior é por data de envio, de modo que, embora ambas sejam datas, um ponto de dados diferente seja associado a elas para obter os dois conjuntos de dados no mesmo visual.

Para criar essa medida calculada para Vendas por data de envio, você pode usar a função DAX USERELATIONSHIP(). Essa função é usada para especificar um relacionamento a ser usado em um cálculo específico e é feita sem substituir nenhum relacionamento existente. É um recurso benéfico que permite aos desenvolvedores fazer cálculos adicionais em relacionamentos inativos substituindo o relacionamento ativo padrão entre duas tabelas em uma expressão DAX, como mostrado no seguinte exemplo:

Sales by Ship Date = CALCULATE(Sales[TotalPrice], USERELATIONSHIP('Calendar'[Date], Sales[ShipDate]))

Agora, você poderá criar a parte inferior do visual.