Thiago Zavaschi R2 www.zavaschi.com

11Mar/100

PowerPivot – Múltiplas Fontes de Dados

Olá pessoal!

Depois de um tempo parado devido a outros projetos pessoais, retorno ao blog. :)

O post de hoje será para mostrar um recurso muito interessante do PowerPivot for Excel que é a capacidade de utilização de mais de uma fonte de dados para compor as suas PivotTables e PivotCharts.

Vou omitir diversos passos da criação da nossa “aplicação” (arquivo .xlsx) do PowerPivot, pois já comentei os passos básicos e requisitos necessários aqui (em português) e aqui (em inglês).

Imagine que você tenha a seguinte tabela no seu SQL Server (vou limitar a poucos dados para efeito de simplificação).

Nome da tabela: Vendas

Contém 3 colunas:

  • id (identificador, int identity),
  • unidades (numero de unidades vendidas, numeric(10,2))
  • estado (estado em que foi realizada a venda, char(2)).

E os seguintes dados:

id          unidades                                estado
----------- --------------------------------------- ------
1           100.00                                  PR
2           137.00                                  SP
3           10.00                                   AC
4           50.00                                   PR
5           29.67                                   RJ
6           100.00                                  SC
7           1000.00                                 RO
8           10506.09                                SP

Valores simples indicando a quantidade vendida em cada venda e para qual estado foi feita aquela venda.

Um result set semelhante a este poderia estar vindo de uma DW que armazene os dados de vendas e você esteja interessado em saber a quantidade vendida em cada região para análise. Desta forma não seria necessário trazer outras informações relativas (talvez uma data em que a venda foi realizada, mas por motivos de simplicidade não criei esta coluna).

Percebam analisando os dados que não temos uma linha para cada estado. Podemos ter diversas. O que é um cenário muito comum.

Agora no Excel eu abri a janela do PowerPivot e importei os dados utilizando como fonte o SQL Server. Obtive o seguinte resultado:

fig1

Agora criei um PivotChart e uma PivotTable com estes dados, além de um slicer sobre estado. O motivo do slicer é facilitar a análise, por exemplo, ignorando os outliers como São Paulo e Rondônia que complicam a visualização dos demais dados. Para um slicer funcionar/filtrar basta clicar sobre ele, utilize o Ctrl para selecionar mais de um. Obtive o seguinte resultado:

fig2

Beleza Thiago, acontece que eu queria mostrar o nome completo do estado e não a sigla. Vou ter que mudar a minha fonte de dados?

Você até poderia mudar a fonte de dados, mas isso em 99,9% dos cenários reais é inviável.

Então o que fazer?

Imagine que você tenha uma planilha do Excel (estou utilizando o Excel como sendo uma segunda fonte, mas poderia ser qualquer uma das outras fontes mostradas no artigo anterior) como esta (não coloquei todos os estados do Brasil apenas para ficar um conjunto menor) apresentada a seguir.

A planilha pode ser estar dentro do .xlsx que contém o Pivot recém criado ou pode estar em uma planilha diferente. Aqui estou utilizando dentro do mesmo arquivo .xlsx.

Ponto importante:

A forma com que os dados serão importados para a sua base do PowerPivot vindos do Excel é diferente se os dados estarão na mesma planilha ou em outra.

Caso esteja em outra planilha: Abra a janela do PowerPivot >> From Files >> From Excel.

Caso esteja no mesmo .xlsx: Você deve criar uma Linked Table. Há um botão para isso na aba do PowerPivot na ribbon do Excel. Lembre-se de usar a opção de “Format as a Table” para transformar os dados no seu Excel em tabela. As imagens a seguir mostram os pontos que você deve se ater:

fig3

fig4

Após isto, a sua tabela no Excel foi incluída como fonte no PowerPivot e ficou um ícone (ao lado do nome da fonte) que indica que é uma Linked Table. O resultado é o seguinte:

fig5

Perceba que eu renomeei do nome padrão que foi criado de “Table1” para “Estados”. Para este artigo não sentiremos diferença, mas no próximo quando começarmos a analisar as DAX (Data Analysis eXpressions) vamos sentir a diferença quando formos nos referir aos nossos dados. :)

E ae pronto?

Ainda não, para obtermos o resultado desejado devemos “linkar” a coluna estado da fonte Vendas, com a coluna Sigla da linked table Estados.

Selecione a aba “Table” na janela do PowerPivot e entre na opção “Create a Relationship”.

fig6

Selecione as colunas e tabelas relacionadas da seguinte forma (atente para o sentido da ligação, a tabela para ser executado o Lookup é a Estados e não a de Vendas):

fig7

Retorne ao Excel e verifique que há um aviso sobre modificações no modelo e um botão para atualização:

fig8

Clique em atualizar e o resultado será:

fig9

Troque na região do Axis Field o campo “estado” de Vendas e troque para o “Estado” da tabela Estados. E teremos…

fig10

E pronto! Troquei (para o PivotChart) a label e isso proveniente de uma tabela no meu Excel! Poderia ser de qualquer outra fonte :). Repare que os slicers foram mantidos por sigla e continuam totalmente funcionais (poderia ter trocado pela coluna de Estado da tabela Estados também, sem problemas)!

No próximo artigo da série iniciaremos com DAX, aguardem!

Abraços,
Thiago Zavaschi