Você está na página 1de 76

Excel 2010 PowerPivot

O Excel 2010 agora possui uma poderosa ferramenta de anlise de dados para todos os aficionados em Business Intelligence (BI). Este curso visa a introduo do PowerPivot e como voc poder tirar vantagens desta fantstica

Excel 2010 PowerPivot


por Robert Martim

ferramenta de anlise de dados.

Sumrio
Excel 2010 PowerPivot ................................................................................................................. 0 Introduzindo o PowerPivot? ........................................................................................................ 4 Onde est o meu PowerPivot? ................................................................................................ 5 O PowerPivot no est instalado em meu Excel. E agora? .................................................. 5 Devo usar o 32 ou 64 bits? ................................................................................................... 5 Instalei o PowerPivot mas sua guia no aparece. E agora? ................................................. 6 PowerPivot ou Tabela Dinmica ... Eis a questo .................................................................... 6 Reconhecendo a guia PowerPivot no Excel ............................................................................. 7 Reconhecendo as guias do aplicativo PowerPivot ................................................................... 8 Formato ideal para o PowerPivot ................................................................................................ 9 Quais bancos de dados so utilizados neste curso? ................................................................ 9 Importando Dados para o PowePivot ........................................................................................ 10 Copiando e colando dados no PowerPivot ............................................................................ 10 Convertendo dados para tabela e vinculando ao PowerPivot ............................................... 12 Importando dados de um arquivo texto ................................................................................ 13 Importando dados de feeds Atom ......................................................................................... 15 Importando dados do Servidor SQL ....................................................................................... 16 Determinando relacionamentos ........................................................................................ 19 Gerenciando relacionamentos ........................................................................................... 20 Importando de outras fontes de dados ................................................................................. 21 Bancos de dados relacionais .............................................................................................. 21 Multidimenses (Cubos) .................................................................................................... 21 Feeds .................................................................................................................................. 21 Arquivos ............................................................................................................................. 21 Conexes Existentes (conexes salvas) ................................................................................. 22 Relacionamento de dados ..................................................................................................... 24 Introduzindo Data Analysis Expressions (DAX) ....................................................................... 26 Tipos de dados aceitveis ...................................................................................................... 26 Brancos, Nulos e as funes Blank e IsBlank ...................................................................... 27 Adicionando campos (com e sem DAX) ................................................................................. 28 proibido o uso deste material em sala de aula e para ministrar treinamentos. Excel 2010 PowerPivot

2
AutoPreenchimento ...........................................................................................................29 Colunas calculadas ou medidas DAX? ................................................................................30 Inserindo uma coluna calculada: determinando o ano da venda ......................................30 Categorias de Funes Data Analysis Expressions (DAX) ...........................................................32 Formatando para um determinado tipo ................................................................................32 Atualizao de dados..............................................................................................................32 Funes de data e hora ..........................................................................................................33 As funes YEAR(), MONTH() e DAY() ................................................................................33 A funo DATE()..................................................................................................................34 A funo YEARFRAC() .........................................................................................................35 A funo WEEKNUM() ........................................................................................................35 A funo EMONTH() ...........................................................................................................36 Determinando a idade e tempo de servio do funcionrio ...............................................36 Determinando trimestres, semestres, etc..........................................................................38 Determinando o nmero da semana dentro de um ms...................................................40 Funes de texto ....................................................................................................................41 As funes LEFT(), RIGHT() e MID() ....................................................................................41 A funo FORMAT() introduo s medidas DAX ...............................................................42 A funo TRIM() ..................................................................................................................44 Concluso ...........................................................................................................................44 Excel 2010 PowerPivot Filtragem de dados .....................................................................................................................45 Filtro pr-importaco .............................................................................................................45 Filtro ps-importao .............................................................................................................46 Filtros utilizando coringas: filtrando produtos iniciados por determinados caracteres .47 Filtros utilizando coringas: filtrando produtos terminados por determinados caracteres ............................................................................................................................................49 Filtro ps-criao de tabela dinmica: utilizando slicers a DAX .............................................49 Segmentando dados por filtro de pgina ...........................................................................50 Filtro por lista personalizada ..............................................................................................51 Segmentao de dados com slicers ................................................................................54 Segmentao de dados com mltiplas tabelas e/ou grficos dinmicos e slicers .............56 Segmentao por seleo mltipla sem slicer ...................................................................56

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Segmentao dados por dimenses de tempo em tabela vinculada: Determinando o Acumulado no Ano ......................................................................................................... 57 Lucro Acumulado no Ano vs Lucro Acumulado no Ano Anterior ................................ 59 Medidas DAX complexas............................................................................................................ 63 Pensando em agregado ......................................................................................................... 63 Cumulativo de Acumulados no Ano ....................................................................................... 63 Determinando o valor mdio por pedido, ms e ano............................................................ 65 Determinando a mdia acumulada entre perodos (anos) .................................................... 66 Determinando o percentual do total ..................................................................................... 67 Determinando a importncia de um item pelo ndice ........................................................... 68 Agrupando pases em continentes ........................................................................................ 70 Mdia mvel .......................................................................................................................... 71 Trabalhando com grupos: introduzindo MDX........................................................................ 73

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

4 Sobre direitos autorais

AVISO IMPORTANTE - POR FAVOR LEIA:

Cada Curso tem um nmero de srie interno que nico para cada Cpia. O nmero de srie est associado com o teu nome, que foi comprou esta cpia dos cursos. Se esta cpia for colocada para livre download na Internet, eu tenho como saber quem foi que colocou e saberei quem processar por Violao de Direito Autoral, conforme previsto nas Leis 9118 e 9610. Por isso peo que no repasse cpia destes cursos para outros usurios. Eles so de uso individual.

Excel 2010 PowerPivot

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Introduzindo o PowerPivot
O PowerPivot um COM Add-In para o Microsoft Excel 2010 que leva a PivotTable (Tabela dinmica) a um novo nvel. Alm do Excel, ele tambm pode ser utilizado sobre a plataforma do SharePoint e, em ambos os casos, permite que o usurio crie seus prprios cubos sobre o SQL Server Analysis Services (SSAS). Mas o que um cubo? Bom, neste caso voc no precisa saber ou entender dos conceitos de cubos ou at mesmo do SASS. Em outras palavras, voc poder criar suas anlises de dados sem entender de nada disso. No obstante, voc precisar aprender um pouco sobre uma linguagem de clculo analtico conhecido como DAX (Data Analysis eXpressions).

Onde est o meu PowerPivot?


O PowerPivot no est instalado em meu Excel. E agora?
Por padro o PowerPivot no vem instalado. Voc precisar baixa-lo da Internet no endereo: www.powerpivot.com Voc deve escolher a verso apropriada para seu Excel 2010. Por exemplo, se voc utiliza a verso 32 bits do Office, dever baixar esta verso. Se voc utiliza a verso 64 bits, baixe-a, pois as verses no so intercambiveis. Em seguida, instale-o em seu computador. Uma vez instalado, voc ter a seguinte guia extra no Excel:

F IGURA 1 - GUIA DO P OWER PIVOT

Devo usar o 32 ou 64 bits?


Esta pergunta remonta ao formato de arquivo quando o NTFS (NT File System) foi introduzido no lugar do FAT (File Allocation Table). O NTFS permite maior segurana bem como lida com HDs de maior capacidade, etc. No caso da verso 64 bits do Office ns temos um cenrio similar onde a verso 64 bits nos permite trabalhar com arquivos maiores (atualmente arquivos Excel em 32 bits travam na marca dos 1-2GB de tamanho) e nos oferece maior segurana. Por outro lado, boa parte dos produtos desenvolvidos para Excel est em 32 bits (centenas de suplementos Addins) e os mesmos no funcionaro na verso 64 bits. Se o desenvolvedor no oferecer suporte, s resta se lamentar ou instalar a verso 32 bits (opo mais bvia).

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

6
Outros problemas incluem falta de suporte ao Jet para acesso a banco de dados. Para aqueles que desenvolvem em Excel com um banco de dados Access como backend, a soluo utilizar o ACE e assegurar que tudo feito sobre uma plataforma 64bits. O mesmo vale para desenvolvimento em ASP clssico ou ASP.NET sobre a plataforma Windows 7 64 bits, voc precisa modificar a configurao no IIS 7 para aceitar os projetos em 32 bits sobre esta plataforma, seno, mesmo com o Office 32 bits, voc no ter como executar uma rotina sobre o Windows 64 bits. No meu caso especfico, utilizo o Windows 7 Ultimate 64 bits, mas preferi manter o Office em 32 bits, pois no vale a pena todas as dores de cabea associadas troca, neste momento.

Instalei o PowerPivot mas sua guia no aparece. E agora?


Se voc instalou o PowerPivot com o Excel aberto pode ser que a instalao tenha sido um sucesso, mas a guia do suplemento (Add-In) no aparea. Neste caso, proceda como segue: 1. Feche e abra o Excel; 2. Abra as opes do Excel (Arquivo Opes Suplementos Gerenciar Suplementos COM); 3. Clique em Ir 4. Selecione PowerPivot da lista (marcando a caixa de seleo) e clique OK

Excel 2010 PowerPivot

F IGURA 2 ATIVANDO O POWER PIVOT

PowerPivot ou Tabela Dinmica ... Eis a questo


A escolha de um ou outro produto depender de sua necessidade de trabalho e vontade de aprender algo novo. Cada produto tem suas vantagens e desvantagens.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Vejamos alguns exemplos: ATIVIDADE Campo calculado Itens por campo Relacionamento de campos Converter para frmulas cubo Criao de cubos Relatrio assimtrico PivotTable Fcil de aplicar usando os modelos internos. Pouco flexvel. 1,048,576 Impossvel Impossvel Diretamente no banco de dados (SQL, por exemplo) Enxugar gelo o termo adequado PowerPivot Requer conhecimento especfico de DAX; extremamente flexvel. Limitado memria existente Possvel Possvel Diretamente no PowerPivot sem interferncia do DBA Permite a fcil elaborao

T ABELA 1 - TABELA D INMICA VS P OWER PIVOT

Estas so apenas algumas das diferenas entre as duas ferramentas; embora ambas produzam relatrios de BI (Business Intelligence) muito similares em termos de formato. No obstante, as funcionalidades disponibilizadas pelas funes DAX nos do maior flexibilidade em termos de anlise de dados. Esta flexibilidade, por si s, j representa uma grande vantagem sobre as tabelas dinmicas. Em outras palavras, aqui ns separamos os adultos das crianas.

Reconhecendo a guia PowerPivot no Excel


