Função RELATED
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çã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çã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 |
|
Grand Total |
$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 |
Acessórios |
Bikes |
Clothing |
Grand Total |
2005 |
|
$1,526,481.95 |
|
$1,526,481.95 |
2006 |
|
$3,554,744.04 |
|
$3,554,744.04 |
2007 |
$156,480.18 |
$5,640,106.05 |
$70,142.77 |
$5,866,729.00 |
2008 |
$228,159.45 |
$5,386,558.19 |
$102,675.04 |
$5,717,392.68 |
Grand Total |
$384,639.63 |
$16,107,890.23 |
$172,817.81 |
$16,665,347.67 |