Uma das funcionalidades mais avançadas no Power Pivot é a capacidade de criar relações entre tabelas e, em seguida, utilizar as tabelas relacionadas para procurar ou filtrar dados relacionados. Pode obter valores relacionados a partir de tabelas utilizando a linguagem de fórmulas fornecida com oPower Pivot, Data Analysis Expressions (DAX). O DAX utiliza um modelo relacional, pelo que pode obter de forma fácil e precisa valores relacionados ou correspondentes noutra tabela ou coluna. Se estiver familiarizado com a função EXCEL, esta funcionalidade no Power Pivot é semelhante, mas muito mais fácil de implementar.
Pode criar fórmulas que façam procuras como parte de uma coluna calculada ou como parte de uma medida para utilizar numa Tabela Dinâmica ou numa 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 do DAX fornecidas para a procura, juntamente com alguns exemplos de como utilizar as funções.
Nota: Consoante o tipo de operação de procura ou fórmula de procura que pretende utilizar, poderá ter de criar primeiro uma relação entre as tabelas.
Compreender as Funções de Procura
A capacidade de procurar dados relacionados ou de correspondência de outra tabela é particularmente útil em situações em que a tabela atual só tem um identificador de algum tipo, mas os dados de que necessita (como o preço do produto, o nome ou outros valores detalhados) são armazenados numa tabela relacionada. Também é útil quando existem múltiplas linhas noutra tabela relacionadas com a linha atual ou o valor atual. Por exemplo, pode obter facilmente todas as vendas ligadas a uma determinada região, loja ou vendedor.
Por oposição Excel funções de procura como PROCV, que são baseadas em matrizes ou PROC, que obtêm o primeiro de múltiplos valores a corresponder, o DAX segue as relações existentes entre tabelas associadas por chaves para obter o único valor relacionado que corresponda 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 pensar nas procuras no Power Pivot como uma inserção aninhada subselecionada no Transact-SQL.
A recuperar um Único Valor Relacionado
A função RELATED devolve um único valor de outra tabela relacionada com o valor atual na tabela atual. Pode especificar a coluna que contém os dados que pretende e a função segue as relações existentes entre tabelas para 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, imaginemos que tem uma lista dos envios de hoje em Excel. No entanto, a lista contém apenas o número de ID de um funcionário, um número de ID de encomenda e um número de ID de expedidor, dificindo a leitura do relatório. Para obter as informações adicionais que pretende, pode converter essa lista numa tabela ligada Power Pivot e, em seguida, criar relações para as tabelas Funcionário e Revendedor, correspondendo IDDeEmpregado ao campo EmployeeKey e ResellerID no campo ResellerKey.
Para apresentar as informações de procura na sua tabela ligada, adicione duas novas colunas calculadas com as seguintes fórmulas:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[NomeDaEmema Empresa])
Envios de hoje antes da procura
IDDaEncomenda |
IDdeEmpresa |
IDDeRevendedor |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabela Funcionários
IDdeEmpresa |
Funcionário |
Revendador |
---|---|---|
230 |
Kuppa Vamsi |
Sistemas de Ciclo Modular |
15 |
Pilar Ackeman |
Sistemas de Ciclo Modular |
76 |
Kim Ralls |
Bicicletas Associadas |
Envios de hoje com procuras
IDDaEncomenda |
IDdeEmpresa |
IDDeRevendedor |
Funcionário |
Revendador |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Sistemas de Ciclo Modular |
100315 |
15 |
445 |
Pilar Ackeman |
Sistemas de Ciclo Modular |
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 do relatório. Também pode utilizar valores relacionados para cálculos. Para obter mais informações e exemplos, consulte Função RELATED.
Recuperar uma Lista de Valores Relacionados
A função RELATEDTABLE segue uma relação existente e devolve uma tabela que contém todas as linhas que correspondem da tabela especificada. Por exemplo, suponha que pretende saber quantas encomendas cada revendedor ergueu este ano. Pode criar uma nova coluna calculada na tabela Revendedores que inclua a seguinte fórmula, que procura registos para cada revendedor na tabela ResellerSales_USD e conta o número de encomendas individuais econtradas por cada revendedor.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
Nesta fórmula, a função RELATEDTABLE obtere primeiro o valor de ResellerKey para cada revendente na tabela atual. (Não precisa de especificar a coluna ID em qualquer parte da fórmula, porque o Power Pivot utiliza a relação existente entre as tabelas.) Em seguida, a função RELATEDTABLE obtere todas as linhas ResellerSales_USD da tabela que estão relacionadas com cada revenda e conta as linhas. Se não houver nenhuma relação (direta ou indireta) entre as duas tabelas, obterá todas as linhas a partir da tabela ResellerSales_USD tabela.
Para os Sistemas do Ciclo Modular de Revendedor 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 valor em branco.
Revendador |
Registos na tabela de vendas deste revenda |
|
---|---|---|
Sistemas de Ciclo Modular |
ID de Revendedor |
NúmeroDoOrderDaEmpresa |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID de Revendedor |
NúmeroDoOrderDaEmpresa |
|
Bicicletas Associadas |
Nota: Uma vez que a função RELATEDTABLE devolve uma tabela, e 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, consulte Função RELATEDTABLE.