Share via


Função RELATED (DAX)

Retorna um valor relacionado de outra tabela.

Sintaxe

RELATED(<column>)

Parâmetros

Termo

Definição

column

A coluna que contém os valores que você deseja recuperar.

Valor de retorno

Um único valor que está relacionado à linha atual.

Comentários

Uma função RELATED requer a existência de uma relação entre a tabela atual e a tabela com informações relacionadas. Você especifica a coluna que contém os dados desejados e a função segue uma relação muitos para um existente para buscar o valor da coluna especificada na tabela relacionada.

Se não existir um relacionamento, você deverá criá-lo. Para obter mais informações, consulte Criar uma relação entre duas tabelas.

Quando a função RELATED executa uma pesquisa, ela examina todos os valores na tabela especificada, independentemente dos filtros aplicados.

ObservaçãoObservação

A função RELATED precisa de um contexto de linha; portanto, ela só pode ser usada em expressão de coluna calculada, onde o contexto de linha atual é inequívoco, ou como uma função aninhada em uma expressão que usa uma função de exame de tabela. Uma função de exame de tabela, como SUMX, obtém o valor do valor de linha atual e depois examina outra tabela para obter instâncias desse valor.

Exemplo

No exemplo a seguir, a medida Non USA Internet Sales é criada para produzir um relatório de vendas que exclui vendas nos Estados Unidos. Para criar a medida, a tabela InternetSales_USD deve ser filtrada para excluir todas as vendas pertencentes aos Estados Unidos na tabela SalesTerritory. Os Estados Unidos, como um país, são exibidos cinco vezes na tabela SalesTerritory; uma vez para cada uma das seguintes regiões: Noroeste, Nordeste, Centro, Sudoeste e Sudeste.

A primeira abordagem para filtrar as Vendas pela Internet para criar a medida, pode ser adicionar uma expressão de filtro como esta:

FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)

No entanto, essa abordagem não é intuitiva, estando propensa a erros de digitação e talvez não funcione se alguma das regiões existentes for dividida no futuro.

Uma abordagem melhor seria usar a relação existente entre InternetSales_USD e SalesTerritory e informar explicitamente que o país deve ser diferente de Estados Unidos. Para isso, crie uma expressão de filtro como esta:

FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

Essa expressão usa a função RELATED para pesquisar o valor do país na tabela SalesTerritory, começando pelo valor da coluna de chave, SalesTerritoryKey, na tabela InternetSales_USD. O resultado da pesquisa é usado pela função de filtro para determinar se a linha de InternetSales_USD é filtrada ou não.

ObservaçãoObservação

Se o exemplo não funcionar, talvez seja necessário criar uma relação entre as tabelas. Para obter mais informações, consulte Relações entre tabelas.

= SUMX(FILTER( 'InternetSales_USD'
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])
               <>"United States"
             )
     ,'InternetSales_USD'[SalesAmount_USD])

A tabela a seguir mostra apenas os totais de cada região, para provar que a expressão de filtro na medida, Non USA Internet Sales, funciona como deveria.

Rótulos de Linha

Internet Sales

Non USA Internet Sales

Austrália

$4,999,021.84

$4,999,021.84

Canadá

$1,343,109.10

$1,343,109.10

França

$2,490,944.57

$2,490,944.57

Alemanha

$2,775,195.60

$2,775,195.60

Reino Unido

$5,057,076.55

$5,057,076.55

Estados Unidos

$9,389,479.79

 

Total Geral

$26,054,827.45

$16,665,347.67

A tabela a seguir mostra o relatório final que pode ser obtido com o uso dessa medida em uma Tabela Dinâmica:

Non USA Internet Sales

Rótulos de Coluna

 

 

 

Rótulos de Linha

Accessories

Bikes

Clothing

Total Geral

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Total Geral

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67