Faamos, agora, um rpido reconhecimento da guia do PowerPivot. Este reconhecimento fundamental para que voc possa compreender melhor as ferramentas disponveis. A figura abaixo mostra a guia do PowerPivot com as respectivas KeyTips (teclas de atalhos acessadas atravs da tecla Alt do teclado. As explicaes so dadas a partir destas KeyTips. Excel 2010 PowerPivot

F IGURA 3 - GUIA POWER PIVOT

No visvel na imagem, a tecla de atalho para acesso guia do PowerPivot a partir de qualquer guia quando pressionamos a tecla Alt no teclado seguida desta letra; Abre a janela do PowerPivot (esta janela ser analisada mais adiante); Nova medida. Utilize este boto para criar novas medidas atravs de funes DAX Exclui medidas adicionadas anlise de dados Configura as medidas criadas; Este menu permite a criao de vrios elementos associados tabela dinmica tais como a prpria TD e grficos dinmicos;

Y11 N D S Y2

proibido o uso deste material em sala de aula e para ministrar treinamentos.

8
C Y3 Y4 Vincular tabelas Atualiza os dados externos conectados; Permite a configurao do PowerPivot. Por exemplo, voc pode determinar se o idioma do PowerPivot coincide ou no com o idioma da instalao do Excel ou pode utilizar outro idioma qualquer; Lista de campos permite a visualizao dos campos dos dados conectados. Detecta a relao entre tabelas utilizadas na anlise de dados.

Y5 R

Reconhecendo as guias do aplicativo PowerPivot


O PowerPivot um aplicativo que roda sobre o Excel e alm da guia e comandos disponveis diretamente no Excel, ele tambm possui uma janela prpria com suas prprias guias e comandos. Vejamos abaixo os trs principais elementos:

F IGURA 4 - APLICATIVO POWER P IVOT

D T PT

Expande as opes de conexo a banco de dados (SQL, Access ou SQL Analysis Services); Abre o assistente de conexo ao SQL Reporting Services (SSRS); Expande as opes de criao de uma Tabela dinmica, grfico dinmico, etc;

Excel 2010 PowerPivot

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Formato ideal para o PowerPivot


O formato ideal para o PowerPivot : 1. Colunas: Contm os nomes dos campos; 2. Linhas: Contm os registros Pode parecer simples, mas a modelagem dos dados tem que ser feita de modo que qualquer consulta gere resultados significativos. Caso contrrio, a anlise dos dados no ter muito sentido ou ser mais complexa do que deveria ser. A figura abaixo exibe um modelo nos moldes acima:

F IGURA 5 - MODELO DE ENTRADA DE DADOS PARA O P OWER PIVOT

Note que os campos SupplierID e CategoryID so campos numricos. Obviamente que o valor numrico significa muito pouco para voc; no obstante, este nmero se refere chaveprimria da tabela correspondente. Em outras palavras, a tabela de produtos exibida acima est relacionada com as tabelas de fornecedores (Supplier) e a tabela de categorias (Category) por este campo. Neste caso, ao criarmos nossa anlise podemos exibir o nome do fornecedor ou nome da categoria ao invs do nmero da chave-primria. A grande vantagem deste mtodo que os dados esto amarrados entre si o que fa cilita o cruzamento de informaes e consequentemente a sua anlise. Excel 2010 PowerPivot

Quais bancos de dados so utilizados neste curso?


Este curso utilizar os seguintes bancos de dados 1. Northwind 2. Adventure Works Ambos os bancos de dados sero acessados a partir do SQL Server. No obstante, caso voc no tenha o SQL, voc poder usar a verso Northwind para o Access. Os dados so os mesmos. Uma verso do AdventureWorks para Access 2003 acompanha este curso. Caso queira, baixa a verso light do SQL e instale os dois bancos de dados acima. Eles so gratuitos e servem de modelo para este tipo de trabalho.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

10 Importando Dados para o PowePivot


Neste tpico, voc aprender como importar dados para o PowerPivot de diferentes fontes. Lembre-se que as anlises futuras deste curso sero feitas sobre o SQL Server e Access, embora, aqui sejam mostradas as diferentes fontes externas de dados.

Copiando e colando dados no PowerPivot


Um mtodo simples, embora no muito inteligente e til, para inserirmos dados no PowerPivot atravs da rea de Transferncia. Aqui, podemos simplesmente copiar dados em um formato vlido e col-lo no PowerPivot. A Figura 6 abaixo mostra as opes de colagem no PowerPivot: 1. Colar: Colar dados da rea de Transferncia em uma tabela do PowerPivot 2. Colar Acrscimo: Adiciona os dados da rea de Transferncia aos dados j existente em uma tabela do PowerPivot; 3. Colar substituio: Colar e substituir dados existente em uma tabela do PowerPivot.

F IGURA 6 - OPES DE CPIA DE COLAGEM NO P OWER PIVOT

Excel 2010 PowerPivot

A cpia no precisa partir da janela do PowerPivot, voc pode copiar de qualquer localidade e depois colar no PowerPivot. Ao utilizarmos a colagem simples direta, obteremos a janela do Assistente de colagem conforme exibido na Figura 7. Neste ponto, voc deve: 1. Definir nome da tabela 2. Definir os nomes dos campos (cabealhos de colunas) 3. Verificar validade dos nomes dos campos Clique em OK para terminar o processo.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 7 - ASSISTENTE DE COLAGEM

Se voc deseja apender alguma informao extra, copie a informao da tabela de origem e utilize o comando Colar Acrscimo para colar os dados que devem ser apendidos. O PowerPivot exibir os dados existentes e os novos dados:

F IGURA 8 - APENDENDO DADOS UMA TABELA EXISTENTE

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

11

12
Caso a primeira linha contenha os nomes dos campos, selecione Excluir primeira linha de dados copiados. Finalmente, voc pode colar para substituir uma tabela existente. Neste caso, os dados antigos sero apagados do PowerPivot. O mtodo de copiar/colar til para uma anlise rpida; porm, se os dados mudam voc precisar copiar e colar novamente, pois no existe um mtodo direto de atualizao dos dados.

Convertendo dados para tabela e vinculando ao PowerPivot


ARQUIVO MODELO PARA ESTE TPICO: Produtos_Excel_2010.xlsx Alternativamente ao exemplo anterior, ns podemos converter um intervalo qualquer Em tabela e, posteriormente, ns podemos utilizar esta tabela como fonte de dados para o PowerPivot. Neste caso, os dados adicionados tabela podem ser atualizados no PowerPivot. O primeiro ponto importante a se lembrar : sua tabela no pode ter espaos vazios! Caso sua tabela tenha algum registro vazio, voc precisar selecionar TODA a tabela para evitar problemas. Assumindo que a tabela completa, voc dever1: 1. Clicar em qualquer lugar da tabela; 2. Na guia Inserir grupo Tabelas clicar sobre Tabela. Neste ponto, o Excel abrir caixa de dilogo de converso para tabela:

Excel 2010 PowerPivot

F IGURA 9 - C ONVERTENDO REA DE DADOS PARA TABELA

Verifique se o intervalo sugerido est correto e se a tabela possui mesmo os cabealhos corretamente dispostos. Clique em OK para continuar. Para vincular a tabela ao PowerPivot, siga os passos abaixo: 1. Clique em qualquer lugar da tabela convertida; 2. Acesse a guia PowerPivot; 3. No grupo Dados do Excel, clique em Criar Tabela Vinculada.

Alternativamente, na guia Pgina Inicial grupo Estilos clique em Formatar como tabela e escolha um dos estilos disponveis.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Pronto, o Excel far o vinculo entre a tabela criada e o PowerPivot. Como exerccio, adicione dados tabela e, depois, abra novamente a janela do PowerPivot. Note que os dados inseridos aparecero na tabela vinculada.

Importando dados de um arquivo texto


ARQUIVO MODELO PARA ESTE TPICO: Produtos_Texto_Sistema_PT_BR.txt bastante comum termos dados exportados para arquivos texto para posterior anlise. Entretanto, voc deve ter em mente alguns itens bsicos para evitar problemas. O arquivo texto: 1. Deve possuir cabealho (campo de cada registro); 2. No pode ter espaos em branco, cabealhos extras, etc; 3. Deve possuir um separador de campo (via de regra, o separador uma vrgula, apenas tome cuidado com nmeros e correspondente decimais. Para sistemas em portugus comum se usar o ponto-e-vrgula); 4. Deve, de preferncia, ter um qualificador de texto. Isso facilitar a prpria visualizao dos dados. Observe a imagem abaixo:

F IGURA 10 - F ORMATO TEXTO PARA P OWER PIVOT

Note que ID, Nome, etc, so separados por uma vrgula (o arquivo texto foi originalmente gerado em CSV Comma Separated Value). Esta vrgula chamada de delimitador. Cada campo tambm envolvido em aspas duplas. Estas aspas so conhecidas como qualificadores de texto. Excel 2010 PowerPivot A Figura 10 um arquivo texto vlido para o PowerPivot, j a Figura 11 no:

F IGURA 11 - F ORMATO TEXTO INVLIDO PARA O POWER P IVOT

Como as informaes so as mesmas, voc precisaria limpar os cabealhos excedentes antes de importar os dados para o PowerPivot.

13

proibido o uso deste material em sala de aula e para ministrar treinamentos.

14
Com as explicaes sobre os modelos de formato de texto, vejamos agora como efetuar a importao dos dados. Siga os passos abaixo: 1. Acesse a guia PowerPivot e clique em Janela do PowerPivot; 2. No grupo Obter dados externos clique em De Texto 3. Defina um nome amigvel para sua conexo; 4. Clique em Procurar e localize o arquivo texto (utilize o arquivo Produtos_Texto_Sistema_PT_BR.txt na pasta Dados que acompanha este curso) e selecione-o; 5. Selecione o separador adequado (neste caso, usaremos o ponto-e-vrgula); 6. Clique em Concluir para terminar o processo. A Figura 12 mostra como o seu Assistente deve se parecer. Note que por padro o separador ser vrgula. Voc precisa selecionar o separador adequado. Como teste, modifique o tipo de separador e veja como o assistente agrupa as informaes.

Excel 2010 PowerPivot

F IGURA 12 - ASSISTENTE DE IMPORTAO DE TEXTO

Alm das observaes inerentes importao dos dados, existem outros elementos que devem ser observados tambm. Dentre eles, esto: 1. Selecionar o item Usar primeira linha como cabealho de coluna. Isso quer dizer que a primeira linha deve conter os nomes dos campos sendo importados; 2. Limpar filtros de linha deve ser clicado para remover qualquer filtro adicionado. Caso contrrio, voc ter apenas um subconjunto dos dados.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 13 - FILTRO APLICADO NOS DADOS ANTES DA IMPORTAO

A figura anterior exibe dados filtrados por nome do produto (ProductName). Utilize o boto Limpar Filtros de Linha para exibir todos os itens ou aplique o filtro manualmente no(s) campo(s) desejado(s). Na mesma lista suspensa possvel ordenar os dados por um ou mais campos.

Importando dados de feeds Atom


Excel 2010 PowerPivot O Atom uma plataforma de feeds que compete diretamente com o RSS (Really Simple Syndication) que uma forma de busca de dados simples a qual utilizada para manter as pessoas informadas e sua base o XML. O XML funciona como um banco de dados simples, mas poderoso. Por exemplo, voc pode utilizar o XML para fornecer informaes sobre as pginas web de seu site. Para o PowerPivot, voc deve utilizar feeds vindo do Atom, pois esta a plataforma que o PowerPivot fornece suporte. Voc pode obter estes dados da(o) 1. Internet; 2. Intranet, atravs de um portal SharePoint, por exemplo; 3. SQL Reporting Services. Para este exemplo utilizarei feeds dos seguintes links: 1. http://news.google.com/news?ned=us&topic=s&output=atom 2. http://ogdi.cloudapp.net/v1/gsa/ConusPerDiemRates2009/

15

proibido o uso deste material em sala de aula e para ministrar treinamentos.

16
Voc pode buscar outras fontes de dados para teste, caso queira. Exemplos de dados interessantes incluem histrico: 1. Meteorolgico; 2. De preo de aes de uma determinada empresa; 3. De variao de moedas estrangeiras, etc. Para importar os dados advindos de feeds, siga os passos abaixo: 1. No grupo Obter Dados Externos clique em De Feeds de Dados; 2. Quando o Assistente abrir, digite a URL do feed no campo URL do feed de dados (o nome amigvel da conexo ser sugerido automaticamente. Modifique conforme necessrio); 3. Clique em Testar Conexo Se a conexo for bem-sucedida voc ver a mensagem exibida na Figura 14. Caso contrrio, um erro ser exibido. Expanda o erro para verificar o problema e a possvel soluo. Via de regra, os erros desta conexo esto relacionados negao da conexo (conexo no pblica) ou feeds que no so de origem Atom.

Excel 2010 PowerPivot

F IGURA 14 - ASSISTENTE DE CONEXO FEEDS E TESTE DE CONEXO

Importando dados do Servidor SQL


O SQL e o Access sero as principais fontes de dados deste curso. No obstante, caso voc no tenha o SQL, voc poder utilizar o banco de dados Northwind bem como o AdventureWorks (anexo ao curso) para Access para acompanhar os exemplos (ou outro banco de dados

proibido o uso deste material em sala de aula e para ministrar treinamentos.

qualquer). Lembre-se que o curso lhe ensinar conceitos sobre anlise de dados utilizando o PowerPivot, a fonte de dados irrelevante. Para a conexo ao um banco de dados SQL, voc pode ter cenrios distintos. Por exemplo: 1. Voc poder conectar a um servidor parqueado na Internet. Neste caso, voc precisar do nmero de IP do servidor bem como nome de usurio e senha do banco de dados. 2. O banco de dados local e voc utilizar o nome do servidor SQL local juntamente com a senha e nome de usurio. Em alguns casos de SQL local usa-se o sistema de autenticao do Windows o que dispensar senha e usurio Independentemente do mtodo usado, se voc no o administrador, precisar as informaes de login de quem administra o sistema. No nosso, utilizaremos o logon do SQL Server. Siga os passos abaixo: 1. Abra a janela do PowerPivot; 2. No grupo Obter dados externos clique em De Banco de Dados e escolha Do SQL Server A janela de conexo ser aberta conforme mostra a figura a seguir:

F IGURA 15 - CONECTANDO AO SERVIDOR SQL

3. Em Nome do servidor voc deve entrar o nome do servidor ou endereo de IP do servidor na Internet. Caso voc no tenha um servidor SQL, voc dever usar o banco de dados que preparamos para este curso: IP: Nome de usurio: Senha: 205.178.146.40 robert_martim 1211Cmart02

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

17

18
Nome do banco de dados: NOTA Outros bancos de dados aparecero na lista, somente o BD indicado tem acesso com as informaes prestadas. Qualquer tentativa de fraudar e/ou hackear o sistema acarretar em processo por danos materiais contra o fraudador/hacker. 4. No caso de conexo local, o Assistente exibir (aps a seleo do nome do servidor na lista suspensa): teste_northwind

F IGURA 16 - ASSISTENTE DE CONEXO SQL: DEFININDO A ORIGEM

5. Modique o nome da conexo para algo que faa mais sentido para voc ou aceite a sugesto. 6. Clique em Testar Conexo; Excel 2010 PowerPivot 7. Clique em Avanar; 8. No passo seguinte, voc pode escolher itens de uma lista de tabelas ou escrever uma instruo SQL. Selecione a primeira opo;

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 17 - ASSISTENTE DE CONEXO SQL: MTODO DE SELEO DE DADOS

9. Escolha as tabelas Categorias e Produto. Estas duas tabelas so relacionadas. Note que h o boto Selecionar Tabelas Relacionadas o qual pode ser utilizado para marcar qualquer tabela que possua um relacionamento; 10. Caso queira filtrar os dados antes de continuar, clique em Visualizar & Filtrar

F IGURA 18 - ASSISTENTE DE CONEXO SQL: ESCOLHENDO O QUE IMPORTAR

Determinando relacionamentos
Ao importar os dados do processo anterior, voc notar que ao criar uma tabela dinmica o PowerPivot automaticamente detectar o relacionamento entre estas duas tabelas importadas. No obstante, pode ocorrer de o relacionamento ser incorreto por vrias razes. Neste caso, voc pode fazer o relacionamento manualmente. Para tanto, siga os passos: 1. Na janela do PowerPivot acesse a guia Design; proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

19

20
2. No grupo Relaes clique em Criar Relaes; 3. Selecione os campos que devem relacionados conforme modelo exibido abaixo.

F IGURA 19 - DETERMINANDO RELACIONAMENTOS

Gerenciando relacionamentos
Uma vez que os campos tenham sido relacionados, voc poder gerenci-los atravs gerenciador de relaes: 1. Na janela do PowerPivot acesse a guia Design; 2. No grupo Relaes clique em Gerenciar Relaes; 3. Escolha a opo que deseja gerenciar e repita os passos do item anterior.

Excel 2010 PowerPivot

F IGURA 20 - GERENCIAMENTO DE RELAES

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Importando de outras fontes de dados


Alm das fontes externas de dados visveis, ns podemos importar de uma pletora de fontes externas. Abaixo, tais fontes so agrupadas de acordo com o tipo de origem. Lembre-se que determinadas fontes requerem permisso de acesso. Voc dever obt-las do gerenciador do banco de dados ou responsveis pelos mesmos.

Bancos de dados relacionais


1. Microsoft SQL Azure 2. Microsoft SQL Server Parallel Data Warehouse 3. Oracle 4. Teradata 5. Sybase 6. Informix 7. IBM DB2 8. Outros OLEDB/ODBC

Multidimenses (Cubos)
1. SQL Server Analysis Services

Feeds
1. Atom 2. SQL Server Reporting Services 3. Sharepoint feeds Excel 2010 PowerPivot

Arquivos
No caso das fontes abaixo, o PowerPivot exibir somente a extenso *.txt (texto). Porm, voc poder selecionar outras opes de arquivo da lista suspensa da caixa de dilogo. 1. CSV (Comma Separated Values) 2. Tabulados 3. Texto 4. Excel

21

proibido o uso deste material em sala de aula e para ministrar treinamentos.

22

F IGURA 21 - ESCOLHENDO UM ARQUIVO DIFERENTE DE TEXTO

Conexes Existentes (conexes salvas)


Uma vez que voc tenha conectado e salvo uma fonte de dados qualquer, voc poder acessar tal fonte a partir da guia Design.

.
F IGURA 22 ABRINDO A CAIXA DE DILOGO DE CONEXES EXISTENTES

Sugerimos que voc salve a conexo ao banco de dados Northwind o qual estar disponvel em nosso servidor para testes de seu aprendizado. Clicando neste boto, a janela de conexes existentes ser exibida. Escolha a conexo que deseja utilizar e siga em frente:

Excel 2010 PowerPivot

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 23 CONEXES EXISTENTES NA MQUINA LOCAL

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

23

24
Relacionamento de dados
Um aspecto importante da anlise de dados a relao que os dados tm entre si. Observe a figura abaixo:

F IGURA 24 INDEFINIO EM RELAO MEDIDA POR FALTA DE RELACIONAMENTO DE DADOS

Como no possumos um relacionamento de dados entre os campos utilizados na TD, o resultado uma medida nica para todos os campos exibidos. Caso o PowerPivot no sugira o relacionamento dos dados, voc pode criar o relacionamento atravs do gerenciador (conforme j explicado). No caso acima, como utilizaremos o banco de dados AdventureWorks para os exemplos que seguiro este tpico, importante que voc crie os relacionamentos necessrios. Na guia do PowerPivot, caso no esteja selecionado, clique em Deteco no grupo Relaes:

Excel 2010 PowerPivot

F IGURA 25 DETERMINANDO O RELACIONAMENTO

Clique em Criar para que o PowerPivot tente determinar a relao necessria (alternativamente, faa a relao manualmente na janela do PowerPivot).

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Criado o relacionamento, voc pode continuar com os exemplos daqui para frente, lembrando sempre de criar o relacionamento inexistentes entre as tabelas. DICA Sempre que voc visualizar dados resultantes de funes que agregam valores, por exemplo, SUM, retornando um valor nico para o cruzamento de dados, isso indica que no h filtro entre os dados o que pode indicar falta de relacionamento entre os mesmo ou erro na definio dos argumentos da funo.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

25

26 Introduzindo Data Analysis Expressions (DAX)


O principal objetivo deste tpico no como utilizar as expresses de anlise de dados (DAX), mas introduzir alguns conceitos relacionados a tais expresses. O Excel, de modo geral, bastante flexvel em relao aos tipos de dados que podem ser inseridos em uma planilha. Aps (os antes) a insero dos dados, ns podemos format-los de diversas formas. No obstante, tais formataes no afetam diretamente os valores entrados nas clulas. No caso da DAX, precisamos observar alguns pontos importantes para evitarmos erros.

Tipos de dados aceitveis


As expresses DAX bem como os campos utilizados em tais expresses aceitam os seguintes formatos: 1. Texto (string): Representa caracteres de texto, podem conter valores numricos, desde que os mesmos sejam tratados como texto. Por exemplo, o valor alfanumrico de referncia de um produto; 2. R8 (nmero real de 8 bytes). Representa o conjunto de nmeros reais (no grupo Formatao Menu Tipo de Dados/Formatar representado pela opo Nmero Decimal); 3. I8 (inteiro de 8 bytes): como o valor inteiro, ele no aceita decimais no nmero sendo avaliado, embora o escopo de nmeros disponveis varie entre 9,2 e +9,2 quintilhes. O valor representado por Nmero Inteiro no grupo Formatao Menu Tipo de Dados/Formatar; 4. CY: Representa o formato currency (moeda) e pode conter qualquer valor duplo. O formato tomar como base a localizao do sistema. 5. Boolean: Representa dois estados, isto , o VERDADEIRO (1) e o FALSO (0); Excel 2010 PowerPivot 6. Data: Representa os decimais equivalentes s datas e horas;

F IGURA 26 TIPO DE DADOS DO CAMPO SELECIONADO : MOEDA (CY)

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Lembre-se que estamos falando de TIPO DE DADOS e no da formatao propriamente dita. Sendo assim, totalmente possvel que voc formate um campo como inteiro, mas que antes era moeda e depois de volta para moeda. No obstante, modificar um campo tipo moeda para, digamos, inteiro pode soletrar D-E-S-AS-T-R-E! Isso porque valores inteiros no possuem a parte decimal. A Figura 26 mostra vrios valores no campo F6 como possuindo a parte decimal. Ao modificarmos o tipo de dados ns seremos avisados da possvel perda:

F IGURA 27 MENSAGEM DE AVISO SOBRE MODIFICAO DO TIPO DE DADOS

Caso queira exibir como Inteiro sem alterar o valor efetivamente exibido no campo, utilize o menu Formatar. Neste caso especfico, somente a representao na tela ser modificada e no o nmero efetivamente armazenado no campo.

F IGURA 28 F ORMATOS PARA CAMPOS E EXPRESSES DAX

Brancos, Nulos e as funes Blank e IsBlank


Suponha que voc esteja programando contra um banco de dados, isto , voc est inserindo, lendo e/ou editando informaes de um banco de dados. Em um cenrio como este, campos nulos (null) podem ser um problema. No PorwerPivot, voc pode utilizar a funo BLANK ou ISBLANK para preencher espaos em branco (do ponto de vista do Excel ou nulos do ponto de vista do Access/SQL/etc) ou avaliar se o valor branco. As figuras a seguir mostram os dois cenrios em questo:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

27

28

F IGURA 29 PREENCHENDO CAMPO COMO SENDO NULO (BRANCO )

F IGURA 30 AVALIANDO SE O CAMPO NULO (BRANCO)

No primeiro caso, ns temos um campo sendo preenchido com o valor nulo. J no segundo, ns fazemos uma avaliao lgica usando a funo ISBLANK no campo F9 da Plan3. Aqui, o primeiro valor nulo (TRUE/VERDADEIRO), mas no nos trs seguintes (FALSE/FALSO). Finalmente, recordando-se do valor boolean (booleano), existem algumas regras que voc precisa ter em mente ao efetuar clculos quando um campo branco ou nulo. As seguintes regras so: Soma/subtrao: Ao somar/subtrair dois valores brancos no Excel o resultado ser zero. Em uma expresso DAX, o valor ser nulo; Multiplicao: Como o Excel trata o valor branco como zero na soma/subtrao, a multiplicao de qualquer valor por branco ser igual zero. Em uma expresso DAX, o valor ser nulo; Excel 2010 PowerPivot Diviso: Como o Excel trata o valor branco como zero na soma/subtrao, a diviso de qualquer valor por branco ser igual ao erro DIV/0!. Em uma expresso DAX, ser infinito (isso indica um nmero infinito de possveis respostas); Blank OU verdadeiro ser sempre verdadeiro (o operador OU avalia se um dos valores verdadeiro, se sim, toda a expresso ser verdadeira); Blank E verdadeiro ser sempre branco (o operador E avalia se um dos valores verdadeiro, se sim, toda a expresso ser falsa. Pode parecer estranha a afirmao, mas a questo aqui a seguinte: se o valor branco E verdadeiro; ento verdade que ele branco. Em outras palavras, voc precisa de apenas um branco em toda a expresso para invalidar (falsificar) qualquer verdadeiro em favor do branco.);

Adicionando campos (com e sem DAX)


Ao abrir a janela do PowerPivot voc notar que possvel adicionarmos campos tabela visvel. No caso do PivotTable (tabela dinmica) a frmulas que agregam dados so internas. Sendo assim, caso voc queira agrupar datas em anos, basta apenas solicitar o agrupamento.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Este mtodo tem suas vantagens e desvantagens. A grande vantagem que no precisar fazer nada alm de clicar no boto de agrupamento. A desvantagem que este mtodo inflexvel.

AutoPreenchimento
Iniciando no Excel 2007, temos agora a opo de AutoPreenchimento de frmulas, onde o nome das funes exibido conforme digitamos. Quando lidamos com o PowerPivot, o mesmo vlido. Caso voc esteja importando dados de um arquivo Excel importante observar alguns detalhes:

F IGURA 31 AUTO PREENCHIMENTO DE FRMULAS

No caso acima, ao digitarmos a letra p, obtemos as funes iniciadas por p bem como qualquer outra fonte de dados cujo nome inicia por p. Obviamente que Plan3 no diz nada sobre o contedo desta planilha, isto , que tipo de dados ns temos dentro dela? Como a planilha , na verdade, uma tabela, o ideal que ela tenha um nome apropriado. Para resolver o problema, simplesmente d um nome a sua planilha (no pasta de trabalho). O nome ser exibido como prefixo durante a insero da frmula. Note que o nome de cada campo aparecer entre colchetes: Excel 2010 PowerPivot
F IGURA 32 NOME DA FONTE DE DADOS COMO PREFIXO NA INSERO DE FRMULAS

29

proibido o uso deste material em sala de aula e para ministrar treinamentos.

30
Colunas calculadas ou medidas DAX?
Quando lidamos com Data Analysis Expressions (DAX), precisamos ter em mente que as funes utilizadas nos clculos podem gerar dois tipos de resultados: Coluna calculada: So as colunas que utilizam funes DAX adicionadas tabela de dados visvel na janela do PowerPivot. Neste caso, o clculo feito individualmente para cada clula da coluna calculada; Medida: criada na janela da tabela dinmica e calculada apenas uma vez.

NOTA Aps a criao de uma frmula, caso o nome de algum campo usado na frmula seja modificado, o resultado ser um erro.

Inserindo uma coluna calculada: determinando o ano da venda


Para este exemplo, utilizaremos dados do Servidor SQL e o banco de dados Northwind. Veja detalhes de conexo ao banco de dados modelo deste curso no tpico: Importando dados do Servidor SQL Selecione a tabela PEDIDOS para este exemplo e siga os passos abaixo: 1. D um duplo-clique sobre o cabealho do campo vazio (por padro, o nome Adicionar Coluna). Digite AnoDoPedido; 2. Clique na barra de frmulas (onde est o fx) e digite a frmula (observar o AutoPreenchimento): =YEAR(Pedidos[DataDoPedido])

Excel 2010 PowerPivot

F IGURA 33 DETERMINANDO O ANO DAS VENDAS

NOTA 1 Clique sobre o fx para exibir a caixa de insero de funes DAX, assim como feito na

janela principal do Excel.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

NOTA 2 No preciso definir o nome do campo antes de inserir uma frmula. Aps a insero da frmula, pressione ENTER e o PowerPivot inserir o campo. Obviamente que o nome ser o padro interno o que pode representar muito pouco em temos inteligibilidade para o usurio final ou at mesmo para voc.

NOTA 3 Todos ns estamos acostumados a usar as setas do teclado para navegar em uma planilha Excel. Se voc est curioso para saber onde se habilita a navegao por seta no PowerPivot... bom, pode esquecer porque no h como navegar desta forma.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

31

32 Categorias de Funes Data Analysis Expressions (DAX)


Assim como as funes internas do Excel as funes que compem a DAX esto categorizadas. Neste bloco discutirei como voc pode utilizar tais funes para resolver inmeros problemas. Os exemplos discutidos aqui so introdutrios e foram escolhidos de acordo com a utilidade real da soluo. Por exemplo, o calculo do ano importante para o agrupando de dados tendo em vista que no possvel o agrupamento de dados em uma tabela dinmica a partir do PowerPivot.

Formatando para um determinado tipo


Quando calculamos o percentual do total no tpico Determinando o percentual, utilizamos a funo FORMAT para determinar que o formato do resultado fosse percentual (utilizando a palavra-chave Percent entre aspas). Esta funo bastante til, pois nos permite formatar os dados diretamente na medida sendo calculada ao invs de formatarmos na tabela dinmica. Por parecer um pequeno detalhe, porm se o formato feito diretamente nas clulas, quando a medida removida e posteriormente colocada na TD, ela perde o formato. Voc pode determinar um formato qualquer (vlido) ou pode utilizar um pr-formato da funo tais como: 1. Currency 2. Percent 3. General Number 4. Yes/No (Digite Yes/No ao invs de somente Yes ou somente No. Exibir No para valores zero e Yes para outros valores) Excel 2010 PowerPivot 5. True/False (mesmo que Yes/No) 6. On/Off 7. General Date 8. Long Date 9. Short Date 10. Long Time 11. Short Time Os formatos acima so internos, mas voc pode criar seus prprios formatos. Utilize a funo TEXTO() do Excel para ver exemplos de como voc pode formatar os valores.

Atualizao de dados
Diferentemente dos dados em uma planilha, os dados em uma tabela dinmica no sero atualizados automaticamente. Voc precisa forar a atualizao dos dados. proibido o uso deste material em sala de aula e para ministrar treinamentos.

Existem vrias formas de fazer isso e a mais fcil o clique direito sobre a tabela dinmica:

F IGURA 34 A TUALIZANDO OS DADOS DA TABELA DINMICA

Caso haja vrias tabelas dinmicas e grficos dinmicos baseados em uma tabela dinmica primria, utilize a opo Atualizar tudo.

F IGURA 35 A TUALIZANDO TODOS OS DADOS DA TABELA DINMICA

Funes de data e hora


Vejamos agora como utilizar as funes de data e hora para efetuar os mais variados clculos usando datas.

As funes YEAR(), MONTH() e DAY()


Para iniciar, vejamos como utilizar estas trs funes: YEAR(): Esta funo a verso em ingls da funo ANO() da planilha. Ela serve para retornar o ano de uma determinada data. Por exemplo, minha data de nascimento 12/11/1972. Utilizando esta funo eu poderia criar a seguinte frmula:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

33

34
YEAR('Funcionrios'[DataDeNascimento])2. Esta frmula retornaria 1972 que o ano de meu nascimento. Poderamos combin-la com outras funes do sistema. Por exemplo: =YEAR(TODAY()) retornar o ano da data atual (neste caso especfico, retornaria 2011, pois o ano em que escrevo este curso. MONTH(): Esta funo a verso em ingls da funo MS() da planilha. Ela serve para retornar o ms de uma determinada data. Por exemplo, minha data de nascimento 12/11/1972. Utilizando esta funo eu poderia criar a seguinte frmula: MONTH('Funcionrios'[DataDeNascimento]). Esta frmula retornaria 11 que o ms de meu nascimento. DAY(): Esta funo a verso em ingls da funo DIA() da planilha. Ela serve para retornar o dia de uma determinada data. Por exemplo, minha data de nascimento 12/11/1972. Utilizando esta funo eu poderia criar a seguinte frmula: DIA('Funcionrios'[DataDeNascimento]). Esta frmula retornaria 12 que o dia de meu nascimento.

A funo DATE()
Esta funo retorna o nmero serial (valor inteiro longo) referente data em questo. Suponha que voc queira contar seis meses a partir de uma data qualquer, digamos, 13/1/2011. Como proceder? Obviamente que somar 180 dias no resolve, pois h meses com menos de trinta dias (fevereiro) e mais de 30 dias (o prprio janeiro e os meses de maro, maio, etc). A soluo somar 6 ao argumento referente ao ms: Excel 2010 PowerPivot =DATE(YEAR('Funcionrios'[DataDeNascimento]), MONTH('Funcionrios'[DataDeNascimento])+6,DAY('Funcionrios'[DataDeNascimento])) Supondo que voc tem menos de 50 anos e queira saber em que ano voc far 50 anos, a lgica a mesma, isto , some 50 ao ano: =DATE(YEAR('Funcionrios'[DataDeNascimento])+50, MONTH('Funcionrios'[DataDeNascimento]),DAY('Funcionrios'[DataDeNascimento])) Nos dois exemplos, utilizei argumentos vindo de uma fonte externa. Porm, voc pode utilizar argumento fixos, isto : =DATE(1972+50,11,12) No caso especfico, teremos a data 50 anos aps meu nascimento. importante ressaltar que neste caso no devemos usar a funes YEAR, MONTH ou DAY. Isso porque o nmero 1972 serial e representa a data 25/05/1905. Em outras palavras, se a formula fosse:

A expresso 'Funcionrios'[DataDeNascimento] refere-se ao campo DataDeNascimento da tabela Funcionarios do banco de dados NorthWind. Veja adiante expresses usando a conexo ao banco de dados.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

=DATE(YEAR(1972)+50,11,12) Ns teramos a data 12/11/1955, isto , 50 anos aps o ano de 1905 representado pela data serial 1972 e no 50 anos depois de 1972 (o ano). Finalmente, estude bem esta funo, pois ela ser muito til na criao de agrupamento de dados.

A funo YEARFRAC()
Esta funo retorna a frao do ano da data sendo avaliada. A frao avaliada baseando-se em um ano com diferentes bases. Por exemplo, a base da contagem poderia ser 30/360, indicando um ano de 12 meses onde cada ms tem 30 dias. Por exemplo, se avaliarmos data inicial como sendo 1/1/2000 e a data final 1/1/2010, sabemos que neste intervalo h 10 anos. O total de dias apenas a data inicial subtrada da data final (neste caso 3653 dias). Se utilizarmos a base real/360 (total de dias realmente apurados dividido por 360 dias de um ano); ento ns temos a frao 10,147222. Por outro lado, se usarmos a base 30/360 ns obteremos 10 anos. A razo para isso que, na verdade, o clculo foi feito em cima de 3600 dias e no de 3653 dias. Ou seja, como se estivssemos calculando a diferena numrica entre 09/11/2009 e 1/1/2010. E 3600/360 igual a 10. Este funo bastante til quando precisamos determinar fraes dentro de um ano, como o caso do clculo do trimestre.

BASE
0 ou omitido 1 2 3 4

BASE DE CONTAGEM DIRIA


USA (NASD) 30/360 Real/real Real/360 Real/365 Europeu 30/360

A funo WEEKNUM()
Esta funo retorna o nmero da semana de uma data qualquer. Por exemplo, o dia 29/05/1960 caiu em qual semana? Primeiramente, vejamos o segundo argumento, tendo em vista que ele diferente da funo de planilha (NMSEMANA): 1: Indica que a semana inicia no domingo (primeiro dia) termina no sbado (stimo dia) 2: indica que a semana inicia na segunda-feira (primeiro dia) e termina no domingo (stimo dia)

Assumindo o valor 1; entao caiu na vigsima-terceira semana do ano. Por outro lado, analisando com o valor 2, a semana foi a vigsima-segunda.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

35

36
Por padro, a funo WEEKNUM usa uma conveno de calendrio na qual a semana contendo 1 de janeiro considerada a primeira semana do ano. Entretanto, o calendrio padro ISO 8601, muito usado na Europa, define a primeira semana como aquela com a maioria de dias (quatro ou mais) que caem no ano novo. Isso significa que nos anos em que h trs dias ou menos na primeira semana de janeiro, a funo WEEKNUM retorna nmeros de semana que diferem da definio ISO 8601.

A funo EMONTH()
Voc j aprendeu como calcular uma data futura utilizando a funo DATE(). Neste caso, se queremos saber a data final dentro de 3 meses, simplesmente somamos 3 ao argumento referente ao ms. Por exemplo: =DATE(2011,1+3,15) Neste caso, teremos o dia 15/4/2011, isto , trs meses aps o ms de janeiro. Obviamente que no h nada de errado com isso quando o objetivo e obter uma data onde os valores de entrada so fixos. Porm, observe o seguinte exemplo: =DATE(YEAR('Funcionrios'[DataDeNascimento]), MONTH('Funcionrios'[DataDeNascimento])+3,DAY('Funcionrios'[DataDeNascime nto])) No caso acima, todos os valores so entrados a partir de um campo do banco de dados. Supondo que o dia da data acima 31/1/2011 o valor final, trs meses depois, ser 1/5/2011. Agora, image o cenrio onde voc quer saber realmente trs meses depois e no trs meses corridos depois (considerando o nmero de dias de cada ms subsequente). Neste caso, estamos interessados no dia 30/4/2011. Neste caso, use: =EMONTH('Funcionrios'[DataDeNascimento],3) Excel 2010 PowerPivot Em muitos casos, o resultado ser o mesmo que o retornado pela funo DATE() conforme mostrado anteriormente, mas h casos especiais, como o exibido acima, onde h diferena entre os dois clculos. NOTA Esta funo retorna o nmero de meses antes e depois de uma data qualquer. Para tanto, use um valor negativo no segundo argumento. Por exemplo, -3 retornaria trs meses antes da data estipulada, isto , 31/10/2010 para data inicial 31/1/2011.

Determinando a idade e tempo de servio do funcionrio


Utilizaremos a tabela de funcionrios da Northwind para determinar a idade e tempo de servio do funcionrio utilizando os campos DataDeNascimento e DataDeContratao. A idade pode ser calcula de uma forma bem simples usando a frmula: =YEAR(TODAY())-YEAR('Funcionrios'[DataDeNascimento])

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Mas existe um porm neste histria. Suponha que a pessoa tenha nascido no dia 1/1/2000. Se hoje 1/1/2010 ela est completando 10 anos e se for 2/1/2010 ela j ter completado 10 anos de idade. At a tudo bem, mas e se a pessoa s faz aniversrio no dia 31/12/2010? Na conta acima, como o ano j 2010, mesmo fazendo 10 anos 1 ano aps o dia de hoje (assumindo 1/1/2010) ele j estar um ano mais velho. A soluo adicionar a seguinte frmula ao final da formula acima como uma soma: +If(date(year(today()),month('Funcionrios'[DataDeNascimento]),day('Funcionrios'[ DataDeNascimento]))>TODAY(),-1,0)

O que a frmula acima faz : Retornar a data de aniversrio da pessoa no ano corrente utilizando a funo DATE(); Os argumentos da funo DATE() so: o o o ANO: O ano aqui extrado a partir da data alimentada a ela pela funo TODAY() [HOJE]; Ms: O ms extrado do campo [DataDeNascimento]; Dia: O dia extrado do campo [DataDeNascimento];

Com a data de aniversrio recomposta para o ano corrente, comparamos com o dia de hoje utilizando a funo TODAY(). Se for maior, retornar -1; caso contrario, retornar 0; Note que quando a data ainda maior do que hoje, precisamos remove 1 anos da diferena entre os anos (ANO_ATUAL menos ANO_NASCIMENTO)

A frmula fica, portanto: =YEAR(TODAY())-YEAR('Funcionrios'[DataDeNascimento]) + If(date(year(today()),month('Funcionrios'[DataDeNascimento]),day('Funcionrios'[D ataDeNascimento]))>TODAY(),-1,0) Excel 2010 PowerPivot

Caso voc no tenha compreendido a explicao acima; para melhor entender os passos, efetue cada clculo separadamente conforme abaixo: DIFERENA ENTRE OS ANOS (idade correta para datas menores que a data atual): =YEAR(TODAY())-YEAR('FUNCIONRIOS'[DATADENASCIMENTO]) DATA DE ANIVERSRIO NO ANO CORRENTE: =DATE(YEAR(TODAY()),MONTH('FUNCIONRIOS'[DATADENASCIMENTO]),DAY('FUNCI ONRIOS'[DATADENASCIMENTO])) A PESSOA AINDA NO ANIVERSARIOU (TRUE indica que ainda no):

=DATE(YEAR(TODAY()),MONTH('FUNCIONRIOS'[DATADENASCIMENTO]),DAY( 'FUNCIONRIOS'[DATADENASCIMENTO]))>TODAY()

37

proibido o uso deste material em sala de aula e para ministrar treinamentos.

38
EXPRESSO LGICA PARA SUBTRAIR UM ANO DA DIFERENA ENTRE OS ANOS

IF(DATE(YEAR(TODAY()),MONTH('FUNCIONRIOS'[DATADENASCIMENTO]),DA Y('FUNCIONRIOS'[DATADENASCIMENTO]))>TODAY(),-1,0)

Feito o clculo acima, determine os anos de servios prestados pelo funcionrio.

Determinando trimestres, semestres, etc


A definio de trimestres bastante utilizada como pontos de observao entre perodos distintos. Por exemplo, como o segundo trimestre de 2010 se compara com igual trimestre de 2009? Em um cenrio como este voc precisar de dois clculos distintos: Clculo do ano Clculo do trimestre

Voc precisar de um campo contendo o ano para efeitos de agrupando, pois o clculo do trimestre apenas retorna o trimestre de uma data qualquer e indiferente em relao ao ano de ocorrncia.

Excel 2010 PowerPivot

proibido o uso deste material em sala de aula e para ministrar treinamentos.

O clculo do ano j foi mostrado, vejamos agora o clculo do trimestre. Observe, primeiramente, a tabela abaixo:
Inicia em Cai em

JAN-MAR 1 2 3 4

ABR-JUN 4 1 2 3

JUL-SET 3 4 1 2

OUT-DEZ 2 3 4 1

JAN-MAR ABR-JUN JUL-SET OUT-DEZ

Na tabela acima, os trimestres na linha representam a data de incio do trimestre ao passo que a coluna indica em qual trimestre ele efetivamente cai. Por exemplo, se o trimestre inicia em 1/1/1900 ento o trimestre OUT-DEZ cai no quarto trimestre (primeira coluna). Por outro lado, se o trimestre OUT-DEZ iniciasse em 1/12/1900 ele seria o primeiro trimestre (ltima coluna) do ano e no o ltimo (conforme mostrado na primeira coluna). Como o objetivo apenas determinar o trimestre, ns continuaremos a utilizar a tabela de funcionrios. Vamos determinar em qual trimestre cada um nasceu. A frmula final apresentada por inteiro abaixo e explicada em seguida: =INT((YEARFRAC(date(1900,4,1), 'Funcionrios'[DataDeNascimento],4 )INT(YEARFRAC(date(1900,4,1),'Funcionrios'[DataDeNascimento],4 )))*4)+1

O que a frmula cima faz: DATE(1900,4,1): A funo DATE usada para retornar o data inicial (primeiro argumento da funo YEARFRAC) de nossa contagem. Voc poderia digitar a data, digamos 1/1/1900. Porm, devido a questes de inverso de data entre sistema americano, a data 4/1/1900 quer dizer 1 de abril de 1900 nos EUA; ento, mais seguro determinar a data inicial usando a funo DATE() a qual retorno o valor serial da data sendo avaliada; YEARFRAC(DATE(1900,4,1), 'FUNCIONRIOS'[DATADENASCIMENTO],4 ): retornar a frao do ano em relao a data inicial (retornada pela funo DATE) e data final (retornada pela data de nascimento do funcionrio). O ltimo argumento da funo (o nmero 4) indica a base. Neste caso, o nmero 4 indica a base 30/360, isto , 12 meses de 30 dias cada. Ele deve estar entre 0 e 4. Valores fora do intervalo retornaro um erro. INT(): Retorna a parte inteira da frao do ano.

Com as explicaes acima, utilize cada parte da frmula para clculo separado para visualizar cada elemento de clculo que compe a frmula final. Depois, junto tude em uma frmula nica. Alm disso, calcule o bimestre, quadrimestre e semestre nos quais os funcionrios nasceram.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

39

40
Determinando o nmero da semana dentro de um ms
Observe a imagem do calendrio abaixo para o ms de fevereiro de 2011:

F IGURA 36 DETERMINANDO O NMERO DA SEMANA DENTRO DO MS

Se considerarmos uma semana iniciando no domingo, ns podemos ver que este ms possui 5 semanas. A primeira iniciando em 30/1/2001 (que inclui os dias 1-5 de fevereiro) e as restantes iniciando em 6, 13, 20 e 27 respectivamente. A primeira coisa que precisamos determinar o nmero da semana atual. Isso feito atravs da seguinte frmula: =WEEKNUM(TODAY(),1) No caso especifico, estou assumindo sempre a data corrente atravs da utilizao da funo TODAY() a qual equivale a funo HOJE() em portugus. Em seguida, determinaremos a primeira semana do ms. Isso feito como segue: Excel 2010 PowerPivot = WEEKNUM(DATE(YEAR(TODAY()),MONTH(TODAY()),1),1) Note que o ultimo argumento da funcao DATE() o nmero 1. Isso indica o primeiro dia do ms atual. Este valor deve ser sempre imvel. Finalmente, subtramos o resultado da segunda frmula da primeira e somamos 1: =WEEKNUM(TODAY(),1)-WEEKNUM(DATE(YEAR(TODAY()),MONTH(TODAY()),1),1)+1 Note que se HOJE (TODAY) o primeiro dia do ms, ento a diferena entre as duas formulas ser zero. Porm, ns estaremos na primeira semana do ms, da a soma de 1 ao resultado da frmula.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Funes de texto
Trabalharemos agora com funes de texto. Estas funes so utilizadas para manipular os mais variados tipos de texto. Por exemplo, voc pode querer extrair algum elemento de um texto ou deseja formata-lo. Neste caso, o uso de funes de texto vem a calhar.

As funes LEFT(), RIGHT() e MID()


Iniciaremos com trs funes bsicas do grupo de funes de texto: LEFT (ESQUERDA), RIGHT (DIREITA) e MID (EXT.TEXTO). Cada uma destas funes tem por objetivo extrair uma poro de um texto qualquer, porm de ngulos diferentes: LEFT: Extrai uma quantidade especfica de caracteres de um texto qualquer iniciando pela esquerda do texto original de entrada; RIGHT: O mesmo que LEFT, mas extrai da direita para a esquerda; MID: Extrai uma quantidade especfica de caracteres de um texto qualquer dado o ponto inicial bem como o ponto final de extrao (comprimento da extrao).

Suponha que voc tenha o cenrio abaixo:

F IGURA 37 CDIGO DO PEDIDO E CLIENTE EM CAMPO NICO

Supondo que o comprimento do cdigo do pedido seja fixo, podemos usar a funcao LEFT para isso:

=LEFT(Pedidos[CodPedCodCliente],5)
O mesmo vale para o cdigo do cliente. Se ele fixo, pode usar a funo RIGHT para extra-lo a partir da direita:

=RIGHT(Pedidos[CodPedCodCliente],5)
Finalmente, se desejamos extrair a partir de um ponto qualquer do texto, podemos utilizar a funo MID:

=MID(Pedidos[CodPedCodCliente],4,5) No caso acima, extramos 2 nmeros e 3 letras do Cdigo composto acima.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

Neste caso, temos o cdigo do pedido bem como o cdigo do cliente em um nico campo. Porm, desejamos separar os dois.

41

42
A funo FORMAT() introduo s medidas DAX
Como vimos anteriormente, o PowerPivot no nos fornece uma forma direta de agrupamento de dados. Se quisermos agrupar por ano, por exemplo, devemos utilizar a funo YEAR() para extrair o ano de uma determinada data para, ento, utilizar o resultado deste campo calculado como fonte de agrupamento. Porm, podemos obter o mesmo resultado utilizando a funo FORMAT(). A vantagem da funo FORMAT() que ela mais flexvel no tipo de resultado. Por exemplo, se voc seja saber quais dias da semana venda mais, basta formatar a data para dia da semana. Inicie acessando o banco de dados Northwind em nosso servidor. Em seguida, importe a tabela de pedidos. Crie um novo campo calculado DiaSemana:

=FORMAT(Pedidos[DataDoPedido],"dddd")
O resultado ser o exibido abaixo:

F IGURA 38 CAMPO CALCULADO PARA FORMATO DO DIA DA SEMANA

Voc aprender agora um pouco sobre medidas, a qual foi mencionada no incio deste tpico. Sob a guia Incio, clique em Tabela Dinmica e adicione uma nova tabela dinmica sua pasta de trabalho (usando uma nova planilha). Excel 2010 PowerPivot Adicione o campo DiaSemana ao Rtulos de Linha e Valores. A tabela dinmica automaticamente calcular a contagem dos dias:

F IGURA 39 A DICIONANDO O CAMPO TABELA DINMICA

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Visualmente ns j podemos determinar que no h uma varincia entre os dias. O nmero total de vendas por dia basicamente o mesmo. De qualquer sorte, vamos criar as medidas para avaliar o que queremos. Primeiramente, criaremos a medido do total (a medida exibida como Total Geral na figura anterior). Siga os passos abaixo: 1. Clique na guia PowerPivot e depois no boto Nova Medida; 2. Entre a medida conforme figura a seguir

F IGURA 40 CRIANDO UMA MEDIDA PARA CLCULO DA CONTAGEM TOTAL

A medida acima tem as seguintes funes (contando de dentro para fora): 1. COUNTA: Conta, agrupando, todos os dias da semana. Por exemplo, segunda-feira aparece 165 vezes. Este valor retornado por esta funo; 2. ALL: remove todos os filtros de agrupamento em COUNTA, deixando livre para que; Excel 2010 PowerPivot 3. A funo CALCULATE conte todos os dias da semana como um todo (830 observaes). Finalmente, crie uma nova medida chamada Pct do Total com a seguinte frmula:

43
F IGURA 41 CRIANDO UMA MEDIDA PARA CLCULO DA CONTAGEM TOTAL

proibido o uso deste material em sala de aula e para ministrar treinamentos.

44
Note que poderamos criar a seguinte frmula: =COUNTA(Pedidos[DiaSemana])/Pedidos[Total] Como dito anteriormente, quando calculamos o total, a contagem neste caso possui um filtro que agrupa por tipo (segunda-feira, tera-feira, etc). Sendo assim, podemos, ao invs de usar a medida criada internamente pelo PowerPivot, criar a nossa prpria medida. Para quem usa a Tabela Dinmica, isso pode parecer um retrocesso tendo em vista que medidas como esta j vinham prontas. bem verdade que poderia deixar tais medidas bsicas prontas para uso. No obstante, a flexibilidade que temos atualmente, de longo, bate qualquer medida interna disponvel na tabela dinmica. Para terminar, a funo FORMAT(), no segundo argumento, tem diversas possibilidades de formatacao, tais como: Hora, minuto e segundos: FORMAT(Data,hh:mm:ss) Somente ms (longo): FORMAT(Data,mmmm) Somente ms (curto): FORMAT(Data,mmm) Somente ms (nmero): FORMAT(Data,mm) Somente ano (longo): FORMAT(Data,yyyy) Somente ano (curto): FORMAT(Data,yy) Somente dia (longo): FORMAT(Data,dddd) Somente dia (curto): FORMAT(Data,ddd) Etc

Nos casos acimas, lido apenas com formatos de data, mas podemos formatar moedas, nmeros, texto, etc. Excel 2010 PowerPivot

A funo TRIM()
Esta funo extremamente til para a limpeza de textos. Por exemplo, poderamos ter vrios espaos em branco os quais precisam ser removidos do texto. Neste caso, utilizamos esta funo para fazer a faxina: =TRIM(texto_a_ser_limpo)

Concluso
Este tpico no apresenta todas as funes disponveis, pois as mesmas podem ser encontradas no sistema de ajuda do PowerPivot. Ao invs de apenas repetirmos cada funo, conforme descrio no sistema de ajuda, apresentaremos o restante das funes dentro de contextos especficos, como foi o caso do exemplo contendo as funes IF(), CALCULATE(), ALL(), etc, que j apareceram em exemplos anteriores.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Filtragem de dados
Este tpico visa cobrir alguns aspectos bsicos da filtragem de dados no PowerPivot. Ns podemos encarar a filtragem como dois passos distintos: Pr-filtro: Neste caso ns estamos interessados na filtragem de dados antes da importao dos dados. Supondo que voc tenha milhares ou milhes de linhas para importar, talvez no precise de todas, mas apenas um subconjunto. Neste caso usamos o pr-filtro para eliminar o que no desejamos para anlise. Ps-filtro: Neste caso, simplesmente importamos do o conjunto de dados e depois filtramos conforme a necessidade seja atravs de segmentao de dados ou no.

Filtro pr-importaco
O pr-filtro, assim como qualquer outro filtro, bastante simples de executar. Inicie abrindo o banco de dados Northwind e escolha a tabela Fornecedores. Em seguida, clique em Visualizar & Filtrar conforme mostra a figura abaixo:

F IGURA 42 FILTRANDO DADOS ANTES DA IMPORTAO 1 PASSO

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

45

46
Na nova janela que abrir: 1. Navegue ate o campo Pas e clique na seta da lista suspensa; 2. Clique em (Selecionar Tudo) para remover a selecao de todos os itens; 3. Selecione Alemanha e Brasil somente; 4. Clique em OK duas vezes e finalmente em Concluir para importar os dados.

F IGURA 43 FILTRANDO DADOS ANTES DA IMPORTAO 2 PASSO

Filtro ps-importao
Excel 2010 PowerPivot Para criar um ps-filtro, os passos sos os mesmos que os anteriores. No que, dependendo do campo selecionado voc ter a opo de filtrar textos, nmeros, etc. Tal opo pode ser vista na figura Figura 43. Clicando sobre a seta da lista suspensa, obteremos a janela exibida na Figura 44 onde podemos clicar sobre Filtro Personalizado para abrir a janela onde inseriremos os critrios do filtro. Tal filtro bastante simples (muito mais simples do que os filtros da tabela dinmica ou tabelas do Excel). to simples que, honestamente, chega a ser um atentado a inteligncia do leitor, tentar explicar tal filtro, deste modo, passarei para filtros menos bvios deixando que o leitor desvende filtros como Igual a... 4, por exemplo.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 44 A CESSANDO FILTROS PERSONALIZADOS

Filtros utilizando coringas: filtrando produtos iniciados por determinados caracteres


Coringas so caracteres especiais utilizados para representar uma sequncia de caracteres. Veja a figura a seguir:

F IGURA 45 U TILIZANDO CORINGAS

No caso acima, estou utilizando um filtro da tabela dinmica onde determino que os dados retornados devem iniciar com Ch e terminar em qualquer coisa (esta qualquer coisa representada pelo asterisco). Infelizmente, o PowerPivot no nos fornece tal capacidade direta de filtro. Mas como ele nos fornece as funces DAX, ns podemos utilizar nossa imaginao para criar tais filtros. Entao, retira-se de um lado, mas ganha-se muito mais de outro. OK, deve dizer que seria mais fcil proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

47

48
como na tabela dinmica, mas vamos nos concentrar no benefcio do exerccio e os aprendizados que teremos com ele. A primeira coisa que precisamos fazer pensar logicamente. Sabemos que nos PCs atuais que usam o sistema binrio, tudo 1 ou 0. Verdadeiro ou falso, etc. Neste contexto, se buscamos por Ch*, sempre que for encontrado algo que inicia com Ch e termina em qualquer coisa, ns temos um valor verdadeiro. Caso contrrio, falso. Sendo assim, nossa frmula lgica seria algo como: 1. Se valor buscado inicia com Ch*; ento 2. Imprima 1 (verdadeiro) 3. Caso contrrio; 4. Imprima 0 (falso) Feito isso, precisamos apenas filtrar o valor 1 e teremos todos os valores iniciados por Ch. Simples assim. Supondo que desejamos encontrar os produtos iniciar por Ch na tabela de produtos do banco de dados Northwind, podemos criar um campo calcula chamado Filtro, contendo a seguinte frmula:

=IF(ISERROR(SEARCH("Ch",Produtos[NomeDoProduto],1)),0,If(SEARCH("Ch", Produtos[NomeDoProduto],1)>1,0,1)) Vejamos o que a formula faz:


1. Funo SEARCH(): busca o valor desejado no campo NomeDoProduto.

Encontrado o valor, ela retorna a posio do caractere dentro da sequncia de caracteres, isto , se estiver no incio retorna 1. Se estiver na posio 5, retorna 5 e assim por diante. Se no encontrar o valor, retornar um erro;
Excel 2010 PowerPivot 2. Funo ISERROR(): verifica se o valor retornado pela funo SEARCH() um

erro, se sim, os caracteres Ch no existem no texto original e deve retornar verdadeiro (indicando que um erro);
3. Funo IF(): Avalia, no primeiro caso, se a funo ISERROR() retornou

verdadeiro. Se sim, retorna zero. Caso contrrio, avalia novamente a funo SEARCH() para saber em que posio est o Ch dentro do texto. Se estiver em uma posio maior do que 1, retornar zero (texto no inicia por Ch). Caso contrrio, inicia por Ch e deve retornar 1.
Como pode ser visto na imagem abaixo, o produto Chai inicia por Ch e recebe o valor igual a 1, assim como o produto Chocolade. Por outro lado, o produto Gumbr Gummibrchen contm ch, mas no inicia por ch e, protanto, recebe o valor zero. Obviamente que voc pode adaptar a frmula e remover a avalio da posio maior do que um. Neste caso, o produto Gumbr Gummibrchen receberia o valor 1. Finalmente, simplesmente filtre para exibir somente os produtos que receberam o valor 1 na avaliao da frmula.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 46 F RMULA PARA SIMULAR UTILIZAO DE CORINGAS

Filtros utilizando coringas: filtrando produtos terminados por determinados caracteres


Da mesma forma que fizemos anteriormente, poderamos, por exemplo, filtrar os itens que determinam com uma determinada letra. Neste caso, poderamos fazer como segue: =IF(ISERROR(SEARCH("i",Produtos[NomeDoProduto],LEN(Produtos[NomeDoProduto] ))),0,1) O que frmula faz: 1. SEARCH(): faz a busca do texto desejado, dentro da sequncia determinada e inicia no comprimento do texto (determinado pela funo LEN()); 2. LEN(): determina o comprimento do texto. a funo NM.CARACT() em portugus na planilha; 3. ISERROR(): mesmo que exemplo anterior 4. IF(): mesmo que exemplo anterior. O resultado, mais uma vez uma coluna calculada contendo zeros e uns. NOTA Um filtro leva ao outro. Assim, se o nmero 1 indica que termina, inicia com, contm, etc, o zero indica o contrario, isto , no termina, no inicia, no contm o valor pesquisado. Sendo assim, para cada filtro executado com 1 ou 0, ns teremos sempre o oposto. Experimente outros filtros tais como permitir que a funo SEARCH() retorne a posio do texto ao invs de 1 ou 0. Excel 2010 PowerPivot

Filtro ps-criao de tabela dinmica: utilizando slicers a DAX


Os dois tipos de filtragem de dados apresentados anteriormente lhe ajudaro a resolver a questo do que deve ser importado para a sua pasta de trabalho. Como o PowerPivot pode importar milhes de linhas, voc pode acabar com uma pasta de trabalho de 200MB para cima. Porm, ainda existe o cenrio onde voc deseja criar um dashboarding de informaes as quais sero filtradas pelo usurio final do produto (ou por voc mesmo, no importa). Veremos agora as diferentes formas de segmentar os dados diretamente na tabela dinmica. proibido o uso deste material em sala de aula e para ministrar treinamentos.

49

50
Segmentando dados por filtro de pgina
NOTA A soluo descrita a seguir no est disponvel diretamente do PowerPivot. Ao invs disso, voc pode passar as informaes para a planilha e criar uma tabela dinmica diretamente da planilha. Iniciarei por um tipo de segmentao pouco conhecido das pessoas, embora o filtro em si seja bastante conhecido: segmentao por filtro de pgina. Para iniciar, criaremos uma tabela dinmica bem simples, tendo em vista que a segmentao que ser ensinada no requer complexidade na anlise de dados, pois ela visa segmentao em si. Crie uma tabela dinmica, a partir dos dados importados da tabela Pedidos do banco de dados Northwind: 1. Com a tabela Pedidos aberta no PowerPivot, sob a guia Inserir selecione Tabela dinmica; 2. Defina a localizao da tabela dinmica como sendo uma nova planilha; 3. Adicione o campo PasDeDestino ao Filtro de Relatrio; 4. Adicione o campo calculado DiaSemana (voc precisa criar este campo. Caso no tenha feito veja a seo sobre funes DAX) ao Rtulo de Linha e Valores conforme exibido na figura a seguir

Excel 2010 PowerPivot

F IGURA 47 CONFIGURAO INICIAL DA TABELA DINMICA

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Obviamente que voc pode selecionar a seta da lista suspensa para o pas de destino e selecionar um pas qualquer para filtr-lo, mas suponhamos que voc queira enviar a planilha para cada diretor regional? Neste caso, filtrar, copia e colar seria muito laborioso. No obstante existe uma forma mais simples: 1. Com a tabela dinmica selecionada, ative a guia Opes; 2. Sob o grupo Tabela Dinmica (primeiro grupo esquerda); 3. Clique no menu Opes e selecione a opo Mostrar pgina do filtro do relatrio. Os dados sero filtrados por cada um dos valores contidos no Filtro de relatrio e colocados em planilhas individuais. Para maiores detalhes, veja o vdeo instrucional em nosso http://www.wordpower.com.br/post/2010/08/05/Como-Segmentar-Dados-no-Excel2010.aspx site:

Filtro por lista personalizada


O filtro por lista personalizada pode ser bastante til quando possumos uma lista que no segue um padro bvio. Por exemplo, se pegarmos os alcanos linerares o nmero de carbono dado pelos prefixos: met (1C), et (2C), prop (3C), etc. Obviamente que colocar tais valores em ordem alfabtica no resolve a questo da ordem do nmero de carbonos presentes. Assim, sabemos que o MET-an-o um hidrocarboneto (indicado pelo sufixo o) de ligao simples (indicado pelo intermedirio an) e possui 1 carbono ao passo que o BUT-an-o possui 4. Em um cenrio como este, ns no podemos simplesmente filtrar (entenda-se por filtrar como sendo ordenar, tendo em vista que o ordenamento um tipo de filtro) pela parte alfabtica. Precisamos de outro mtodo para agrupar pelo nmero de carbonos presentes. Para criar tal filtro, precisaremos fazer uma mgica. Vamos iniciar como nossa tabela de dados a qual deve ter o formato abaixo (o exemplo usa o mnimo de dados, mas pode ser replicado para qualquer quantidade de dados):

F IGURA 48 CONFIGURAO INICIAL DA TABELA DE DADOS

No caso especfico, ns precisamos dos prefixos que sero utilizados na ordenao como um campo da tabela. A coluna D (Lista personalizada) contm os prefixos na ordem que devem aparecer. proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

51

52
O primeiro passo requer a criao da lista personalizada internamente. Para tanto, siga os passos abaixo: 1. Selecione o intervalo $D$2:$D$7; 2. Abras as opes do Excel (Arquivo Opes); 3. Clique sobre Avanado e navegue at encontrar o boto Editar Listas Personalizadas... Clique neste boto; 4. Com a lista selecionada ($D$2:$D$7), clique em Importar, conforme mostra a figura abaixo:

F IGURA 49 CONFIGURAO DE LISTAS PERSONALIZADAS

Excel 2010 PowerPivot

Com a lista pronta, voc deve agora criar uma tabela dinmica usando os dados da tabela principal. Para a tabela dinmica, aps a sua criacao, siga os passos abaixo: 1. Adicione os campos Prefixo e Produto rea de Rtulos de Linha; 2. Adicione o campo Produto rea de Valores; 3. Formate a tabela (guia contextual Design grupo Layout menu Layout de Relatrio opo Mostrar em formato de tabela) Ao seguir os passos acima, sua tabela dinmica ter o formato conforme segue abaixo:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 50 CONFIGURAO INICIAL DA TABELA DINMICA

O passo final requer a ordenao dos dados de acordo com a lista personalizada. Para tanto, siga os passos abaixo: 1. Clique na seta da lista suspensa do campo Prefixo e selecione Mais opes de classificao; 2. Na janela que abrir, selecione a opo Crescente. Como o processo foi iniciado pelo campo Prefixo ele estar selecionado. Caso no esteja, selecione-o da lista suspensa de campos conforme mostrado na Figura 51 a seguir; 3. Clique em Mais opes... 4. Na janela que abrir, remova a seleo do boto Classificar automaticamente sempre que o relatrio for atualizado; 5. Na lista suspensa Ordem de classificao da primeira chave, selecione a sua lista (veja

F IGURA 51 SELECIONANDO AS OPES DE CLASSIFICAO

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

53

54

F IGURA 52 DETERMINANDO A ORDEM DE CLASSIFICAO DA PRIMEIRA CHAVE

Finalmente, oculte a coluna que contm os prefixos. Deste modo, a tabela dinmica final ficar como segue (sem os subtotais de linha):

Excel 2010 PowerPivot

F IGURA 53 TABELA DINMICA ORDENADA POR LISTA PERSONALIZADA

NOTA Caso novos itens sejam inseridos na lista, ela precisar ser atualizada.

Segmentao de dados com slicers


Com o Excel 2010 veio a novidade conhecida como slicers (fatiadores) os quais so utilizados para segmentar dados. Basicamente, o slicer permite, de uma forma mais simples, a filtragem de dados atravs do posicionamento dos mesmos junto tabela dinmica.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Os slicers podem ser inseridos para qualquer campo dentro da tabela dinmica. Para inserir uma segmentao de dados bastante simples e para este exemplo utilizaremos a tabela dinmica do tpico anterior. Siga os passos: 1. Ative a tabela dinmica; 2. V at a guia contextual Opes grupo Classificar e Filtrar e clique em Inserir segmentao de dados 3. Na janela que abrir, selecione o campo ou campos que deseja segmentar.

F IGURA 54 SEGMENTAO DE DADOS

Voc pode agora facilmente filtrar os dados apenas clicando sobre um dos produtos da segmentao. Para limpar o filtro, clique no botao no canto superior direito da janela de segmentao. Por padro, a janela apresenta uma coluna. No obstante, voc pode modificar ainda: 1. Nmero de colunas (sob a guia Opes grupo Botes Colunas); Excel 2010 PowerPivot 2. Estilo de cor; 3. Largura e altura; 4. Visibilidade (acesso o Painel de Seleo sob a guia Opes grupo Organizar). No painel, clique sobre o pequeno olho ao lado do painel de segmentao

F IGURA 55 DETERMINANDO A VISIBILIDADE DA SEGMENTAO DE DADOS

5. Etc

55

proibido o uso deste material em sala de aula e para ministrar treinamentos.

56
DICA Se por alguma razo o seu slicer no estiver filtrando, provvel que ele tenha perdido a conexo com a TD ou GD. Para reconectar o slicer (caso no queira apagar e criar um novo), siga os passos:

1. Selecione o slicer; 2. Na guia Opes grupo Segmentao de Dados clique em Conexo de Tabela Dinmica; 3. Marque a tabela dinmica*da lista e finalize o processo.
* possvel selecionar mltiplas tabelas.

Segmentao de dados com mltiplas tabelas e/ou grficos dinmicos e slicers


Veja o vdeo em nosso canal do YouTube: http://www.youtube.com/watch?v=jPQtPcx_sSE ou em nosso site www.wordpower.com.br DICA Caso voc crie apenas uma tabela dinmica e queira acoplar um grfico dinmico a ela, ao invs de repetir os mesmos campos no grfico, voc pode fazer como segue:

1. 2. 3. 4.

Selecione a tabela dinmica; Acesse o menu contextual Opes; No grupo Ferramentas clique em Grfico dinmico. Escolha o modelo de grfico desejado e finalize o processo.

Excel 2010 PowerPivot

Segmentao por seleo mltipla sem slicer


Uma forma rpida de segmentar os dados em uma tabela dinmica do PowerPivot atravs da mltipla seleo. NOTA Este exemplo utiliza o banco de dados AdventureWorks disponibilizado com este curso.

Neste caso, siga os passos abaixo: 1. Importe as tabelas DimProduct e DimProductCategory; 2. Crie uma Tabela Dinmica utilizando tais tabelas; 3. Adicione os campos EnglishProductCategoryName e EnglishProductName ao rtulo de linha; 4. Utilizando a tecla CTRL, selecione os itens desejados para filtro (veja exemplo na figura abaixo);

proibido o uso deste material em sala de aula e para ministrar treinamentos.

5. Clique com o boto direito do mouse sobre um dos itens selecionados; 6. Aponte para Filtrar e selecione Manter Somente Itens Selecionados;

F IGURA 56 SEGMENTAO POR SELEO

Conforme exibido na figura, voc pode fazer o inverso, isto , filtrar pelos itens no selecionados (Ocultar Itens Selecionados).

Segmentao dados por dimenses de tempo em tabela vinculada: Determinando o Acumulado no Ano
Voc j aprendeu como extrair o ano, ms e dia de uma data qualquer. Neste caso, tudo foi feito dentro da tabela que continha os dados atravs de uma coluna calculada. No obstante, este no o melhor mtodo para lidar com dimenses relacionadas ao tempo. O correto (ou ideal?) utilizar uma dimenso de tempo externa ao contedo em questo e relacionar os dados. Se voc tem experincia com banco de dados relacional, voc ver que isso faz muito sentido tendo em vista que poderemos fazer os mais variados agrupamentos a partir desta relao entre as tabelas. Para este exemplo, utilizaremos o banco de dados teste_northwind em nosso servidor. Inicie importando as tabelas Detalhes do Pedido e Pedidos. Siga os passos abaixo para completar este exemplo: 1. Na tabela pedidos, crie dois campos calculados de nomes AnoDoPedido e MesDoPedido utilizando as funes YEAR e MONTH respectivamente; 2. Copie estas duas colunas e cole em uma planilha Excel e chame-a de DimTime (dimension time) ou outro nome que desejar; 3. Na guia Pgina Inicial, formate os dados para tabela usando um estilo de sua preferncia; 4. Sob a guia Dados grupo Ferramentas de Dados, clique em Remover Ruplicatas. Este passo importante, pois a duplicao de informao ilgica do ponto de vista relacional;

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

57

58
5. Caso queira, ordene os dados por ano e depois por ms. Utilize a ferramenta Filtro, sob a guia Dados, para executar tal tarefa; 6. Sob a guia PowerPivot grupo Dados do Excel, clique em Criar Tabela Vinculada para que os dados sejam carregados para o PowerPivot; 7. Com a tabela carregada, adicione um campo chamado DiaPrimeiro na tabela Pedidos e na tabela importada (chame-a de DimTime como voc fez na planilha). A frmula para a tabela Pedidos :

=DATE(YEAR(Pedidos[Datadopedido]),MONTH(Pedidos[Datadopedido]),1) Modifique para a tabela DimTime. Este campo funcionar como a chaveprimria do relacionamento.
8. Com a tabela Pedidos ativa, acesse a guia Design e clique em Criar Relaes. Determine a relao conforme figura abaixo (voc pode comear da tabela DimTime, mas ser necessrio inverter a ordem sugerida pelo PowerPivot, isto , a tabela DimTime ser sempre a Tabela de Pesquisa Relacionada independentemente de onde voc iniciar.

Excel 2010 PowerPivot

F IGURA 57 RELACIONANDO AS TABELAS

Vamos supor que voc queira saber o Acumulado do Ano. Neste caso, podemos criar nossa tabela dinmica e gerar uma medida, digamos, para o campo Frete. Para tanto, siga os passos: 1. Crie uma tabela dinmica a partir do PowerPivot; 2. Na guia PowerPivot (no Excel), clique em Nova Medida 3. Chame a medida de FreteAcumuladoNoAno e utilize a frmula:
=CALCULATE(SUM(Pedidos[Frete]), DATESYTD(DimTime[DiaPrimeiro]))

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 58 CONFIGURANDO A MEDIDA

Note que a funo CALCULATE requer uma expresso (determinada pela funo SUM) e filtros. Neste caso, o filtro determinado pela funo DATEYTD (Date Year-to-date ou Data para Acumulado no Ano). Observe a figura a seguir:

F IGURA 59 S OMA PARA FRETE VS FRETE A CUMULADO NO ANO

A mesma lgica vale para clculo de Lucro Acumulado no Ano, por exemplo. NOTA Para benefcio do exemplo, utilizo um intervalo de data quebrada (no contnua). Porm, quando criamos dimenses de datas o correto manter uma continuidade nos dados MESMO que na tabela que contm o lado muitos do relacionamento no possua a data. Por exemplo, pode ser que a tabela de Pedido no tenha registro algum no dia 1.1.2001; porem, a dimenso de tempo (datas) teria tal data.

Lucro Acumulado no Ano vs Lucro Acumulado no Ano Anterior


muito comum ouvirmos ou lermos nos jornais que a inflao foi x% inferior/superior ao mesmo perodo no ano anterior. Em ingls, ns temos o termo Business Intelligence. O mesmo se aplica quando trabalhamos como datas, isto , ns temos o Time Intelligence. Neste caso, desejamos utilizar o nosso

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

No caso especifico, com o frete acumulado no ano, temos o frete do perodo entre 1/janeiro/1998 (ltima data no banco de dados Northwind) at a data de hoje. Supondo que houvesse dados a partir de 1/1/2011; ento, a soma seria entre esta data e hoje.

59

60
conhecimento sobre os aspectos relacionados s datas para encontrarmos respostas aos mais variados questionamentos. Neste exemplo, ns utilizaremos o mesmo conjunto de dados do exemplo anterior. Note que a tabela Pedidos e DetalhesDoPedido j est relacionados, pois o PowerPivot capaz de reconhecer os campos comuns e relacion-los (embora voc possa gerenciar tais relacionamentos acessando a guia Design Gerenciar Relacionamentos). A primeira coisa que voc precisa fazer determinar a ltima data na sua srie de dados. Isso necessrio porque voc pode estar avaliando um ano quebrado. Em outras palavras, se hoje 15/2/2011 ao Acumulado no Ano equivale ao perodo 1/1/2011 a 15/2/2011. Porm, ao comparar com o ano anterior voc obter uma diferena entre os perodos, tendo em vista que no so os mesmos. Este um aspecto importante deste tipo de anlise tendo em vista que voc no est visualizando os dados, voc est dimensionando os dados virtualmente e precisa compreender o que ocorre por trs da cortina. Dito isso, vamos ao primeiro clculo o qual determinar a ltima data (ele ser usado no filtro, portanto ele apenas serve como guia para voc compreender melhor os clculos finais):
=LASTDATE(DATEADD(DimTime[DiaPrimeiro],0,MONTH))

Como o nmero de intervalos zero, estamos falando do tempo corrente na srie de dados, isto , o ltimo valor de data vlida na srie de dados. Note que se o segundo argumento zero (0) como na frmula acima, se o modificarmos para -12 obtermos o intervalo de um ano antes. Neste contexto, se mudamos a funo para FIRSTDATE() mantendo os mesmo argumentos, isto , -12 no segundo argumento, ns temos o intervalo de dois anos antes. Em outras palavras, acabamos de construir dois sintervalos: Acumulado no Ano e Acumulado no Ano Anterior. Sendo assim, o acumulado no ano dado por: Excel 2010 PowerPivot
CALCULATE(SUM('Detalhes do Pedido'[Total]), DATESBETWEEN(DimTime[DiaPrimeiro], LASTDATE(DATEADD(DimTime[DiaPrimeiro] ,-12,MONTH)), LASTDATE(DATEADD(Pedidos[DiaPrimeiro] ,0,MONTH)) ))

Note que uso a funo LASTDATE como filtro duas vezes, sendo que um argumento -12 e o outro zero (0), isso porque LASTDATE -12 um ano antes de hoje. Note tambm que o intervalo inclusivo, isto , ele inclui o perodo inicial, pois o argumento zero. Neste caso, voc tem duas opes: 1) incluir o ltimo perodo atual (mantendo o argumento como sendo zero) e remover o primeiro perodo (trocando -12 por -11) ou 2) manter o argumento -12 e trocar o argumento zero (0) por -1. Assim a frmula ficaria (incluindo o ms atual):
=CALCULATE(sum('Detalhes do Pedido'[Total]), DATESBETWEEN(DimTime[DiaPrimeiro], LASTDATE(DATEADD(DimTime[DiaPrimeiro] ,-11,MONTH)), LASTDATE(DATEADD(Pedidos[DiaPrimeiro] ,0,MONTH)) ))

Ou ficar como (removendo o ms atual):

proibido o uso deste material em sala de aula e para ministrar treinamentos.

=CALCULATE(sum('Detalhes do Pedido'[Total]), DATESBETWEEN(DimTime[DiaPrimeiro], LASTDATE(DATEADD(DimTime[DiaPrimeiro] ,-12,MONTH)), LASTDATE(DATEADD(Pedidos[DiaPrimeiro] ,-1,MONTH)) ))

F IGURA 60 A CUMULADO NO ANO VS A CUMULADO NO ANO A NTERIOR

A figura acima mostra, de forma mais clara, o problema encontrado. Como a venda acumulada no ano inclusiva ela maior do que deveria ser, resultado em uma diferena maior para o ano anterior, isto , no clculo DAX ns obtivemos R$486.699,49 (intervalo correto) ao passo que a diferena em o total e o Acumulado para o ano R$429.876,01 (inclui um perodo ms a mais). Isso corrigido conforme explicado anteriormente. Finalmente, voc pode adicionar um slicer para facilitar o filtro de tais medidas, tendo em vista que ao selecionar o ano em um slicer ele buscar os dados de acordo com a medida inserida na tabela dinmica.

F IGURA 61 U TILIZANDO SLICER PARA FILTRAR O A CUMULADO NO A NO

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

61

62
A rea em marrom representa o Acumulado no Ano ao passo que a rea em azul o Acumulado no ano anterior. NO que a frmula usada no ano atual foi ajustada para ser de janeiro a dezembro e no de janeiro a janeiro. Sendo assim, ela fica:
=CALCULATE(sum('Detalhes do Pedido'[Total]), DATESBETWEEN(DimTime[DiaPrimeiro], LASTDATE(DATEADD(DimTime[DiaPrimeiro] ,-11,MONTH)), LASTDATE(DATEADD(Pedidos[DiaPrimeiro] ,0,MONTH)) ))

Excel 2010 PowerPivot

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Medidas DAX complexas


Nos ltimos exemplos do tpico anterior voc teve o prazer de ver o grande potencial das medidas DAX em relao s antigas medidas internas da tabela dinmica. O potencial basicamente infinito tendo em vista que depender muito mais de sua imaginao na elaborao de perguntas e consequentes respostas atravs de frmulas DAX. Neste grande bloco, discutirei mais tais medidas. O nvel de complexidade no se refere complexidade da frmula em si, mas dificuldade de elaborao da frmula devido ao desconhecimento das funes e argumentos das mesmas.

Pensando em agregado
Talvez a maior dificuldade da anlise de dados esteja no no conhecimento da base de dados. Transposta esta primeira barreira vem a questo da anlise em si: como obter s respostas aos meus questionamentos? Quando lidamos com banco de dados ns queremos agregar informao objetivando a comparao. Isso difere da forma como trabalhamos no Excel (excetuando quando trabalhamos com tabelas ou funes de banco de dados), pois no Excel ns referenciamos clulas. Por exemplo: =SOMA(A1:A10) No caso do PowerPivot isso irrelevante, pois ns lidamos com a coluna (campo). Sendo assim, ns teramos: =SUM(NomeDaTabela[NomeDoCampo]) Aparentemente, no h diferena. Supondo que o banco de dados tenha 10 registros, ento ambos retornariam a mesma soma se ambas possuem os mesmos dados. Isso verdade desde que voc esteja agregando TODOS os dados. Excel 2010 PowerPivot Mas suponhamos que voc queira agrupar os dados a partir do quinto registro? No primeiro caso, voc apenas muda a referncia das clulas. Ou faz duas somas de dois intervalos distintos e posteriormente calcula a diferena. Agora, pense no segundo caso. Se voc obtm o clculo a partir do quinto registro (aps, digamos, determinar a sua localizao atravs de uma chave-primria) at o final, tudo bem, temos aqui o clculo agregado do intervalo. Porm, se voc tiver um agrupamento de dados em sua tabela dinmica o mtodo quebra por a TD efetuar o agrupando baseando-se em sua frmula, sendo assim, se a conta fosse a partir de maro (at o final do ano) excluindo os dois primeiros meses do ano, o valor a partir de maro incluir os dois primeiros meses do ano em um acumulado no ano. Talvez seja difcil visualizar o que foi dito, mas nos exemplos que seguiro voc ter oportunidade de conferir o que foi dito e colocar no contexto de cada clculo

Cumulativo de Acumulados no Ano


O ttulo pode parecer confuso, mas imagem o seguinte cenrio:

63

proibido o uso deste material em sala de aula e para ministrar treinamentos.

64
1. Voc quer saber o total acumulado (assumindo o banco de dados Northwind) para os anos de 1996, 1997 e 1998 separadamente; 2. Na coluna ao lado, voc quer o acumulado de 1996 na linha de 1996, mas na linha de 1997, voc deseja o acumulado destes dois anos (mantendo o total para 1997 ao lado); 3. Em 1998 voc quer o acumulado dos dois anos anteriores mais o ano atual. Basicamente, este um cenrio que vemos em extratos bancrios onde em uma coluna temos o lanamento individual e na coluna saldo nos temos o acumulado de cada lanamento individual. Veja figura abaixo:

F IGURA 62 CUMULATIVOS DE A CUMULADOS NO A NO

Para 1996, temos R$ 226 mil, para 1997 ns temos R$ 658 mil. O acumulado entre os dois anos R$ 884 mil e assim por diante. Excel 2010 PowerPivot A frmula, utilizando os mesmos dados do exemplo anterior :
=CALCULATE(SUM('Detalhes do Pedido'[Total]), DATESBETWEEN(DimTime[DiaPrimeiro], FIRSTDATE(ALL(DimTime[DiaPrimeiro])), LASTDATE(DimTime[DiaPrimeiro]) ))

A frmula efetua o clculo como segue: 1. Calcula a soma do Total para as datas entre; 2. Data Inicial; 3. Todas (ALL) datas iniciais, at; 4. A data final determinada pelo filtro. NOTA A incluso de todas as datas implica que se o filtro for aplicado no perodo 1997-1998, a linha referente a 1997 incluir todos os perodos anteriores a este ano tambm.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Determinando o valor mdio por pedido, ms e ano


Neste exemplo, voc aprender como calcular a mdia diria por pedido. Utilizaremos o banco de dados Northwind. Siga os passos: 1. Adicione o campo DataDoPedido ao Rtulo de Linha; 2. Abra a caixa de nova medida e chame a nova medida de Mdia por Pedido; 3. Insira a frmula: =SUM('Detalhes do Pedido'[Total])/ COUNTA('Pedidos'[DataDoPedido]) Observe que no utilizamos a funo COUNT porque, na verdade, estamos contando os valores e no os nmeros. A funo COUNTA equivalente a funo CONT.VALORES do Excel. Supondo que voc queira determinar a mdia mensal, voc poderia adaptar a frmula acima como segue: =SUM('Detalhes do Pedido'[Total])/ COUNTA(DimTime[MesDoPedido]) Note que conto o MesDoPedido porque para o ano de 1996 e 1998 ns no temos todos os meses. Neste caso, precisamos determinar para quantos meses temos dados e efetuar esta mdia. Caso contrrio, a mdia para estes anos seria diluda, criando um vis em relao ao ano de 1997. Note tambm que utilizar a opo MDIA (funo AVERAGE) para agregar os dados e tirar a mdia pode no ser o que voc deseja exatamente por diluir os dados. A funo AVERAGE tira a mdia de TODOS os valores observados e no dos dados onde o filtro foi aplicado. Veja imagem a seguir:

F IGURA 63 MDIA VIA FRMULA PRPRIA E VIA FUNO AVERAGE (LTIMA COLUNA )

Okay, e se voc deseja saber a mdia por ano? Observe a figura a seguir:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

65

66

F IGURA 64 MDIA ANUAL

Obviamente que se filtro por 1996, a mdia para o ano R$226 mil. Mas quando exibimos os trs anos, a mdia R$451 mil. Aplica a funo AVERAGE no resolver o problema, conforme explicado anteriormente. Ns obteramos o resultado a seguir:

F IGURA 65 MDIA ANUAL UTILIZANDO A FUNO AVERAGE()

A soluo neste caso precisamos recorrer a funo ALL para remover os filtros aplicados e determinar que os anos, dentro da dimenso tempo (DimTime) so includos no denominador final:
=CALCULATE(SUM('Detalhes do Pedido'[Total])/ COUNTROWS(DISTINCT(DimTime[AnoDoPedido])),ALL(DimTime[AnoDoPedido]))

Excel 2010 PowerPivot

Note que utilizo a funo DISTINCT para determinar as linhas (registros) nicas na contagem da coluna.

F IGURA 66 MDIA ANUAL FINAL

Determinando a mdia acumulada entre perodos (anos)


Um cenrio que engloba os dois ltimos exemplos o seguinte: qual a mdia entre 1996-1997 e de 1996 a 1998? A resposta ltima pergunta, ns j sabemos: R$451 mil. Porm, como criar uma frmula que seja capaz de criar esta mdia cumulativa?

proibido o uso deste material em sala de aula e para ministrar treinamentos.

A resposta data abaixo:


=CALCULATE(SUM('Detalhes do Pedido'[Total])/ COUNTROWS(DISTINCT(DimTime[AnoDoPedido])), DATESBETWEEN(DimTime[DiaPrimeiro], FIRSTDATE(all(DimTime[DiaPrimeiro])), LASTDATE(DimTime[DiaPrimeiro]) ))

Note que determinamos os perodos sendo acumulados da mesmo forma que fizemos com o acumulado para os anos anteriores e a mdia calculada para cada intervalo. Por exemplo, em 1996 a mdia R$226 mil, pois temos apenas 1 ano. J em 1997 a mdia R$442 mil, pois temos (R$ 226 mil + R$ 658 mil)/2. E finalmente temos os trs anos (R$226 mil + R$658 +R$470)/3 que igual a R$451 mil conforme visto no tpico anterior:

F IGURA 67 MDIA ACUMULADA ENTRE PERODOS (ANOS )

Determinando o percentual do total


Pegando o tpico anterior como modelo, como podemos determinar o percentual de cada ano em relao ao total?
=FORMAT(SUM('Detalhes do Pedido'[Total])/ CALCULATE(SUM('Detalhes do Pedido'[Total]), ALL('Detalhes do Pedido')),"Percent")

Uma vez que a medida seja aplicada na tabela dinmica, ns veremos o resultado no figura a seguir:

F IGURA 68 DETERMINANDO O PERCENTUAL DO TOTAL POR MEDIDA

Um problema com este mtodo que, ao filtrarmos os dados, a funo ALL(), aninhada na funo CALCULATE(), remove todos os filtros. Isso implica que quando um filtro aplicado, o percentual ser realmente sobre o total e nunca pelo total geral do filtro:

F IGURA 69 PERCENTUAL DO TOTAL POR MEDIDA COM FILTRO

Lembre-se que aqui estamos lidando com medidas e, como tais, os resultados so agregados de algum campo. Para resolver o problema, siga os passos: 1. Clique com o boto sobre o campo que possui a soma do total; proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

67

68
2. Aponte para Mostrar Valores como % do Total Geral

F IGURA 70 PERCENTUAL DO TOTAL POR OPO INTERNA DO EXCEL

Determinando a importncia de um item pelo ndice


NOTA Este exemplo utiliza o banco de dados AdventureWorks disponibilizado com este curso.

O ndice serve para fazer uma comparao relativa entre os itens nos rtulos de linha e coluna. O clculo efetuado pelo Excel para gerar o ndice o seguinte;

ndice

Valor _ Intersero * Total _ Geral Total _ Coluna * Total _ Linha

Supondo que ns tenhamos os seguintes dados dispostos: Excel 2010 PowerPivot

F IGURA 71 TABULAO CRUZADA POR PAS E CATEGORIA : SOMA DO TOTAL

A pergunta que podemos fazer a seguinte: qual a importncia das vendas da categoria Bikes para Austrlia em relao, digamos aos Estados Unidos? Olhando nos dados acima, vemos que as vendas totais so similares, mas no podemos determinar a importncia relativa de imediato. Para exibir como ndice, siga os passos: 1. Clique-direito sobre a rea de dados; 2. Aponte para Mostrar Valores como ndice proibido o uso deste material em sala de aula e para ministrar treinamentos.

O resultado ser:

F IGURA 72 TABULAO CRUZADA POR PAS E CATEGORIA : NDICE

Neste caso especfico, no h diferena em importncia para esta categoria para ambos os pases. Porm, no caso do Canad a categoria Accessories tem mais do que o dobro da importncia para a Frana. Olhando ao longo da linha, notamos que a categoria Clothing a mais importante para o Canad. Voltando categoria Accessories vemos que, na verdade, a importncia para o Canad muito mais importante, relativamente falando, do que para outros pases. Obviamente que esta uma anlise preliminar. Para uma anlise mais detalhada, adicione os campos: 1. StateProvinceName 2. City 3. Modifique a visualizao para % do Total de Colunas Pai 4. Expanda Canada

F IGURA 73 TABULAO CRUZADA POR PAS E CATEGORIA : PERCENTUAL

Embora seja verdade que Accessories, relativamente falando, seja mais importante para o Canad, tambm verdade que Ontrio tem um peso enorme o que cria um vis nos dados. Voc pode continuar adicionando dados nveis para avaliar a razo para o peso ser 100%.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

69

70
Agrupando pases em continentes
Se no h um tipo especifico de agrupamento em seus dados, voc pode cria-lo atravs de uma nova dimenso de dados. J criamos uma dimenso extra para tempo. Neste caso agora, ns criamos uma dimenso para continentes e utilizaremos o nome do pas como a chave-primria. Inicie criando uma tabela em uma planilha qualquer conforme abaixo:

F IGURA 74 DIMENSO PARA PAS - CONTINENTE

Note que utilize como chave-primria o campo EnglishCountryRegionName. A razo para isso que a dimenso DimGeography possui este campo e, portanto, podemos criar uma relacionamento entre ambos:

Excel 2010 PowerPivot

F IGURA 75 CRIANDO RELACIONAMENTO ENTRE AS DIMENSES : D IMGEOGRAPHY E DIMC ONTINENTES

O prximo passo atualizar a janela Lista de Campos. Via de regra, se a mesma j estiver ativa na planilha voc ser avisado da necessidade de atualizao. Com as dimenses relacionadas, voc poder fazer qualquer anlise de dados utilizando a hierarquia desta relao:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 76 A NLISE FINAL POR CONTINENTE

Mdia mvel
NOTA Este exemplo utiliza o banco de dados AdventureWorks disponibilizado com este curso.

J calculamos a mdia entre perodos distintos, mas aquela mdia no a mvel. A mdia mvel, em sua forma mais simples, calculada adicionando-se os valores para um nmero de perodos e, no final, divide-se pelo nmero de perodos. Observe a figura abaixo:

F IGURA 77 MDIA MVEL

A mdia mvel uma forma de alisamento dos dados. Nos dados originais ns temos picos e vales acentuados, j na mdia mvel isso no ocorre. No exemplo da imagem o perodo igual a 3 e a frmula, colocada a partir de B4, =MDIA(A2:A4). Feitos isso, arraste a frmula at B10. Outra forma de visualizar isso criar o grfico com as observaes originais e, depois, com um clique-direito sobre a linha escolha a opo Adicionar Linha de Tendncia. Na opo de mdia mvel, escolha o nmero de perodos e clique OK.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

71

72
Com as explicaes dados, como podemos transpor isso para um modelo PowerPivot? Ns j utilizamos a funo DATEADD para subtrair um intervalo. Para sermos mais especfico, ns utilizamos no contexto de meses conforme abaixo: DATEADD(DimTime[DiaPrimeiro] ,-12,MONTH) Esta funo aceita, como ltimo argumento, a palavra-chave DAY, MONTH ou YEAR. O segundo argumento o valor a ser adicionado. Se ele negativo, removemos o respectivo nmero de dias, meses ou ano da data original: DATEADD(DimTime[DiaPrimeiro] ,-2,DAY) No caso acima, estamos movendo a data para dois dias atrs incluindo o dia de hoja. Como isso em mente, ns podemos calcular a mdia mvel como: =CALCULATE( SUM(FactInternetSales[SalesAmount]), DATESBETWEEN( DimDate[FullDateAlternateKey], FIRSTDATE(DATEADD(DimDate[FullDateAlternateKey],-2,DAY)), LASTDATE(DimDate[FullDateAlternateKey])) )/3 Como estamos interessados em trs perodos, dividimos a soma por trs.

Excel 2010 PowerPivot

F IGURA 78 COMPARANDO A MDIA MVEL DO CLCULO DAX E MANUAL

Como j foi dito neste curso, voc precisa conhecer os seus dados para evitar problemas. Note na figura anterior que o clculo manual quebra a partir do dia 15. Isso ocorre porque h um problema de continuidade nas datas. Quando criamos uma dimenso extra para guardar as datas, o ideal que no tenhamos descontinuidades nas mesmas. Porm, note o que ocorre no exemplo acima: 1. No clculo DAX, como 16/08/2001 no existe na base de dados, o clculo ser feito sobre a soma dos dias 14 e 15/08/2001 dividida por trs. A data 16/8/2001 existe na dimenso de tempo; 2. No clculo manual, isso ignorado, pois estamos lidando no nvel da clula e o clculo feito pelo deslocamento de clula e no pelo deslocamento de data.

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Trabalhando com grupos: introduzindo MDX


NOTA Este exemplo utiliza o banco de dados AdventureWorks disponibilizado com este curso.

MDX ou MultiDimensional eXpressions utilizado para facilitar a vida do usurio final. A ideia que conjuntos sejam preparados de antemo para uso direto pelo usurio final sem a necessidade da aplicao de filtros, slicers (segmentao), etc. Por exemplo, ns poderamos ter os nomes das categorias dos produtos nos rtulos de linha. No obstante, talvez, voc queira exibir apenas parte das categorias. Ou voc precisa segmentar por pas para que os dados sejam enviados para cada Business Unit. Assim, o usurio final veria apenas o que lhe interessa. Em exemplo anterior, ns agrupamos os dados por continente. Poderamos fazer algo similar utilizando conjuntos MDX. Inicie com uma tabela dinmica que contenha os nomes dos pases e o total para as vendas:

F IGURA 79 CONFIGURAO INICIAL PARA CRIAO DO CONJUNTO

Para criar o conjunto, siga os passos: Excel 2010 PowerPivot 1. Com a tabela dinmica selecionada, clique na guia Opes; 2. Sob o grupo Clculos Campos, Itens e Conjuntos e selecione o item Criar Conjunto de Acordo com Itens da Linha (veja figura a seguir). No caso especfico, ns trabalharemos com os itens de linha, mas poderia ser itens de coluna, no importa.

73

proibido o uso deste material em sala de aula e para ministrar treinamentos.

74

F IGURA 80 CONFIGURAO INICIAL PARA CRIAO DO CONJUNTO

Uma nova janela se abrir conforme mostra abaixo:

Excel 2010 PowerPivot

F IGURA 81 DEFINIO DOS ITENS QUE PERTENCERO AO CONJUNTO

Remova os pases no pertencentes Amrica do Norte e nomeie o conjunto. Voc pode editar a construcao MDX, porm, para uma analise mais simples no necessrio. Clique em OK para terminar. O resultado exibido na figura a seguir:

proibido o uso deste material em sala de aula e para ministrar treinamentos.

F IGURA 82 RESULTADO FINAL DO CONJUNTO ADICIONADO TD

O problema claro nesta tabela dinamica que o total inclui os pases que no pertencem ao conjunto. Isso ocorre porque, por padrao, a TD configurada para exibir os itens filtrados. Para resolver o problema, siga os passos abaixo: 1. Com a TD selecionada, clique direito sobre ela e selecione Opes da tabela dinmica 2. Acesse a guia Totais e Filtros; 3. Sob o grupo Filtros, desmarque o opcao Incluir itens filtrados nos totais do conjunto

F IGURA 83 T OTAL GERAL CORRIGIDO PARA O CONJUNTO

proibido o uso deste material em sala de aula e para ministrar treinamentos.

Excel 2010 PowerPivot

Como os conjuntos representam exatamente o conjunto de informaes desejadas, ele d um excelente controle sobre os dados a serem apresentados e evitam erros por parte de quem consumir a anlise dos dados.

75