Uma das funcionalidades mais poderosas do Power Pivot é a capacidade de criar relações entre tabelas e, em seguida, utilizar as tabelas relacionadas para procurar ou filtrar dados relacionados. Obtém valores relacionados a partir de tabelas com a linguagem de fórmula fornecida comPower Pivot, Data Analysis Expressions (DAX). O DAX utiliza um modelo relacional e, por conseguinte, pode obter valores relacionados ou correspondentes de forma fácil e precisa noutra tabela ou coluna. Se estiver familiarizado com a função PROCV no Excel, esta funcionalidade no Power Pivot é semelhante, mas muito mais fácil de implementar.
Pode criar fórmulas que fazem pesquisas como parte de uma coluna calculada ou como parte de uma medida para utilização numa Tabela Dinâmica ou gráfico dinâmico. Para mais informações, consulte os seguintes tópicos:
Campos Calculados no Power Pivot
Colunas Calculadas no Power Pivot
Esta secção descreve as funções DAX fornecidas para pesquisa, juntamente com alguns exemplos de como utilizar as funções.
Nota: Consoante o tipo de operação de pesquisa ou fórmula de pesquisa que pretende utilizar, poderá ter de criar primeiro uma relação entre as tabelas.
Compreender as Funções de Pesquisa
A capacidade de procurar dados correspondentes ou relacionados de outra tabela é particularmente útil em situações em que a tabela atual tem apenas algum tipo de identificador, mas os dados de que precisa (como o preço do produto, o nome ou outros valores detalhados) são armazenados numa tabela relacionada. Também é útil quando existem várias linhas noutra tabela relacionadas com a linha atual ou o valor atual. Por exemplo, pode obter facilmente todas as vendas associadas a uma determinada região, loja ou vendedor.
Ao contrário das funções de pesquisa do Excel, como PROCV, baseadas em matrizes ou LOOKUP, que obtém o primeiro de múltiplos valores correspondentes, o DAX segue as relações existentes entre tabelas associadas por chaves para obter o valor único relacionado que corresponde exatamente. O DAX também pode obter uma tabela de registos que estão relacionados com o registo atual.
Nota: Se estiver familiarizado com bases de dados relacionais, pode considerar as pesquisas no Power Pivot semelhantes a uma instrução subselecionada aninhada no Transact-SQL.
Obter um Valor Único Relacionado
A função RELATED devolve um único valor de outra tabela relacionada com o valor atual na tabela atual. Especifique a coluna que contém os dados pretendidos e a função segue as relações existentes entre tabelas para obter o valor da coluna especificada na tabela relacionada. Em alguns casos, a função tem de seguir uma cadeia de relações para obter os dados.
Por exemplo, suponha que tem uma lista dos envios atuais no Excel. No entanto, a lista contém apenas um número de ID de funcionário, um número de ID de encomenda e um número de ID de transitário, o que dificulta a leitura do relatório. Para obter as informações adicionais que pretende, pode converter essa lista numa Power Pivot tabela ligada e, em seguida, criar relações com as tabelas Funcionário e Revendedor, correspondendo EmployeeID ao campo EmployeeKey e ResellerID ao campo ResellerKey.
Para apresentar as informações de pesquisa na tabela ligada, adicione duas novas colunas calculadas, com as seguintes fórmulas:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])Envios de hoje antes da pesquisa
IDDaEncomenda |
IDdo Funcionário |
ID do Revendedor |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabela Funcionários
IDdo Funcionário |
Funcionário |
Revendedor |
---|---|---|
230 |
Kuppa Vamsi |
Sistemas modulares de ciclo |
15 |
Pilar Ackeman |
Sistemas modulares de ciclo |
76 |
Kim Ralls |
Bicicletas Associadas |
Envios de hoje com pesquisas
IDDaEncomenda |
IDdo Funcionário |
ID do Revendedor |
Funcionário |
Revendedor |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Sistemas modulares de ciclo |
100315 |
15 |
445 |
Pilar Ackeman |
Sistemas modulares de ciclo |
100316 |
76 |
108 |
Kim Ralls |
Bicicletas Associadas |
A função utiliza as relações entre a tabela ligada e a tabela Funcionários e Revendedores para obter o nome correto para cada linha no relatório. Também pode utilizar valores relacionados para cálculos. Para obter mais informações e exemplos, veja Função RELATED.
Obter uma Lista de Valores Relacionados
A função RELATEDTABLE segue uma relação existente e devolve uma tabela que contém todas as linhas correspondentes da tabela especificada. Por exemplo, suponha que pretende saber quantas encomendas cada revendedor efetuou este ano. Pode criar uma nova coluna calculada na tabela Revendedores que inclui a seguinte fórmula, que procura registos para cada revendedor na tabela ResellerSales_USD e conta o número de encomendas individuais efetuadas por cada revendedor.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
Nesta fórmula, a função RELATEDTABLE obtém primeiro o valor de ResellerKey para cada revendedor na tabela atual. (Não precisa de especificar a coluna ID em nenhum lugar na fórmula, porque Power Pivot utiliza a relação existente entre as tabelas.) Em seguida, a função RELATEDTABLE obtém todas as linhas da tabela ResellerSales_USD que estão relacionadas com cada revendedor e conta as linhas. Se não existir nenhuma relação (direta ou indireta) entre as duas tabelas, obterá todas as linhas da tabela ResellerSales_USD.
Para o revendedor Modular Cycle Systems na nossa base de dados de exemplo, existem quatro encomendas na tabela de vendas, pelo que a função devolve 4. Para Bicicletas Associadas, o revendedor não tem vendas, pelo que a função devolve um espaço em branco.
Revendedor |
Registos na tabela de vendas deste revendedor |
|
---|---|---|
Sistemas modulares de ciclo |
ID do Revendedor |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID do Revendedor |
SalesOrderNumber |
|
Bicicletas Associadas |
Nota: Uma vez que a função RELATEDTABLE devolve uma tabela, não um único valor, tem de ser utilizada como um argumento para uma função que executa operações em tabelas. Para obter mais informações, veja Função RELATEDTABLE.