0% acharam este documento útil (0 voto)
167 visualizações244 páginas

M Is For (DATA) Monkey

Enviado por

igbnnc
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
167 visualizações244 páginas

M Is For (DATA) Monkey

Enviado por

igbnnc
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 244

na contra-capa - Página intencionalmente em branco

de

Ken Puls & Miguel


Escobar

Santo Macro! Livros PO Box


541731 Merritt Island, FL
32953
M é para (dados) do macaco
© 2016 Cócegas Keys, Inc.
Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida ou transmitida por qualquer forma ou por qualquer meio, eletrônico
ou mecânico, incluindo fotocópia, gravação ou por TEM qualquer recuperação de informações ou armazenamento SYS sem a permissão do editor.
Todos os esforços foram feitos para tornar este livro tão completo e preciso quanto possível, mas nenhuma garantia ou adequação está implícita. A
informação é fornecida “tal como está”. Os autores e o editor tem nem responsabilidade nem responsabilidade de qualquer pessoa ou entidade
com O respeito a qualquer perda ou danos decorrentes da informação contida neste livro. Autores: Ken Puls e Miguel Escobar formato: Jill abelha

Edição de Texto: Kitty Wilson Editor

Técnico: Roger Govier

Cover Design: Shannon Mattiza 6'4 Productions indexação:

Nellie Jay

Ape Ilustrações: Walter Agnew Moore Ilustração

da capa: Irdan Teras

Publicado por: Macro Santo! Livros, PO Box 541731, Merritt Island FL 32953, EUA Distribuído por:

Publishers Grupo Independente, Chicago, IL Primeira impressão: outubro de 2015

ISBN: 978-1-61547-034-1 Print, 978-1-61547-223-9 PDF, 978-1-61547-345-8 ePub, Mobi 978-1-61547-034-1 LCCN: 2015940635

ii
iii

Índice
Prefácio Como Poder consulta mudou nossas vidas ........................................... ....................................... v Capítulo 0 Introdução:

A Nova Revolução ... .................................................. ..................................... 1

Capítulo 1 Importando Dados básicos ............................................. .................................................. .......... 11

Capítulo 2 Padrões Overriding Poder da consulta ............................................ .......................................... 19

Capítulo 3 Operações Anexar básicas ............................................. .................................................. ... 27

Capítulo 4 importação de todos os arquivos em uma pasta .......................................... .................................................. 33

Capítulo 5 agregando planilhas do Excel ............................................. .............................................. 43

Capítulo 6 Unpivoting Dados .............................................. .................................................. ................ 51

Capítulo 7 importar texto Nondelimited Arquivos ............................................ ......................................... 57

Capítulo 8 importar a partir de bancos de dados ............................................. .................................................. ..65

Capítulo 9 Tabelas fusão e consultas ............................................ .................................................. 79

Capítulo 10 Consulta Carregando Destinos ............................................. ................................................ 87

Capítulo 11 Tipos Definição de dados ............................................. .................................................. .......... 97

Capítulo 12 Importação de dados Web ............................................. .................................................. ....... 103

Capítulo 13 Carregando dados do Exchange ............................................ ............................................. 111

Capítulo 14 Agrupamento e resumindo ............................................. .............................................. 117

Capítulo 15 Transposição e Unpivoting Dados Complexo ........................................... ......................... 123

Capítulo 16 Automatizando Refrescante .............................................. .................................................. ..133

Capítulo 17 Poder Consulta fórmulas ............................................. .................................................. ... 139

Capítulo 18 lógica condicional em Power consulta ........................................... ....................................... 153

Capítulo 19 Poder consultar objetos ............................................. .................................................. ..... 157

Capítulo 20 Entendendo a M Idioma ............................................ ......................................... 173

Capítulo 21 Criando funções personalizadas ............................................. ............................................... 189

Capítulo 22 Avançado condicional Logic ............................................. .............................................. 197

Capítulo 23 Tabelas Dinâmica de Parâmetros ............................................. ............................................... 209

Capítulo 24 Tabelas Calendário dinâmicos ............................................. .................................................. 215

Capítulo 25 Organização consulta .............................................. .................................................. ....... 221

Índice ................................................. .................................................. ............................................ 227


iv M é para (dados) do macaco
Prefácio Como Poder consulta mudou nossas vidas v

Prefácio Como Poder consulta mudou nossas vidas

A história de Ken: “Coffee & Power Query”


É o nome na reunião em meu calendário do Outlook de volta em Novembro de 2013. Foi durante um dos Microsoft MVP cimeiras, o
produto tinha recentemente teve seu nome mudado de dados Explorer, e eu estava reunido com Miguel Llopis e Faisal Mohamood do
equipe de consulta Power over café para falar sobre o bom eo mau da ferramenta do ponto de vista um usuários do Excel.

Nessa conversa, eu disse a ambos que Power consulta foi ótimo, mas foi um substituto ruim para SQL Serviços Management Studio. Lembro-me
que parte da conversa. Eu estava trabalhando com SSMS e Energia Consulta muito na época, e estava lutando com o facto de poder Consulta fez
algumas das mesmas tarefas, mas não todos. Eu estava frustrado, como eu estava lutando com a ferramenta, tentando fazê-lo se comportam da
mesma como SSMS, mas ele simplesmente não estava fazendo isso.

O que aconteceu depois eu coloquei as minhas preocupações capotou minhas queixas sobre a sua cabeça. Estou parafraseando da minha memória, mas a
resposta foi algo como isto:

“Ken, esta ferramenta não é um substituto para SSMS. Nós construímos isso por pessoas Excel ... nossa intenção é que eles nunca precisar usar ou aprender SQL
em tudo “.

Para qualquer um que me conhece bem, eles sabem que eu estou muito raramente deixou sem palavras, mas isso foi apenas o suficiente para fazê-lo. Essa
declaração perturbar o equilíbrio do meu mundo.

Entenda que eu não sou um profissional normal de Excel. Sei SQL suficiente para ser perigoso, estou extremamente realizado com VBA, e ter
conhecimento de trabalho de VB.NET, C #, XML e algumas outras línguas. E enquanto eu amo nologia e desafios tec-, a verdadeira razão que eu sei tantas
línguas como eu faço hoje é que eu me ensinou por necessidade. Normalmente as minhas necessidades foram complicadas, e que envolveu uma viagem
dolorosa de saltar para o fundo do poço com uma abordagem de “nadar ou afundar”.

No pro Excel deve precisar de trabalhar com SSMS a fim de obter os dados necessários. Mas anos de trabalho com dados e lutando assunto após
assunto me deixou assumindo que o Poder consulta era um Excel focada substituto para essa ferramenta. Ele nunca me ocorreu, de alguma forma,
que estava sendo projetado para realmente fazer a vida do Excel pro muito mais fácil que eles nem sequer precisa para chegar ao SQL em tudo.

Esse encontro mudou minha visão do Poder consulta para sempre. Dei um passo para trás e olhou para ele sob uma nova luz. E eu comecei a usá-lo como
foi planejado para ser usado ... por conta própria, dirigindo tudo através da interface do usuário, evitando escrita SQL sempre que possível. E você sabe
alguma coisa ... ele começou a trabalhar melhor, ele me permitiu ir mais lugares, que me permitiu resolver as coisas que eu nunca tinha sido capaz de fazer
antes.

Eu amo esta ferramenta. Não por causa do que eu posso fazer com ele, mas por causa de como é fácil torna para fazer as coisas para um profissional de negócios,
sem a necessidade de codificação. Eu adoro isso, porque as pessoas que ensinam pegá-lo rapidamente e pode adicionar valor real em um incrivelmente curto
espaço de tempo. Este produto é verdadeiramente centrada em torno do pro Excel, o que nos permite construir soluções complexas através de um dos melhores
modelos de interface de usuário que já vi em muito tempo. E enquanto nós Faz ensinar as técnicas de codificação neste livro, a melhor parte é que é opcional,
apenas estendendo as capacidades ainda mais.

A história de Miguel: The Underdog


Eu realmente não me lembro do momento exato em que fui apresentado ao Poder Query. Creio que foi o início de 2013, quando eu baixei a
ferramenta e começou a brincar com ele. No início, parecia ser apenas uma ferramenta legal que poderia me ajudar a transformar os dados, mas eu
ainda sentia que Power Pivot ia ser o centro das atenções na história de dados. Naquela época Poder consulta foi chamado de 'Data Explorer' e -
como hoje - é focada em fornecer um usuário rica in- terface, o que lhe permite fazer coisas incríveis sem precisar olhar o código. Mal sabia eu que
este 'puro' ferramenta resolveria quase todos os meus problemas de dados.

Na primeira, Poder consulta pode parecer você gosta do que pareceu-me - apenas uma ferramenta de usuário final guiada que pode fazer algumas
transformações de dados muito legal. Mas, então, você vai perceber o verdadeiro poder e flexibilidade que o motor de Energia Consulta traz para a mesa. Hoje,
eu sinto que o Poder consulta é tão importante quanto Poder Pivot, como a forma como você moldar seus dados irá determinar quão bem o seu poder Modelo de
Dados Pivot funciona.
vi M é para (dados) do macaco

Poder de consulta é o novo underdog de ferramentas de Business Intelligence. É um grande avanço na self-service Business Intelligence e manipulação
de dados para o usuário final ou administrador de dados. Nosso objetivo com este livro é mudar a perspectiva de todos da ferramenta para sempre.

Este é o momento para o oprimido a subir e reivindicar uma vitória - uma vitória para todos nós que o trabalho com os dados em uma base diária. Uma vitória
para aqueles que querem fazer o trabalho de dados para nós e não o contrário.

Autor Agradecimentos
Como acontece com qualquer livro, há um monte de pessoas que são bastante influente em fazer as coisas acontecerem. Sem a influência das
pessoas abaixo, este livro nunca teria vindo a ser concretizadas:

Bill Jelen - Um monte de editores nos teria rido para fora da sala com o título deste livro, mas Bill adorei. Ele tem sido incrivelmente
entusiasmado, acomodando com o cronograma, e nós realmente apreciamos o seu apoio. Rob Collie - Rob é sinônimo de poder Pivot and
Power BI. Ele também é um amigo, e o cara que sugeriu que (Ken & Miguel) trabalhar em conjunto e escrever um livro Poder Query. É
muito provável que, sem estímulo de Rob, isso nunca teria acontecido.

Miguel Llopis - Desde a primeira reunião durante o café, Miguel tem sido o nosso go-to guy na Microsoft, mesmo brincando que o seu emprego a tempo
inteiro está respondendo e-mails de Ken. Ele tem sido super apoio desde o primeiro dia, tem respondido a solicitações de recursos de design, insetos e muito
mais. Viva el Atleti!

Roger Govier - Um livro tecnologia não vale nada, a menos que passou por uma revisão adequada tecnologia. Cada
página deste livro foi avaliada pelo nosso amigo Roger, eo livro é muito melhor para ele. A partir sugestões fraseio, para
expor questões, a entrada de Roger foi inestimável, mesmo inspirando um novo capítulo no processo. Matt Masson, Curt
Hagenlocher, Gil Raviv, Faisal Mohamood, Miguel Martinez, Samuel Zhang e todos os outros da equipe Poder Consulta /
Power BI que responderam às nossas muitas perguntas e responderam a nossos muitos e-mails. Sua ajuda e
esclarecimentos ter sido incrivelmente útil para transformar o produto acabado. Chris Webb e Bill Szysz para empurrar os
limites de potência da consulta, bem como inúmeros outros que têm comentado em nossos blogs e vídeos em um esforço
para mostrar maneiras diferentes e melhores para realizar soluções.

Ken gostaria de agradecer:


Ao longo dos últimos meses eu comecei a minha própria prática de consultoria, além de escrever este livro. Nada disso
teria sido possível sem o apoio da minha esposa Deanna e minha filha Annika. Ainda mais do que ser uma pedra no meu
canto, porém, Deanna fez a prova inicial ler de cada página deste livro, limpar o texto estranho que às vezes eu escrever
para baixo quando o meu cérebro é um parágrafo mais do que a minha digitação. Eu não acho que eu poderia escrever
um livro sem agradecer a meu bom amigo e mentor Jim Olsen. Eu trabalhei com Jim por 16 anos, e com o apoio ea
liberdade que ele me deu para explorar a tecnologia é a razão fundamental Estou onde estou hoje. Ele me deixou
experimentar novas tecnologias, desenvolver soluções de vanguarda e testá-los em nosso ambiente de trabalho.

Eu também quero agradecer ao meu co-autor, Miguel. Foi idéia de Miguel e energia que levou à criação de http: //
powerquery.training eo workshop online que ensinam lá. Sem sua dedicação ao projeto, ele não teria vindo a ser concretizadas. E
sem a oficina, nós provavelmente não tem um livro que é este bem organizado, este fluido, como o layout e o material é baseado
nas coisas que ensinamos e aprendemos com essa experiência.

Miguel gostaria de agradecer:


Eu gostaria de agradecer a você por ler isso. Sim você! Você é uma parte crucial do nosso objetivo principal e nossa intenção com este livro é para lhe
fornecer os recursos para que você possa se tornar um herói de dados. Eu gostaria de agradecer antecipadamente para tornar este mundo um lugar melhor
- pelo menos no contexto de tomada de decisão de negócios e do mundo dos dados. :-)

Eu também gostaria de agradecer a todos os praticantes do Excel e BI em todo o mundo que têm demonstrado seu apoio para o nosso livro e nossos esforços
relacionados Poder de consulta. É realmente uma honra fazer parte desta comunidade mundial e eu convidamos você a se juntar a nós simplesmente usando esta
ferramenta.
Prefácio Como Poder consulta mudou nossas vidas vii

Não vamos esquecer uma parte crucial da minha vida: amigos e familiares. Eu não estou colocando nomes aqui como eu estou com medo que eu poderia deixar
alguém de fora - por isso estou jogando pelo seguro aqui! :)

Agradecimentos especiais a Ken para ser extremamente favorável e ser capaz de superar a barreira da língua, às vezes comigo!
“Spanglish” me recebe, por vezes, ainda Ken distingue o que estou tentando dizer e faz uma versão melhor dele.

Vamos esperar que o Canadá e Panamá pode ir para a Copa do Mundo em 2018!

Membros do Poder Revolução consulta


Recebemos algum apoio incrível da comunidade Poder consulta, bem como, incluindo aqueles que pré-encomendado o livro ou assistiu
a nossa oficina on-line em http://powerquery.training/course (ou ambos). Seu apoio significa muito para nós! A seguir está uma lista das
pessoas que aproveitou a chance coletados como parte do M é para o macaco Dados apoiantes do clube:

E finalmente…
Nós gostaríamos de agradecer. Tanto para comprar o livro, colocando sua confiança nos nossos métodos de ensino, e para ser- vir parte do movimento de
alimentação Query.

Este livro foi escrito para você, em um esforço para ajudá-lo a dominar os seus dados. Nós realmente esperamos que ele faz, e que você vai encontrá-lo para ser o
livro Excel de maior impacto que você já adquiriu.
viii M é para (dados) do macaco
Capítulo 0 Introdução: A Nova Revolução 1

Capítulo 0 Introdução: A Nova Revolução


Se estamos realizando entrada de dados básico, construção de relatórios simples, ou projetando o negócio full-blown Intel soluções ligence usando VBA,
SQL e outras línguas, primamos prós todos lidam com dados até certo ponto. Nossos conjuntos de habilidades variam muito, mas os trabalhos gerais que
são geralmente tentando executar incluem:

• Transformação de dados para atender às nossas necessidades

• Anexando um conjunto de dados para outro

• Mesclar vários conjuntos de dados em conjunto

• Enriquecendo os nossos dados para uma melhor análise

Podemos ficar marcado com o nome de “macaco de dados,” mas nós somos realmente os profissionais da informação. Mas não importa o que chamamos de nós
mesmos em nossas descrições de trabalho formais, o nosso papel é o de limpar os dados e transformá-lo em informação. Nossos trabalhos podem não ser
glorioso, mas eles são essenciais, e sem o nosso trabalho feito corretamente, os resultados finais das análises são suspeitos.

Enquanto Excel tem um conjunto de ferramentas de incrível para nos ajudar a construir inteligência de negócios fora de dados, conversão de dados brutos em
dados de consumo tem sido um desafio para os anos. Na verdade, é esta questão que muitas vezes passam a maior parte do nosso tempo on-preparando dados
para análise e coloca-lo em um formato agradável tabular para expor mais poderosas ferramentas de análise e relatórios do Excel.

Figura 1 Por trás das cortinas, estamos todos os profissionais da informação tentando alcançar o nosso objetivo desejado com dados.

Apesar do apelido de “macaco de dados”, que os profissionais da informação são muitas vezes mais como mágicos de dados. Nossos dados raramente entra no
nosso mundo em um pronto-a-consumir formato; pode demorar horas de limpeza, filtrando, e remodelar para fazer as coisas prontas para ir.

Uma vez que nossos dados estão preparados e prontos, podemos realizar uma vasta gama de processos analíticos poderosos com facilidade. Ferramentas,
incluindo a formatação condicional, filtros, tabelas dinâmicas, gráficos, máquinas de corte, e mais vamos trabalhar magia e impressionar o nosso público.

Mas se os dados preparado e pronto é a parte mais difícil. Estamos servido dados sujos, realizada em coleções de texto e arquivos de Excel (talvez um banco
de dados, se estamos muito sorte), e de alguma forma tem que limpá-lo e deixá-lo pronto para uso. Nosso objetivo final é simples: obter os dados em uma tabela
do Excel, o mais rapidamente possível, assegurando ao mesmo tempo que é delimitado para as nossas necessidades e preciso. E cada solução tem uma
combinação diferente de dados provenientes de diferentes fontes. . . que leva magia.
2 M é para (dados) do macaco

Figura 2 A magia negra é o que realmente acontece com os dados antes do consumo.

Os benefícios e os perigos da Magia Negra


Os verdadeiros magos de Excel usar muitas técnicas diferentes para fazer sua mágica acontecer, às vezes por conta própria e, por vezes em
combinação. Estes tipos de magia incluem:

• fórmulas do Excel -Estes são algumas das primeiras técnicas que o mago, muitas vezes, para atingir, Lever envelhecimento seu conhecimento de
fórmulas utilizando funções tais como PROCV (), INDEX (), FÓSFORO (), OFFSET (), esquerda (), LEN () , TRIM (), clean (), e muitos mais.
Enquanto fórmulas tendem a ser usado por a maioria usuários do Excel, a complexidade dessas fórmulas varia de acordo com a experiência do
usuário e conforto.

• Visual Basic for Applications (VBA) -Este linguagem poderosa pode ajudar a criar poderosos e DY transformações NAMIC para seus
dados. VBA técnicas tendem a ser usado por avançado usuários devido à disciplina necessária para realmente dominar-los.

• instruções SQL -SQL é outra linguagem poderosa para manipulação de dados, e pode ser extremamente útil para a seleção, classificação,
agrupamento e transformar dados. A realidade, porém, é que esta língua é também normalmente só usado por avançado usuários, e até mesmo
muitos profissionais do Excel não sabe por onde começar com ele. Esta linguagem é muitas vezes visto como sendo o domínio exclusivo dos
profissionais de banco de dados, embora cada pro Excel deve investir algum tempo para aprender isso.

Todas estas ferramentas têm algo em comum: Por muitos anos, eles eram essencialmente as únicas ferramentas disponíveis para a limpeza e
transformação de dados em algo útil. Apesar de sua utilidade, muitas destas ferramentas também têm duas deficiências graves: Eles precisam de tempo
para construir uma solução e tempo para dominar as técnicas. Embora seja verdade que verdadeiramente mágicos experientes podem usar essas
ferramentas para construir soluções para automatizar e importar dados brutos em um formato limpo, isso leva anos de aprendizagem de línguas
avançados, bem como uma quantidade significativa de escopo tempo, desenvolver, testar e manter as soluções . Dependendo da complexidade das
soluções construídas, que fixa as soluções para uma pequena alteração no formato de importação ou alargando-as a abraçar outra fonte pode ser terrível.

Um perigo oculto de ter um verdadeiro assistente em uma empresa é que a pessoa pode construir uma solução incrível que trabalha até muito
tempo depois que ele ou ela deixou a empresa. Em algum ponto, porém, outros na empresa perceber que eles não entendem a solução e não tem
ninguém para corrigi-lo quando ele finalmente rompe. Por outro lado, muitas pessoas encarregadas de esta limpeza de dados não têm tempo ou
oportunidade de aprender essas técnicas mágicas avançadas. E enquanto nós poderia dizer que talvez eles é melhor nunca ter um colapso
massivo sistema sem ninguém para corrigi-lo, em vez disso, perder horas, dias, semanas, meses e anos de tempo de trabalho e dinheiro
realizando a limpeza de dados repetitivos e importações em um regularmente.

Tome um momento e pensar sobre quantas horas são consumidos em uma base mensal em sua empresa simplesmente executar tarefas repetitivas
de importação de dados e de limpeza no Excel. Multiplique essas horas pela taxa média de salário na sua empresa. . . e pelo número de empresas
em seu setor em todo o mundo e. . . você começa a idéia. O custo de produtividade nesta área é impressionante.
Capítulo 0 Introdução: A Nova Revolução 3

Introduzir um produto que aborda todos estes problemas-um que é fácil de aprender e que outros possam pegar e entender com instrução limitada. É
um produto que permite automatizar a importação e limpeza de dados, para que possa concentrar-se em transformar os dados em informações,
acrescentando verdadeiro valor à sua empresa. Esse produto é chamado Consulta poder.

As transformações futuras
Poder consulta resolve os problemas relacionados com os conjuntos de ferramentas que acabamos de descrever. É muito fácil de aprender e tem
uma das interfaces mais intuitivas que já trabalhei. É fácil de manter, uma vez que mostra cada etapa do processo, que pode rever ou atualizar
mais tarde. E tudo feito em Power consulta pode ser atualizada com um par de cliques.

Passámos anos a construção de soluções utilizando técnicas de magia negra, e vemos Poder consulta como um divisor de águas para muitas
razões. Uma delas é a velocidade com que ele pode ser aprendido.

Quando se trata de importação, limpeza e transformação de dados para obtê-lo pronto para a análise, você pode aprender Poder consulta mais rápido do que você
pode aprender fórmulas do Excel, e ele lida com fontes complexas muito mais facilmente do VBA.

Figura 3 Potência de consulta foi concebido para ser uma transformação dos dados de fácil utilização e manipulação ferramenta.

Sua facilidade de uso faz de Energia Consulta a resposta para o problema de fuga mágico dados que muitas empresas enfrentam. Mesmo se um mágico
moderno constrói algo complexo em Power Query, você pode ter alguém até a velocidade e capaz de manter ou corrigir a consulta com as horas mínimas
de formação-estamos falando, não semanas. Por mais difícil que é para os verdadeiros prós Excel para entender, muitos usuários realmente não fazer quer para
dominar fórmulas Excel. Eles simplesmente querem abrir uma ferramenta, conectá-lo à sua fonte de dados, clique em alguns botões para limpá-lo e
importá-lo e construir o gráfico ou relatório que eles precisam. É exatamente por isso que o Poder consulta pode chegar ainda mais longe do que fórmulas.
Com a interface baseada em menus, em muitos casos, um usuário pode evitar ter que aprender uma única fórmula ou linha de código.
4 M é para (dados) do macaco

facilidade de uso da Figura 4 Poder consulta terá impacto mais usuários do que qualquer um dos métodos clássicos.

Não há nenhuma dúvida em nossas mentes que o Poder consulta vai mudar a maneira prós Excel trabalhar com dados sempre. Queremos
deixar bem claro que não estamos descontando o valor de fórmulas, VBA, ou SQL. Na verdade, nós não poderia viver sem essas ferramentas.
Você pode rapidamente bater para fora fórmulas para fazer muitas coisas fora do contexto trans- formação que Power consulta nunca vai fazer.
VBA tem um alcance muito maior em pura capacidade e poder, permitindo-lhe chegar a outras aplicações, criar programas para puxar e
empurrar os dados, e tantas outras coisas. E uma consulta SQL escrito por um assistente SQL será sempre mais rápido e melhor do que um
criado por poder Query. No contexto de simplesmente conectando, limpeza, e importar dados, no entanto, poder Consulta oferece mais por
menos, o que lhe permite automatizar o trabalho mais rapidamente e em menos tempo. mais uma ferramenta que você tem acesso. Você pode
fornecer suas próprias consultas SQL, se necessário, atualizá-los com VBA quando desejado, carregar o seu poder query- criado consultas
diretamente ao Poder Pivot, e muito mais.

Por Poder consulta é mágica


A questão número um prós Excel enfrentam ao construir soluções robustas e estáveis ​foi acesso, limpeza e transformação dos dados. O que nós
necessário, e ainda muitos de nós nunca ouviu falar, é uma ferramenta de ETL que é, uma ferramenta para extrair, transformar e carregar dados.

Figura 5 ETL: extrair, transformar carga.


5
Capítulo 0 Introdução: Um Poder Consulta New Revolution é uma ferramenta de ETL; a sua função é a e dados Xtract de praticamente qualquer fonte, t ransform-lo

como desejado, e, em seguida eu OAD-lo. Mas o que isso realmente significa para nós como profissionais do Excel?

Extrair
Extração podem ser direcionados contra uma ou mais fontes de dados, incluindo arquivos de texto, arquivos CSV, arquivos do Excel, bases de Dados- e
páginas da web. Além disso, a equipe Poder consulta construiu muitos conectores para fontes de dados que de outra maneira sido duro para chegar
a-Microsoft Exchange, Facebook, Salesforce e outros Software-as-a- Service (SaaS) fontes.

Transformar
Quando falamos de transformação, que incluem cada uma das seguintes áreas:

• limpeza de dados limpeza -Os dados pode envolver filtrar departamentos de um banco de dados ou remoção de linhas em branco ou lixo de uma
importação de arquivo de texto. Outros usos incluem a mudança casos de maiúsculas para minúsculas, dados de divisão em várias colunas, e forçando
as datas para importar no formato correto para um determinado país. limpeza de dados é qualquer coisa que você precisa fazer para seus dados para
limpá-lo para que ele possa ser usado.

• Integração de dados -Se você usar PROCV () ou INDEX () / MATCH (), então provavelmente você está integrando conjuntos de dados ple
multi-. Poder consulta pode juntar dados em forma vertical ou horizontal, permitindo-lhe acrescentar duas tabelas (criando uma longa mesa) ou
mesclar tabelas juntos na horizontal, sem ter que escrever uma única função PROCV (). Você também pode realizar outras operações, tais
como agrupamento.

• enriquecimento de dados tarefas -Estes incluir a adição de novas colunas ou fazer cálculos sobre um conjunto de dados. Consulta de energia faz com
que seja fácil de realizar cálculos matemáticos como a criação de Vendas Brutas por mul- tiplying Vendas Quantidade * Preço de Venda ou adicionar
novos formatos de datas com base em sua coluna data da transação. Na verdade, com poder de consulta você pode até criar tabelas inteiras de forma
dinâmica, com base no valor em uma célula do Excel. Precisa de uma mesa calendário dinâmico que corre cinco anos atrás a partir da data de hoje?
Olhe não mais do Poder Query.

Poder de consulta permite que você execute muitas transformações através de comandos de menu, em vez de ter que escrever fórmulas ou código para fazê-las.
Esta ferramenta foi construído para profissionais do Excel, e sem nenhuma experiência codificação whatso- nunca, você pode usar o poder de consulta para
executar transformações que seriam incrivelmente complexa em SQL ou VBA. Isso é uma grande coisa!

Se você é do tipo de pessoa que gosta de ficar debaixo das cobertas e mexer com fórmulas ou código, no entanto, você pode. Enquanto não há
nenhuma exigência de sempre aprender, Poder consulta registra tudo em uma linguagem chamada M. (Línguas de A a L foram tiradas.) E se você é
um assistente que decide aproveitar essa linguagem, você pode construir ainda mais consultas eficientes e fazer coisas ainda mais surpreendente
do que sem ele.

Carga
Com Poder consulta você pode carregar dados em um dos quatro lugares:

• tabelas do Excel

• O Modelo Poder Pivot Dados

• BI poder
• Somente conexões

O último ponto pode parecer um pouco misterioso, mas isso simplesmente significa que você pode criar uma consulta que pode ser utilizado por outros

procedimentos. Isso permite que para alguns casos de uso muito interessantes que vamos explorar mais detalhadamente no livro. Embora seja interessante olhar

para onde as cargas de dados, que realmente não é a parte mais importante do processo de carregamento nesta ferramenta ETL. Está como ele carrega ou melhor,

como para carregá-lo novamente.

Poder consulta é essencialmente um gravador de macro que mantém o controle de cada bit do extrato e transformar etapas. Você pode definir uma consulta uma
vez e determinar onde você gostaria de carregá-lo. Depois de ter feito isso, você pode simplesmente atualizar sua consulta para executá-lo novamente.
6 M é para (dados) do macaco

Figura 6 Definir o processo de transformação, uma vez e consumir a qualquer momento.

Considere isto por um momento: Você precisa de um arquivo TXT particular, e ele te leva 20 minutos para importar e limpá-lo antes que você possa
usá-lo. Poder consulta permite realizar a mesma tarefa em 10 minutos, o que economiza 10 minutos do primeiro tempo você usá-lo. Em seguida, no
próximo mês vem junto, e você precisa de uma nova versão do mesmo arquivo TXT. Sem poder Query, você tem que arregaçar as mangas e
reviver os 20 minutos de exuberância Excel onde mostram Excel que você é um mestre em reviver o passado, realizando essas etapas
emocionantes uma e outra vez a cada mês. Esperar . . . você não encontrar o que emocionante? Nesse caso, basta salvar seu novo arquivo TXT
sobre o antigo, entrar em Excel, e clique em Dados → Atualizar tudo. Você está acabado. A sério.

Isto é onde você ver o poder real de poder Query. É fácil de usar, e também é fácil de reuso. Ele muda o seu trabalho duro em um
investimento e libera o seu tempo durante o próximo ciclo para fazer algo de valor.

Versões da Consulta de energia


Antes de dizer-lhe onde obter Poder Query, vamos falar sobre as atualizações. Sim, isso pode parecer como colocar a carroça na frente dos
bois, mas há uma razão muito sólida para isso.

O Ciclo de Atualização
A equipa de Energia Consulta lança atualizações mensais. Nós não estamos falando correções de bugs (embora aqueles são certamente incluído); estamos
falando de novos recursos e aprimoramentos de desempenho. Enquanto alguns são pequenos, outros são muito maiores. Em fevereiro de 2014, a equipe
adicionou a capacidade de se conectar ao Microsoft Exchange como uma fonte de dados. No início de 2015, a equipe lançou uma atualização que reduzir o tempo
de carga de consulta em 30%. Em julho de 2015, a equipe lançou uma atualização que resolveu alguns problemas muito graves com refrescante para poder Pivot.

Há riscos envolvidos na instalação das últimas atualizações assim que elas estiverem disponíveis? Claro que há. Erros acontecem, especialmente
em softwares complexos. Mas a realidade é que as obras Power Team Pesquisar muito difícil de abordar sérios bugs no software. Se você está
particularmente preocupado, baixar o instalador e guardá-lo em vez de instalar diretamente da web. Isso permitirá que você para reverter se a
necessidade cada vez surge. Se você atualmente tem o poder de consulta instalado, certifique-se de atualizá-lo. Este livro foi escrito usando a
versão
2.24, lançado em julho de 2015, e você deve ser, pelo menos, essa atualização.

Onde posso obter o poder de consulta?


A resposta depende da versão do Excel que você tem:
• Excel 2010 e Excel 2013 -Download-lo de http://go.microsoft.com/fwlink/?LinkId=317450.
• Excel 2016 -Você já tem poder de consulta instalado, mas o ponto de entrada é um pouco diferente do que nas versões Excel 2010 e
Excel 2013.

• Poder BI desktop -Espere o que? O que isso tem a ver com o Excel? A pouco e muito, realmente. A história curta é que o poder BI
Desktop é um programa independente para aquisição e modelagem de seus dados. Como acontece, Poder consulta é a ferramenta
usada para a fonte e transformar os dados com Poder BI desktop, então você vai estar aprendendo uma habilidade neste livro que é
portátil para outros aplicativos. O Poder BI Desktop pode ser baixado a partir www.powerbi.com.
Capítulo 0 Introdução: A Nova Revolução 7

Apesar de poder consulta lida com fornecimento de dados para Power BI desktop, este livro é escrito por profissionais do Excel para prós
Excel. Cada solução nas páginas deste livro é ilustrado com Excel.

Como usar este livro


Este livro destina-se a ser o seu número um recurso para a compreensão Poder consulta ea linguagem M a partir de um ponto de vista prático como um Excel
pro. Nosso objetivo é resolver os problemas do Excel que prós Excel comumente enfrentam e mostrar-lhe como usar o poder de consulta para resolvê-los.
Nós cobrimos também alguns cenários mais avançados, bem como, a incorporação de energia de consulta e M as melhores práticas por toda parte, para
ajudar a compreender não apenas como construir soluções de consultas poder, mas como fazê-los durar.

O Mapa de Aprendizagem
Depois de trabalhar com Power consulta por um longo tempo, nós viemos acima com um método que nós acreditamos que é o caminho mal opti- para ensinar
como usar essa ferramenta incrível. É aquele que temos testado e aperfeiçoado em nossa http on-line: // oficinas powerquery.training, e envolve técnicas
cuidadosamente camadas que constroem uns sobre os outros. O mapa de aprendizagem é mostrado abaixo.

Figura 7 Um caminho de aprendizagem ideal para dominar o poder de consulta e da língua M.

Onde encontrar os comandos de consulta de energia


Poder consulta foi inicialmente lançado após Excel 2013, como um add-in gratuito para o Excel, e foi (e chocante) compatível com Excel
2010. Em ambas as versões, uma guia única fita detém todos os comandos de consulta de energia.

Porque o poder de consulta é tão incrivelmente útil, ele só fazia sentido para integrar a ferramenta em Excel 2016. Devido a preocupações com inchaço da
interface do usuário, no entanto, poder consulta não foi dado o seu próprio guia da faixa no Excel 2016, mas foi em vez esmagado para dentro do obter &
Transform grupo no separador dados. A imagem abaixo mostra onde o poder de consulta é acessível em cada aplicação.
8 M é para (dados) do macaco

Figura 8 Localizando Poder consulta no Excel 2010, Excel 2013, Excel 2016, e Poder BI Desktop.

Criação de novas consultas


Desde as rotas para acessar os comandos da Consulta de energia são diferentes em diferentes versões do Excel, que se instalaram em utilizando a
seguinte estrutura de comando para descrever como começar para cada consulta:

• Criar um novo → consulta De → Do arquivo CSV Quando você vê essa

estrutura, é preciso interpretá-lo da seguinte forma:

• Excel 2016: guia Dados → Nova consulta → De → Do arquivo CSV

• Excel 2010/2013: guia de consulta Poder → De → Do arquivo CSV

Figura 9 Criando uma consulta a partir de um arquivo CSV no Excel 2016 vs Excel 2010/2013.

Então, vamos colocar isso à prova. Se queremos que você pegue os dados de um banco de dados SQL Azure, os nossos sentidos leia-se:

• Criar um novo → consulta De Azure → De Microsoft Azure banco de dados SQL


Capítulo 0 Introdução: A Nova Revolução 9

O processo para o Excel 2016 e para o Excel 2013 iria olhar como mostrado abaixo.

Figura 10 Criando uma consulta a partir de um banco de dados SQL Azure no Excel 2016 vs Excel 2010/2013.

Arquivos de exemplo

Antes de ler mais, é altamente recomendável que você baixar todos os arquivos utilizados neste livro para que você possa seguir junto com a gente. Você

pode obtê-los todos de uma http://www.powerquery.training/book-files/. É hora de explorar esta ferramenta incrível em profundidade. Vamos começar.

Elementos especiais

Notas irá aparecer em um parágrafo recuado com um ícone de banana. Estes deliciosos parágrafos apontar características especiais,
peculiaridades, ou truques de software que ajudarão a aumentar a sua produtividade com o Power Query.

Avisos aparecem em um parágrafo sombreado com um ícone de casca de banana. Preste atenção especial para as caixas de cautela, pois
eles podem causar-lhe a escorregar. Nós queremos impedi-lo de ir por um caminho que fará com que os problemas experiência consulta no
futuro.
10 M é para (dados) do macaco
Capítulo 1 Importação de Dados Básicos 11

Capítulo 1 Importação de Dados Básicos

Se você é um Excel pro, é altamente provável que sua vida é toda sobre a importação, manipulação e transformação de dados para que você possa usá-lo.
Infelizmente, muitos de nós não têm acesso a grandes bases de dados com dados curadoria. Em vez disso, são alimentados com uma dieta constante de arquivos
TXT ou CSV e tem que passar pelo processo de importá-los para as nossas soluções do Excel antes de podermos começar a nossa análise. Para nós, informações
críticas de negócios são armazenados nos seguintes formatos:

• arquivos TXT, que são delimitados por caracteres

• arquivos CSV, que são delimitados por vírgulas

• planilhas Excel
Felizmente, Poder consulta foi construída por nós, e isso nos permite importar os dados a partir de qualquer uma destas fontes.

Importando arquivos delimitados


O processo de importação de um ficheiro delimitada tal como um CSV ou ficheiro.TXT delimitado-guia é bastante simples, e segue a ETL de base
(extracto, transformar, e carga) Processo, tal como descrito nas secções seguintes.

Extraia (do arquivo)


O pacote de download para este capítulo contém dois arquivos delimitados, seja de que irá trabalhar para este exemplo. Ambos são nomeados Ch01-delimitado,
embora um é um arquivo CSV delimitado por vírgula e o outro é um arquivo TXT delimitado por tabulação. Para importar qualquer arquivo delimitado usando o
poder de consulta, você pode:

• Abra um novo livro (em branco)

• Criar um novo → consulta De Arquivo → De CSV (ou de texto, se você usou o arquivo TXT)

• Navegue até os Exemplos CH01 \ arquivo Ch01-delimitado e clique duas vezes nele

Em diferentes versões do Excel, você usa métodos ligeiramente diferentes para criar uma nova consulta. Para saber como criar uma
nova consulta na sua versão do Excel, consulte a seção “Criação de novas consultas” na introdução.

Excel inicia uma nova janela, o editor Poder Query, que tem esta aparência:

Figura 11 editor A consulta de alimentação com um arquivo delimitado importado.

Transform (para a saída desejada)


Esta visão editor Poder consulta acima mostra algumas informações importantes que valem a pena tomar nota de:

• Os dados aparecem num formato tabular agradável com cabeçalhos das colunas

• A consulta foi dado automaticamente um nome (o nome do arquivo)

• Há três etapas listadas na caixa de Passos Aplicadas


12 M é para (dados) do macaco

É o último ponto que é o mais saliente aqui. Se você tentar clicar no step Fonte, você vê uma visão um pouco diferente de seus dados:

Figura 12 Os dados como Power consulta originalmente importado, visualizados clicando no step Fonte.

O impacto disso é bastante importante. Poder consulta importado seus dados, analisou ele, e notou algumas tendências. O que você não vê é que o poder
de consulta determinou que seus dados estão colunar (baseado no fato de que arquivos CSV têm suas colunas separadas por vírgulas), para que ele
(corretamente) dividi-lo em colunas. Que os dados desembarcou na etapa Fonte.

Poder de consulta, em seguida, analisados ​os dados mais longe e identificou que a primeira linha teve cabeçalhos de texto que eram incompatíveis com os
valores nas colunas. Por isso, acrescentou a etapa Promovido cabeçalhos para promover a primeira linha a ser os cabeçalhos das colunas para a sua mesa.

Em seguida, Poder consulta tentaram identificar e definir os tipos de dados nas colunas. É feita a suposição de que a coluna é Trandate datas,
a conta e colunas Dept são números, e a soma da coluna é Montante valores. É então aplicado esses tipos de dados na etapa Changed Tipo
você vê na caixa de Passos Aplicadas. A grande coisa aqui é que você pode pisar para trás e para a frente através destes passos para ver o
poder de consulta fez para os dados.

Você pode fazer algumas modificações para limpar os dados. . . como a fixação dos termos nos cabeçalhos das colunas para ser mais legível. Para fazer
isso, siga estes passos:

• Selecione Changed Digite na caixa de Passos Aplicadas

• Direito do mouse no cabeçalho da coluna trandate → Renomear → Data

• Botão direito do mouse soma do montante editor → Rename → Valor A

consulta poder agora se parece com isso:

Figura 13 o conjunto de colunas com renomeados dados.


Capítulo 1 Importação de Dados Básicos 13

Tome um outro olhar para a caixa de Passos Aplicadas agora. Se você estivesse observando de perto como você fez isso, você teria notado que um novo passo
foi criado quando você renomeou a coluna Data. Mas um outro passo foi não criado quando você renomeou a coluna Valor. Em vez disso, as duas etapas foram
fundidos juntos. Poder consulta tenta manter as coisas eficientes através da fusão de operações semelhantes como você está construindo uma consulta.

A consulta está olhando muito bom, mas o que se você não concorda com as escolhas de tipo de dados de Poder consulta? Por exem- plo, os valores da coluna
de conta e Dept deve ser formatado como texto, não números. Corrigindo isso não é problema:

• Selecione a coluna Conta


• Mantenha pressionada a tecla Ctrl e selecione a coluna Dept

• Botão direito do mouse qualquer cabeçalho da coluna → Alterar tipo → Texto

Os campos Conta e Dept estão agora alinhados à esquerda da coluna, o que indica que eles estão Format- ted como texto, não valores, de acordo
com Excel. Você também pode ver um novo passo na caixa de Passos Aplicadas, chamado Type1 Changed:

Figura 14 O conjunto de dados, olhando tudo bonito e pronto para o carregamento.

Então, por que não o tipo de mudanças fusão volta para o passo tipo alterado original? A resposta é que o poder de consulta não sabe
se você fez algo importante na etapa anterior, por isso reage a maneira segura e cria um novo passo.

Poder consulta funciona essencialmente como um gravador de macro seqüencial: Ele irá executar exatamente essas etapas, exatamente nesta ordem, cada vez
que você atualizar os dados.

Carga
É agora tempo para finalizar a consulta, com a etapa de carga. Antes de se comprometer a sua consulta, você deve dar-lhe um nome mais
descritivo do que o padrão. Excel usará o nome fornecido aqui como o nome da sua tabela de saída ou consulta. Siga esses passos:

• Alterar o nome de Ch01-delimitado para Transações


• Vá para o menu Arquivo → Close & Carga

Por padrão, os dados são carregados para uma tabela Excel com o nome da consulta. Você pode realmente ver a tabela são criados em um esquema de
cor cinza e, em seguida, fica verde. Cada consulta de tabela passa por este processo sempre que é atualizada-primeiro virando cinza e, em seguida, ficar
verde quando é bom para ir.

Você também vai notar um novo painel de tarefas, painel de pasta de trabalho consultas, pop-up no lado direito da janela Excel. Esta interface útil
fornece informações importantes sobre suas consultas (tais como número de linhas carregadas e erros encontrados), e também permite que você
localize e gerenciar suas consultas no futuro.
14 M é para (dados) do macaco

Figura 15 O painel de tarefas da pasta de trabalho consultas, mostrando os resultados da consulta.

Se você está trabalhando junto com o livro e sua consulta mostra um número significativo de erros, não entre em pânico. Isto significa
simplesmente que as configurações regionais não estão definidas para um formato EUA. Agora estamos focados em como usar a interface de
alimentação de consulta para importar dados, mas a certeza de que vamos mostrar-lhe como lidar com esta questão específica (entre outros)
no Capítulo 2.

Com os dados carregados na tabela, agora você tem a capacidade de atualizá-la a qualquer momento através de alguns métodos diferentes:

• Direito do mouse na tabela na planilha → Atualizar Excel

• Botão direito do mouse a consulta na pasta de trabalho Consultas painel → Atualizar

• Vá para a aba Dados → Atualizar tudo

Cada vez que um desses comandos é emitido, Excel dispara Poder Consulta para abrir o arquivo, processo de cada um dos passos que você gravou, e
colocar os dados na tabela. Contanto que você salvar o arquivo de novas operações em cima do que você usou para criar sua solução, e contanto que
a estrutura de dados é o mesmo, você acabou automatizado seu processo de importação até um par de cliques!

Se você descartar painel a pasta de trabalho consultas, você pode mostrá-lo novamente através da aba Dados → Mostrar consultas no Excel 2016 ou
guia → Mostrar painel de energia consulta no Excel 2010/2013.

A fim de preservar a mesa e outras características do Poder Query, este arquivo deve ser salvo em um formato de arquivo válido Excel,
como XLSX, xlsb, ou XLSM.

A importação de dados do Excel


Você pode importar três formatos gerais de dados do Excel a partir de uma pasta de trabalho. Você pode importar os dados mantidos em:

• tabelas do Excel

• intervalos nomeados

• intervalos nomeados dinâmicos

Capítulo 5 abrange a importação de dados de planilhas sem tabelas e dados contidos em outras pastas de trabalho.

Conectando-se a tabelas do Excel


Ao invés de se conectar a uma tabela oficial Excel, neste caso, você irá se conectar a dados que estão em um formato tabular, mas sem estilo de
tabela ainda aplicada. Os dados a utilizar para esta situa-se nos exemplos CH01 \ arquivo Excel Data.xlsx na planilha de mesa, e parece que esta:
Capítulo 1 Importação de Dados Básicos 15

Figura 16 Os dados brutos em uma planilha do Excel.

Para puxar esses dados para poder Query, siga estes passos:

• Clique em qualquer célula dentro do intervalo de dados

• Criar um novo → consulta Da Tabela

Neste ponto, o Excel inicia o processo de criação de uma tabela oficial Excel para você, pedindo-lhe para confirmar os limites da tabela e se o conjunto
de dados inclui cabeçalhos. Depois de confirmar os detalhes, você está lançada para a interface de alimentação de consulta.

Se você começar com uma tabela oficial Excel, você teria apenas ser lançados diretamente no editor de alimentação Query, sem ser
solicitado para confirmar o intervalo.

Como mostrado abaixo, essa interface tem algumas diferenças em relação ao puxado em dados de um arquivo delimitado.

Figura 17 Dados carregados a partir de uma tabela do Excel.

Observe as diferenças:

• Os cabeçalhos da tabela foram importadas da mesa, pelo que não há etapa cabeçalhos promovidos.

• O nome da consulta é herdada com base no nome tabela recém-criada.

Quando você clica em Close & Load, Excel tenta criar uma nova tabela, usando o nome da consulta mostrado no editor de
Poder Query. Se os conflitos de nomes com o nome de uma tabela existente, Excel anexa um sublinhado e um número ao
nome da tabela recém-criado para garantir que não há nomes duplicados. Finalize essa consulta com estes passos:

• Alterar o nome da tabela 1 para FromTable

• Vá até Home → Close & Carga

A nova planilha é criada, e que contém uma cópia da tabela original. As únicas diferenças são neste momento o nome da tabela e esse poder
de consulta agora tem uma conexão com os dados.
16 M é para (dados) do macaco

Há muito pouca razão para criar uma cópia de sua tabela sem efectuar quaisquer as transformações no processo.
Mostramos esse processo apenas para ilustrar como conectar e de carga de uma tabela Excel.

Conectando-se a intervalos nomeados


Puxando dados de tabelas do Excel é de longe a maneira mais fácil para puxar dados do Excel para poder consulta, mas não é o único método.

O desafio com a aplicação de um estilo de tabela no Excel é que ele bloqueia cabeçalhos de coluna no lugar (quebrando cabeçalhos de tabela dinâmica
movida por fórmulas), aplica-se bandas de cor, e faz outras mudanças estilísticas a planilha que você pode não querer. Isso pode ser um problema se você
gastou uma grande quantidade de tempo a construção de uma análise, e você não quer um estilo de tabela aplicado ao intervalo de dados.

A boa notícia é que você também pode se conectar a intervalos de Excel, não apenas para as tabelas. Para fazer isso, você pode usar a planilha

NamedRange no arquivo de exemplo Ch01-Excel Data.xlsx. Os dados em que é idêntica para os dados no exemplo anterior, mas ainda é em forma bruta,

sem estilo mesa aplicada. Puxando dados em poder de consulta a partir de um intervalo nomeado envolve três etapas distintas:

• Definindo um intervalo nomeado que cobre os dados,

• Selecionando o intervalo nomeado, em seguida,

• Criando uma nova consulta.

Siga estes passos com a planilha NamedRange:


• Selecione as células A5: F42

• Ir para a caixa Nome → digite o nome de dados → pressione Enter

Figura 18 Criando um intervalo nomeado.

Depois de criar este nome, você pode selecioná-lo usando a seta suspensa à esquerda. Não importa onde você está em sua
pasta de trabalho, então você vai saltar para esta planilha, e os dados no intervalo nomeado será selecionado.

• Certifique-se de que todo o intervalo nomeado é selecionado e que seu nome está mostrando na caixa Nome

• Criar um novo → consulta Da Tabela

Se o intervalo nomeado é selecionado quando você usa o comando de Mesa, Poder consulta não forçar um estilo de tabela em seus dados e, em

vez refere-se diretamente para os dados no intervalo nomeado. Como você pode ver abaixo, agora a interface de energia consulta é o que parece

quando você importar arquivos delimitados em vez de como ele olha quando você se conectar a uma tabela do Excel:
Capítulo 1 Importação de Dados Básicos 17

Figura 19 Dados importados atrav de um intervalo nomeado.

Uma das características de tabelas do Excel é que eles têm uma linha de cabeçalho predefinido. Desde que não existe com um intervalo nomeado, Poder
consulta tem que se conectar à fonte de dados brutos e executar sua análise para descobrir como tratar os dados. Muito parecido com arquivos de texto
delimitados, identifica uma linha que parece ser cabeçalhos, promove os cabeçalhos, e tenta aplicar tipos de dados para as colunas.

Observe que o nome padrão da consulta é o nome do intervalo nomeado. Novamente, é uma boa idéia para mudar isso, como Excel irá adicionar um
número ao nome da mesa quando ele é criado porque o nome de uma tabela não pode ser idêntica a qualquer outra tabela ou intervalo nomeado. Siga
esses passos:

• Alterar o nome consulta para FromNamedRange

• Vá até Home → Close & Carga

Intervalos nomeados dinâmicos


tabelas do Excel expandir automaticamente tanto na vertical como na horizontal, como novos dados são adicionados. Esta é uma das grandes características de
tabelas do Excel. Mas, novamente, o desafio é que eles carregam um monte de formatação com eles. Intervalos nomeados não levar tudo o que a formatação, mas
eles não têm a capacidade automática de expansão que é tão fantástico com tabelas do Excel. Como solução alternativa, você pode criar um intervalo nomeado
dinâmica que expande automaticamente quando os dados crescerem.

Na planilha DynamicRange do Ch01-Excel Data.xlsx arquivo que você vai encontrar uma outra cópia dos dados originais. Siga estes passos para configurar um
intervalo nomeado dinâmica que se expande à medida que novos registros são adicionados:

• Vá para a guia Fórmulas → Treinador Nome → Nova

• Alterar o nome para DynamicRange

• Insira a seguinte fórmula na barra de fórmulas:


= Dinâmico $ A $ 5: INDEX (! Dinâmico $ F: $ F, MATCH (99 ^ 99, Dynamic $ A: $ A))

• Clique OK

O desafio agora é que você pode se referir a este intervalo nomeado em Power Query, mas porque é um nome dinâmico, você não pode selecioná-lo a partir
da caixa de nome no Excel. Então, se você não pode selecioná-lo, como você pode anexar a ele com Power consulta em primeiro lugar? O segredo é criar
uma consulta em branco e, em seguida, dizer Poder consulta que variam você deseja se conectar. Veja como:

• Criar um novo → consulta De Outras Fontes → consulta em branco

Se você não vê a barra de fórmulas no Editor de consulta entre a fita e a área de dados, vá para a guia Exibir e
clique na caixa Formula Bar.

• Na barra de fórmula, escreva o seguinte:

= Excel.CurrentWorkbook ()
• pressione Enter

Como mostrado abaixo, você ver uma tabela que lista todos os objetos do Excel neste livro que você pode conectar-se.
18 M é para (dados) do macaco

Figura 20 A lista de todos os objetos de Energia Consulta vê na pasta de trabalho atual do Excel.

Lá no fundo é o objeto DynamicRange você acabou de criar. Clique na Tabela palavra verde na coluna Conteúdo à esquerda do
DynamicRange. Poder consulta perfura o intervalo, como mostrado abaixo.

Figura 21 O conteúdo da gama DynamicRange nomeado.

Ao olhar para a caixa de Passos Aplicadas, você pode ver que você tomou estes passos:

• Ligado à fonte dos dados (programa Excel)


• Navegado para a mesa de DynamicRange

Além disso, Poder Consulta fez algumas suposições sobre os dados para você, e ele tomou a liberdade de aplicar mais alguns passos, como a
promoção cabeçalhos de coluna e definir os tipos de dados. Tudo que você tem a fazer agora é seguir estes passos:

• Renomeie o FromDynamicRange consulta

• Vá até Home → Close & Carga

considerações
Sempre que possível, é preferível construir suas soluções contra tabelas do Excel. Eles são mais fáceis de configurar do que as alternativas, mais fácil de

manter, e bastante transparente sobre onde os dados são armazenados. Em situações específicas, você pode ter razões para evitar tabelas, no entanto, e

você pode fazer isso onde for necessário. Recomendamos que você geralmente deve chegar a estas técnicas somente quando você tem boas razões para

fazê-lo.
Capítulo 2 Padrões Overriding Poder da consulta 19

Capítulo 2 Padrões Overriding Poder da consulta


Seu trabalho é difícil quando todos seguem as regras. Mas de vez em quando, quando você está tentando importar um arquivo de dados para o Excel,
é provável que você descubra que o programador relatório não seguir os padrões de relatórios adequados. O arquivo pode ter uma extensão de
arquivo específico que implica que deve seguir um certo padrão, mas é realmente apenas aparece como esse tipo de arquivo. No entanto, quando
você abri-lo, você encontrar algo que não é compatível com o padrão, e ele não funciona corretamente.

Exemplo ficheiro mal formado


Dizer que você está trabalhando com um conjunto de dados CSV que se parece com isso quando visto no bloco de notas:

Figura 22 Um olhar cru em um arquivo CSV mal formado, que tem uma linha de cabeçalho extra.

Então, o que há de errado com este conjunto de dados? Começando na linha 2, que tem uma boa lista consistente de dados que mostram em um formato

adequado, separados por vírgulas, com um uma linha de cabeçalho e quatro colunas de dados, separados por vírgulas. A questão aqui é que há uma linha extra no

topo da página, sem vírgulas nele. Em uma configuração normal, CSV, isso não deve ocorrer, como a maioria dos programas de trabalhar para fora a contagem de

coluna com base na primeira linha. Curiosamente, quando o Excel abre esse arquivo, ele manipula-lo sem problema:

Figura 23 CSV mal formado carregado para o Excel.

Poder Query, infelizmente, não lidar com isso tão graciosamente, como você pode ver se você seguir estes passos:

• Abra um livro em branco

• Criar um novo → consulta De → Do arquivo CSV

• Navegue até CH02 Exemplos \ MalformedCSV.csv Quando Poder Consulta

lança, os dados são importados da seguinte forma:

Figura 24 arquivo CSV malformado carregado no Poder Query.

Isso obviamente não é bom. Você está olhando para uma única coluna de dados. Pior, parece que a potência de consulta reconheceu a coluna como
delimitado, e ele não conseguiu importar os últimos três colunas!
20 M é para (dados) do macaco

O desafio aqui é que o poder de consulta depende do arquivo CSV sendo um arquivo CSV adequada porque quer dividir os dados com base nas
vírgulas. Em seguida, ele lê a primeira linha para determinar quantos existem colunas. Como não há vírgulas nessa linha, Poder consulta figuras que
ele deve ser uma única coluna. Em seguida, ele começa a ler cada linha e pára na primeira vírgula.

Normalmente, este processo funciona muito bem. Mas, no caso deste arquivo, Poder consulta ignora uma grande parte dos dados que você precisa. A boa
notícia é que você pode corrigir isso, dizendo Poder consulta como o arquivo precisa ser tratada.

Substituindo opções padrão do poder de consultas


Poder consulta gosta de ser útil ao tentar fazer suposições sobre os dados. Enquanto muitas vezes é certo, pode ocor- casionally estar errado e
precisa de alguma manipulação.

Há duas maneiras principais esses problemas se manifestam na interface do usuário: Poder de consulta às vezes insere passos extras que estão
incorretas / irrelevante, e às vezes misconfigures etapas. Você lidar com esses dois problemas de forma diferente, como discutido nas seções
seguintes.

Removendo a energia da consulta Passos


Dos dois problemas de energia da consulta já mencionados, removendo etapas extra adicionado é de longe o mais fácil. No caso da
importação mostrado no início deste capítulo, Poder Consulta fez duas coisas. Primeiro, ele importou o arquivo e, em seguida, definir o tipo
de dados em Column1. O desafio aqui é que você precisa para mudar o formato de importação, e você pode não ter certeza se você vai
mesmo ter um Column1 após isso é feito. Por essa razão, você precisa excluir o passo tipo alterado. Isto é muito fácil de fazer, simplesmente
mouse sobre a etapa na caixa de Passos Aplicadas e clique no pequeno x no lado esquerdo da etapa para excluí-lo a partir da sequência de
Energia Inquérito:

Figura 25 Removendo um passo em Power Query.

Esteja ciente de que se você excluir passos no meio de uma consulta que são importantes para o resultado final, você pode causar a consulta para
lançar um erro até o final. Além disso, não há nenhuma funcionalidade de desfazer nesta área da interface do usuário!

Neste caso, excluir o passo tipo alterado não parece mudar alguma coisa na vista de consulta neste momento. (Afinal, Poder consulta apenas
forçou o texto a ser tratado como texto.) É, no entanto, ajudar a evitar possíveis erros como você corrigir o verdadeiro problema, descrito a seguir.

Reconfigurando Passos
Agora você precisa mudar a maneira de Energia Consulta lida com o arquivo na importação. Para fazer isso, você precisa clicar no pequeno ícone de
engrenagem no lado direito da etapa Fonte. Quando você faz isso, você está lançado em uma janela de configuração:

Figura 26 Alterando os detalhes do arquivo a ser importado.

Este diálogo permite alterar algumas coisas importantes sobre o arquivo, incluindo o caminho do arquivo e que tipo de arquivo de Energia Consulta
deve assumir este é ao tentar importá-lo. Como o arquivo neste caso carrega a extensão do tipo de arquivo CSV, Poder consulta escolheu o tipo de
documento CSV.
Capítulo 2 Padrões Overriding Poder da consulta 21

Cada um dos arquivos de exemplo para este livro tem uma versão “Concluído”. A fim de levá-los a atualizar, você precisa clicar no ícone
de engrenagem no degrau de origem e alterar a localização da pasta para o local em seu PC.

Neste ponto, você precisa dizer ao Poder Consulta que CSV não é o formato correto para este documento, mesmo que ele está disfarçado sob uma extensão
CSV. Para fazer isso, clique no menu suspenso ao lado de Open File As → selecione Arquivo Texto → OK.

Figura 27 As diferentes opções disponíveis para importação de dados.

Os resultados são muito mais reconfortante, embora haja definitivamente um pouco mais trabalho a fazer agora:

Figura 28 Todos os dados são mostrando novamente!

Parece que você vai precisar para dividir manualmente esses dados se em colunas, mas isso não é um grande negócio. Pelo menos é delimitada por vírgulas, e
que vai tornar as coisas um pouco mais fácil. Agora você precisa ir através dos passos que você provavelmente desejo de Energia Consulta tinha feito para você:

• Na guia Início → remover linhas → Remover linhas superiores → 1

• Vá até a aba Transformar → Dividir Coluna → por delimitador

• Optar por dividir por vírgula → em cada ocorrência do delimitador → OK

• Vá para o Transform guia → Use primeira linha como cabeçalhos → OK


22 M é para (dados) do macaco

A importação agora parece muito melhor:

Figura 29 Os dados do jeito que você queria importado.

Você pode pensar que você poderia ignorar esse processo, optando por importar de texto em vez de partir CSV. Infelizmente, porque o poder de
consulta é tão útil, ele irá substituir a sua escolha e ainda importar o arquivo como um arquivo CSV de qualquer maneira.

Reordenar Passos
Quando você rever os passos na caixa de Passos Aplicadas, você pode ver que depois de dividir as colunas por delimitador, Poder consulta insere
automaticamente um passo para alterar os tipos de coluna. Infelizmente, os dados são alinhados à esquerda, para que você saiba que o Poder consulta
configurado tudo como texto.

É preciso corrigir isso, mas se você voltar para a etapa de tipo alterado e começar a converter os tipos de dados para datas e valores, você vai causar
erros em toda a linha 1. (Eles são todos os valores de texto e não foram promovidos para cabeçalhos ainda.) Então, ele realmente faz sentido para
alterar os tipos de coluna depois de ter promovido cabeçalhos, não antes. Tente mover esse passo tipo alterado para baixo clicando o tipo de passo
Changed → Mover para baixo. O passo se move, mas causa um erro ao fazê-lo:

Figura 30 Poder Consulta lhe diz que não consegue encontrar uma coluna específica mais.

A razão deste erro aparece é que o passo Tipo mudou foi definir os tipos de dados sobre Column1.1. Mas desde que você promoveu os cabeçalhos
das colunas, não há mais Column1.1; agora é trandate. Movendo-se passos no Poder consulta pode ser um recurso muito útil, mas você tem que
tomar cuidado para erros como o que acabamos de mostrar.

Como você se tornar mais confortável com Power Query, você pode decidir apenas corrigir um problema como este, editando o passo fórmula diretamente, mas por
agora, a maneira mais fácil de corrigir esse problema específico é simplesmente para eliminar o passo e recriá-lo:

• Remova a passo tipo alterado por excluí-lo na caixa de Passos Aplicadas

• Botão direito do mouse Quantidade → Alterar tipo → número decimal

Se você receber um erro na coluna quando você faz isso, você pode corrigi-lo fazendo o seguinte: Selecione os cabeçalhos Promovido
passo → clique com o botão direito na coluna Valor → Substituir Valores. Substituir o sinal $ com nada. Neste ponto, as coisas vão
funcionar quando você selecionar o passo de tipo alterado. A causa raiz do problema é que as configurações regionais usar um sinal -
para números negativos em oposição a colocar números negativos entre parênteses.

Você está quase pronto. Você só tem a coluna de data para ir. Por agora, vá para Home → Close & Carregue para finalizar a consulta.
Capítulo 2 Padrões Overriding Poder da consulta 23

Forçar Tipos de Data


Um enorme problema para os profissionais de Excel, particularmente aqueles fora dos Estados Unidos, está importando datas e fazê-los correta.

Depois que os dados está em Excel, as datas não são grande problema. Não importa onde o livro vai, as datas tornará cor- rectamente e pode ser
facilmente ligado para exibir no formato das necessidades do leitor, em qualquer lugar do mundo eles são ou qualquer que seja o padrão que deseja
seguir. A dificuldade está em importar os dados que representam datas em primeiro lugar. O problema é que Excel e Power consulta precisa interpretar a
data a partir da fonte de dados externa, a mina deter- que data é, e retornar o número de série de data correta. O que torna o trabalho difícil é o fato de
que nem todos os softwares que usamos em nossas tarefas diárias é escrito usando os mesmos padrões de data que o nosso país usa como padrão. Na
verdade, se há uma incompatibilidade entre a fonte de dados e as configurações regionais no seu PC, você terá problemas.

Os exemplos e ilustrações neste capítulo foram construídos usando um PC com um formato padrão de data dos EUA. Se as
configurações do sistema estão em um formato diferente, os resultados podem ser diferentes do que é mostrado aqui.

Demonstrando Issues Data


A ver este problema, siga estes passos:

• Iniciar um novo → consulta De → Arquivo de Texto

• Procure e abertos Exemplos CH02 \ Dates.txt

O ponto de vista que você começa depende das configurações regionais do Windows em seu PC. Se você tem suas definições configuradas para usar a data dos
EUA padrão MM / DD / AAAA, sua importação aparecerá como mostrado abaixo. Se o seu sistema usa uma configuração DD / MM / AAAA, no entanto, você verá
que a primeira coluna será alinhado à esquerda, ea segunda coluna será alinhado à direita.

Figura 31 Datas importados e formatado usando os padrões dos EUA.

Alterar o formato da coluna alinhado à esquerda para Data clicando com o botão direito e escolha Alterar tipo → Data. O resultado deve ser
semelhante à mostrada abaixo (embora a coluna que você selecionou podem variar):

Figura 32 Aplicando um formato de data a dados provenientes de uma região diferente.

Observe que um par de questões se apresentam imediatamente. Primeiro, os dias e os meses aparecem invertidas e, segundo, você obter
erros na coluna.

Com as configurações regionais do Windows definidos para MM / DD / AAAA, Poder consulta tenta interpretar todas as datas em que esteira do para-. E
quando ela atinge uma data como 17/6/2015, ele lança um erro, porque há apenas 12 meses no ano.
24 M é para (dados) do macaco

Corrigindo problemas de Data

O segredo para evitar os problemas que acabamos de discutir está dizendo explicitamente Poder consulta o formato dos dados que estão sendo importados. E,
embora seja fácil de fazer isso quando você sabe como, a terminologia utilizada para rotular este recurso não foi colocada em termos que os profissionais de Excel
reconhecem.

Para forçar Poder consulta para ler as datas usando a configuração correta para cada coluna, siga estes passos:

• Remova a passo tipo alterado existente

• Direito do mouse no MM / DD / AAAA coluna → Alterar tipo → Usando Locale

• Alterar o tipo de dados para Data

• Alterar a localidade para Inglês (Estados Unidos), como mostrado abaixo

• Direito do mouse no DD / MM / AAAA coluna → Alterar tipo → Usando Locale

• Alterar o tipo de dados para Data

• Alterar a localidade para Inglês (Reino Unido)

Figura 33 Configuração da região seus dados vem.

Como mostrado abaixo, agora as datas tudo tornar consistentemente de acordo com o formato declarado nas tings set- regionais de seu Painel de
Controle do Windows. Isso ocorre porque as datas, não importa seu formato original, foram convertidos para as definições de data em seu sistema.

A Figura 34 uma vista coerente de datas originalmente contida em dois formatos diferentes.

Se você não sabe qual padrão data de seu país utiliza, experimentar e escolher um que retorna os resultados corretos.

Se houver qualquer possibilidade de que seus dados podem ser enviados para alguém usando diferentes configurações regionais, é altamente aconselhável que
você forçar os formatos de entrada data. Isto irá eliminar a possibilidade de erros surpreendentes que ocorrem e é uma prática que seguimos ao longo deste livro.
Capítulo 2 Padrões Overriding Poder da consulta 25

Agora você pode finalizar esta consulta, indo para Home → Close & Load, e você pode editar a consulta MalformedCSV para forçar as datas para carregar
corretamente:

• No painel a pasta de trabalho Consultas, clique com o botão direito na consulta MalformedCSV → Editar

• Direito do mouse no trandate coluna → Alterar tipo → Usando Locale

• Definir a Data → Inglês (Estados Unidos) → OK

A consulta agora tem a seguinte aparência e está pronto para ser carregado para a planilha.

Figura 35 A consulta está pronto para ser carregado para a folha de cálculo.

Changed Tipo com passos de localidade não vai fundir-se com passos tipo alterado. Se um passo tipo alterado inclui uma conversão
de data, você deve remover esse passo. O motivo da consulta acima funcionou é que o passo tipo alterado não definir o tipo de
dados para a coluna trandate.
26 M é para (dados) do macaco
Capítulo 3 Operações básicas Anexar 27

Capítulo 3 Operações básicas Anexar


Um dos trabalhos que os profissionais do Excel fazer em uma base regular é anexar um arquivo para outro. Em especial nas organizações onde os dados são
compartilhados por CSV, TXT ou arquivos do Excel, o processo geralmente se resume ao seguinte:

• Importação e arquivo de transformação # 1

• Importação e arquivo de transformação # 2

• Copiar dados de arquivo # 1 e colá-lo no final do arquivo # 2

• Salve o arquivo como Consolidado

O usuário então constrói uma solução de business intelligence no arquivo consolidado. Quando o próximo mês vem junto, os dados do
arquivo mensal próxima é copiado para o arquivo consolidado, a solução é atualizado, e tudo é bom.

Mas o processo não é claramente toda a luz do sol e arco-íris, e há algumas questões muito óbvias aqui. Este capítulo não resolve a questão
de um usuário a cometer um erro nas transformações (embora capítulos futuros fazer), mas mostra-lhe como Poder consulta pode consolidar
dois ou mais conjuntos de dados, sem nunca se preocupar com um colar de usuário nos últimos linhas de dados.

Importação de Arquivos de Dados


A pasta Exemplos CH03 contém três arquivos CSV: Jan 2008.csv, Fev 2008.csv e Mar 2008.csv. Esta seção caminhadas através do processo
de importação e anexando cada arquivo. Importando os arquivos é bastante simples:

• Criar um novo → consulta De → Do arquivo CSV

• Navegue até os Exemplos CH03 \ Jan 2008.csv → Abrir

Poder consulta abre o arquivo e executa os seguintes passos automaticamente para esta fonte de dados:

• Promove a primeira linha de cabeçalhos, mostrando trandate, Conta Dept, e soma do montante.

• Define os tipos de dados até à data, número inteiro, número inteiro, e Decimal Valor. Para ser seguro, você deve remover a
passo tipo alterado e recriá-lo para forçar as datas para importar baseado no padrão dos EUA que vieram:

• Remova a passo tipo alterado


• Botão direito do mouse trandate → Alterar tipo → Usando Locale → Data → Inglês (Estados Unidos) → OK

• Botão direito do mouse Conta → Alterar tipo → Número inteiro

• Botão direito do mouse Dept → Alterar tipo → Número inteiro

• Botão direito do mouse Quantidade → Alterar tipo → número decimal

Lembre-se, se o seu formato de número é definido para exibir números negativos com um sinal - em vez de usar parênteses, você
pode ter que também tem que remover os $ sinais a partir da soma de coluna Valor antes de alterar essa coluna para um número
decimal, a fim de evitar erros. Para fazer isso, selecione o tipo alterado com o passo Locale → botão direito do mouse a soma do
montante da coluna → Substituir Valores → Substituir $ com nada. Depois de ter realizado essas etapas, selecione a etapa Tipo mudou
novamente para se certificar de que você está no final da consulta antes de continuar. Além disso, você também deve fazer as
seguintes transformações:

• Selecione a coluna trandate → Início → Reduzir linhas → remover erros

• Direito do mouse no cabeçalho da coluna trandate → Renomear → Data

• Direito do mouse no cabeçalho da coluna soma do montante → Renomear → Valor Os erros são

explorados em detalhe no Capítulo 7.


28 M é para (dados) do macaco

Neste ponto, a consulta deve olhar como mostrado abaixo.

Figura 36 A consulta Jan2008 antes de carregar para a folha de cálculo.

Vá para casa e clique em Fechar & Load para carregar a consulta Jan2008 à planilha.

agora você precisa para replicar o processo com tanto a fevereiro 2008.csv e arquivos Mar 2008.csv. A cesso de importação pro- utiliza exatamente os
mesmos passos, e quando estiver pronto, você deve ter três novas tabelas em sua pasta de trabalho Excel em tudo:

• Jan_2008

• Feb_2008

• Mar_2008

Acrescentando uma tabela para outra


Em seguida, você precisa anexar as tabelas Jan_2008 e Feb_2008. Para fazer isso, você precisa criar uma nova consulta, mas desta vez você quer uma
consulta acréscimo. Para criar um, siga estes passos:

• Excel 2016: Ir para nova consulta → Combine Consultas → Append

• Excel 2010/2013: Vá para o grupo Combine → Append

O diálogo Acrescentar aparece, e nele você pode escolher as perguntas que você gostaria de acrescentar:

Figura 37 O diálogo acrescentar.

Você precisa entender alguns truques aqui:


• Este diálogo só lhe permite combinar consultas Consultas poder, não tabelas do Excel.

• A consulta que você escolher no topo drop-down aparece primeiro na saída da consulta. Ao clicar OK abre o editor de Poder consulta com uma

nova consulta chamada Append1, que tem uma única etapa Fonte. Neste ponto, você pode ser tentado a rolar a consulta para ver se todos os seus

registros estão realmente lá. Infelizmente, isso não vai realmente funcionar. Poder consulta na verdade não carregar todos os seus dados na janela inicial;

em vez disso, mostra uma prévia de seus dados. O número de linhas que mostra varia de acordo com o número de colunas que você adicionar, mas você

pode ver isso no canto inferior esquerdo do editor de alimentação Inquérito:


Capítulo 3 Operações básicas Anexar 29

Figura 38 Poder consulta mostra quantas visualização linhas ele pode lidar no momento.

A razão para este comportamento é que o poder de consulta pode ser usado para lidar com grandes conjuntos de dados. Imagine por um segundo que você deseja
conectar-se a um conjunto de dados que tem 5 milhões de linhas, mas você só quer puxar os registros para o departamento de 150. A equipe Poder consulta
descreve a visualização como “olhando para a primeira polegada de água na mangueira de incêndio “, sob a suposição de que a prévia deve dar-lhe informações
suficientes para determinar a estrutura fundamental dos dados. Você, então, fazer suas transformações sobre os dados de visualização e criar um padrão. No
tempo de carregamento, Poder consulta processa esse padrão com os dados, puxando apenas nos registros de que precisa para dar-lhe a sua saída. Este é muito
mais eficiente do que o carregamento de todos os dados para a pasta de trabalho e, em seguida, o processamento de cada linha e coluna. Mas se você não pode
ver todos os dados, como você sabe que funcionou? A resposta é para finalizar a consulta. Veja como:

• Alterar o nome da consulta para Transações


• Vá até Home → Close & Carga

A nova tabela é criada na planilha, e você vê algumas informações-chave no painel a pasta de trabalho Consultas:

Figura 39 O painel show de pasta de trabalho Consultas que o registro conta jogo.

Ainda assim, você não deve apenas acreditar que tudo tem funcionado. Você pode criar uma tabela dinâmica para se certificar de Excel não está mentindo para
você:

• Selecione qualquer célula na tabela de Transações → Inserir → Tabela Dinâmica

• Coloque a tabela dinâmica na célula F2 da planilha atual

• Arraste Valor a área Valores


• Arraste Data para a área de linhas

Se você estiver usando Excel 2010 ou 2013, você também precisa tomar estes passos:

• Botão direito do mouse célula F3 → Grupo → por dias e meses → OK

• F3 celular clique com o botão direito → Expandir Fechar → Fechar campo inteiro

Você acaba com uma tabela dinâmica que mostra que ambas as tabelas foram de fato consolidadas em um:

transações Figura 40 janeiro e fevereiro estão agora em uma tabela dinâmica.


30 M é para (dados) do macaco

Acrescentando Tabelas adicionais


Diga que você deseja adicionar os registros de Março à consulta também. Você pode ser tentado a voltar para o mesmo local para acrescentar os
registos de Março:

Figura 41 Configuração para mesclar registros de Março.

Mas espere! Será que isso realmente funciona? Isso não vai criar uma nova consulta? Sim, isso é absolutamente o caso. Fazendo isso vai lançar uma Novo anexar
consulta, que não fará qualquer sentido. A tabela dinâmica já está construído contra a mesa de Transações, então você realmente precisa para voltar e
modificar essa tabela para acrescentar registros de Março também. Mas como você faz isso?

A resposta é para cancelar o diálogo Acrescentar mostrado acima e voltar para o painel a pasta de trabalho Consultas, onde você clica com o botão direito a
consulta Transações → Editar.

No editor de Poder Query, você pode modificar sua consulta existente. E, como acontece, há um botão realmente convidativo no separador
Base que parece promissor: o botão consultas acréscimo no grupo Combinar (o segundo grupo da direita).

Ao contrário do botão Anexar na interface do usuário Excel, o botão na interface do usuário Poder consulta pede apenas uma única tabela, uma vez que
já sabe que consultar para anexá-lo (o que você está no momento). Curiosamente, as opções incluem não só as outras consultas de energia que você
configurou, mas também a consulta que você está actualmente a construir:

Figura 42 Opções para acrescentar incluem a tabela que você está trabalhando.

Selecionando a tabela listada como atual seria anexar uma cópia da consulta a esse ponto, essencialmente duplicando o conjunto de
dados. Enquanto isso não é certamente algo que a maioria dos usuários usaria em uma base freqüente, é bom saber que existe a
capacidade.

Neste ponto, você deve escolher a consulta Mar 2008, e será anexado à consulta Transações que já detém registros de janeiro e
fevereiro:

• Selecione março 2008 → OK

• Vá até Home → Close & Carga


Capítulo 3 Operações básicas Anexar 31

Agora você vê um problema infeliz com consultas Poder de consulta. Quando você olha para a planilha que contém a tabela dinâmica, você pode ver
que a consulta Transações (e, portanto, a tabela de Excel) não realizar todas as 6.084 linhas-os totais combinados dos três conjuntos de dados
anteriores. No entanto, a tabela dinâmica não mudou:

Figura 43 A tabela ações Transações actualiza, no entanto, a tabela dinâmica não tem.

Este é um pequeno inconveniente, mas você vai precisar atualizar a tabela dinâmica, bem, a fim de ter os valores atualizados fluir. Para fazer isso,
clique com o botão direito na tabela dinâmica → Atualizar. E ele, de fato, atualizar:

Figura 44 A de janeiro a março registros estão mostrando agora em uma única tabela dinâmica.

Combinando consultas com diferentes cabeçalhos


Quando você está anexando consultas, desde que os cabeçalhos das consultas serem combinados são idênticos, a segunda consulta só vai ser
anexado ao primeiro, como seria de esperar. Mas e se as colunas não têm os mesmos cabeçalhos de coluna?

No caso da imagem abaixo, o usuário esqueceu de mudar o nome da coluna trandate na consulta março 2008. coisa Every- foi tão bom como o
usuário se fundiu os registros de Janeiro de 2008 e Fev 2008 juntos. Mas quando o usuário anexado os registros Mar 2008 para a mesa, as coisas
quebrou:

Figura 45 A coluna trandate cheio de valores nulos em janeiro e a coluna Data cheio de valores nulos em março.
32 M é para (dados) do macaco

Quando você anexar uma tabela para outra, Poder consulta carrega os dados da primeira consulta. Em seguida, ele verifica a linha de cabeçalho da segunda

consulta e todas as consultas subsequentes. Se qualquer um dos cabeçalhos não estão presentes nos resultados obtidos até à data, Poder consulta acrescenta

a nova coluna (s). Em seguida, preenche a ficha apropriada em cada coluna, para cada conjunto de dados, preenchendo todas as lacunas com nulo valores. No

cenário acima, isto significa que a coluna é enchida com Trandate nulo se os valores em janeiro, desde a consulta janeiro 2008 não tem uma coluna trandate.

Por outro lado, porque o usuário esqueceu de mudar o nome da coluna trandate, a consulta março 2008 não tem nenhuma coluna Data. Por esta
razão, a coluna Data é preenchido com nulo valores para cada registro de março, enquanto a coluna trandate detém os valores que foram destinados
a ser na coluna Data. A correção para isso é fazer o seguinte:

• Ir para o painel a pasta de trabalho Consultas → botão direito do mouse a consulta março 2008 → Editar

• Botão direito do mouse na coluna trandate → Renomear → Data

• Salve a consulta março 2008

• Ir para o painel a pasta de trabalho Consultas → botão direito do mouse a consulta Transações → Editar

Assim que você abrir a consulta Transações, você vê que ele já se fixo.

Implicações de acrescentar consultas


As implicações da capacidade de acrescentar consultas são numerosos. Considere por um segundo que você tem apenas estendeu a mão para três arquivos
separados, importados eles, combinou-os em uma única tabela, e construiu uma tabela dinâmica a partir deles. Essa é uma tabela dinâmica a partir de três
arquivos separados.

E quando você quiser atualizar a solução, você simplesmente precisa ir para Dados → Atualizar tudo para atualizá-la. Poder consulta começa a
atualização da tabela de Transações, que começa a atualização das três tabelas de dados individuais para alimentá-lo.

Suponha agora que esta solução foi construído em arquivos que não estavam data específica, mas foram em vez do produto 1, o produto 2, e do Produto
3. Diga que você construiu uma solução de carregamento nos arquivos CSV que detêm os dados pertinentes, e que você construiu uma tabela dinâmica
contra eles. E então o próximo mês vem. . . e o departamento de TI envia arquivos de substituição com novas operações para cada produto.

Você salvar o novo arquivo do produto 1 sobre o antigo, e você faz o mesmo para o produto 2 e do Produto 3. Em seguida, clicar em Atualizar tudo, e
está feito.

Sério, deixe que afundar por um momento: Você está feito.

Você cortou seu tempo de trabalho para uma fração do que foi exigido no processo anterior, e não há nenhum risco de ter os usuários acidentalmente colar
sobre os dados existentes, como o poder de consulta não funciona usando cortar e colar. Ele simplesmente acrescenta um conjunto para o outro e remove os
cabeçalhos duplicados. Você pega o melhor de ambos velocidade e consistência em uma única solução.

Note, no entanto, que o processo de anexação de consultas não é específico para trabalhar com CSV externo ou arquivos TXT. Dizer que você tem
tabelas de transações, tais como os certificados de presente promocionais de sua empresa tenha emitido este ano. O autor do livro montou 12
mesas, uma para cada mês do ano, armazenados em planilhas separadas. Você pode ver que, neste caso, você pode facilmente consolidar essas
tabelas individuais em uma lista mestra para análise.
Capítulo 4 importação de todos os arquivos em uma pasta 33

Capítulo 4 importação de todos os arquivos em uma pasta

A maneira clássica que os profissionais de Excel lidar com a importação de todos os arquivos em uma pasta é incrivelmente tedioso e propenso a erros.
Cada arquivo precisa ser importado, transformado, copiado e colado na tabela mestre. Dependendo de quão grande e complexo as transformações são,
quantos arquivos existem, e quanto tempo as soluções já estão a funcionar, este processo pode ser aterrorizante.

Você já viu esse Poder consulta pode eliminar os perigos copiar / colar envolvidos com a importação e anexando arquivos em uma
base um-por-um, mas que sobre estas questões muito graves:

• Importação de vários arquivos é tedioso.

• Repetindo os passos de transformação complexos é propenso a erros.

A boa notícia é que o poder de consulta tem uma maneira de lidar com ambas as questões também.

Este capítulo centra-se na importação de arquivos binários, como TXT e CSV. Capítulo 5 abrange dados ing importação de
vários livros.

Abastecimento de todos os arquivos em uma pasta


Os arquivos de exemplo para este capítulo foi dividido em quatro subpastas:

• Início
• 2008 - Mais
• 2009

• 2010

Cada pasta contém uma variedade de arquivos de texto que você vai combinar.

Extrair os arquivos Listing


Para começar, abra um livro em branco:

• Iniciar um novo → consulta De → Arquivo de Pasta

• Clique em Procurar

Você é apresentado com o diálogo que Poder consulta usa para selecionar pastas.

• Localize os exemplos CH04 \ begin pasta → selecione-→ OK (para fechar o diálogo pasta picker)

• Clique em OK (para carregar a pasta para poder consulta)

agora você vê uma nova janela Poder Query. Desta vez, as coisas parecem bem diferentes do que aquilo que tenho visto até agora. Em vez de transações, você
verá uma lista de arquivos e suas propriedades:

Figura 46 A lista de arquivos na pasta começar.

Future-Proofing Seleção de arquivo


Neste capítulo, você estará combinando todos os arquivos CSV das quatro pastas. Antes de ir mais longe, você deve filtrar essa lista para garantir que
apenas os arquivos CSV estão presentes. Mesmo que você veja apenas os arquivos CSV na tela acima, você nunca sabe quando alguém vai decidir
armazenar um livro do Excel nesta pasta. Se isso acontecer, é certo quebrar sua solução direita quando você está no seu mais movimentado. Para a
quantidade de esforço necessário, um pouco de futuro à prova vale bem a pena o tempo.

Para filtrar para apenas arquivos CSV, você normalmente clique na seta filtro na coluna de extensão, desmarque a (Selecionar tudo) opção, e
depois verificar CSV. Infelizmente, porque você só tem arquivos CSV na lista agora, fazendo
34 M é para (dados) do macaco

que verifica novamente a opção, que não vai ajudar (All Selecionar). Você está indo a necessidade de ir um pouco mais fundo para proteger-se aqui e
forçar o seu filtro para CSV.

Antes de fazer isso, no entanto, você também precisa se proteger contra acidentalmente filtrar arquivos “CSV” quando você filtro para “CSV” (como filtros
de texto são case sensitive). Para lidar com isso, siga estes passos:

• Botão direito do mouse na coluna de Extensão → Transformar → Minúsculas

• Escolha da coluna Extension Filtros filtro de seta → texto → Igual

• Definir o filtro para Igual .csv

Não se esqueça o período na frente do CSV! Se você esquecê-lo, você não terá nenhuma arquivos, como CSV não é o mesmo como .csv.

• Clique OK

Mesmo que as coisas não parecem diferentes depois de tomar estes passos, você agora forçado o sistema para aceitar somente arquivos CSV
para suas operações, reduzindo a chance de dados contaminados explodir a sua solução.

combinando Arquivos
Agora chegou a hora de combinar arquivos. Desde que você está trabalhando com arquivos binários, como TXT ou CSV, este é incrivelmente fácil uma
vez que você sabe o truque.

Combinando o conjunto de arquivos inicial

Tome um olhar cuidadoso sobre os ícones nas três primeiras colunas da consulta atual:

Figura 47 As primeiras três colunas da consulta corrente.

A coluna Nome mostra um ícone de filtro não filtrado, e a coluna de extensão mostra um filtro que está a ser utilizado actualmente. Mas o que
sobre a coluna de conteúdo? O que é esse ícone? Está incrível, é isso que é. Esse botão pequenino aparece em colunas contendo arquivos
binários, e quando você clicar nele, a mágica acontece:

Figura 48 mágica em acção (combinando binários).

UMA muito de coisa acontece quando você clicar nesse botão mágico, e olhando para a caixa de Passos Aplicadas permite refazer tudo.
Capítulo 4 importação de todos os arquivos em uma pasta 35

Neste exemplo, nós estávamos nas linhas filtradas passo quando clicado. De lá Consulta poder combinado de todos os arquivos individuais em um CSV
maciça, importado, digitalizados-lo, promoveu a primeira linha de cabeçalhos, e fez um palpite sobre os tipos de dados. Tudo isso aconteceu com o clique
de um botão minúsculo! Que parece bom demais para ser verdade, e, naturalmente, a janela de visualização está dizendo que você tem 999+ linhas, para
que você não pode mesmo verificar que ele trabalhou. Você precisa finalizar essa consulta e gire-a para que possa tranquilizar-se que este está
funcionando. Siga esses passos:

• Remova a passo tipo alterado


• Botão direito do mouse trandate → Alterar tipo → Usando Locale → Data → Inglês (Estados Unidos) → OK

• Botão direito do mouse Conta → Alterar tipo → Número inteiro

• Botão direito do mouse Dept → Alterar tipo → Número inteiro

• Botão direito do mouse Quantidade → Alterar tipo → número decimal

• Mudar o nome da consulta a partir Query1 (ou Comece em 2013) para Transações

• Selecione trandate → Início → Reduzir linhas → remover erros

• Botão direito do mouse trandate → Rename → Data

• Botão direito do mouse soma do montante → Rename → Valor

• Início → Close & Carga

Os dados terras 6.084 linhas em uma planilha do Excel, que parece promissor. Agora você pode girar-lo:

• Selecione uma célula na tabela → Inserir → Tabela Dinâmica

• Criar a tabela dinâmica na mesma planilha na célula F2

• Arraste Valor a Values

• Arraste Data de linhas

• Botão direito do mouse F3 → Grupo → Selecionar meses e anos → OK

Você pode ver abaixo que você está realmente olhando para os dados de todos os três arquivos, e você não tem que pré-im- porta de cada arquivo e, em seguida,
anexá-los manualmente!

Figura 49 Dados representando todos os arquivos importados de uma única pasta.

Adicionando mais arquivos

Uma das coisas que faz o poder de consulta tão grande é a capacidade de atualizar uma solução à vontade e vê-lo trabalhar. Até agora neste livro
os exemplos têm sido alvo de arquivos específicos e, sem alterar os detalhes dos arquivos, é difícil ver que uma atualização tem qualquer efeito.
Isso muda agora.

Volte para a pasta Exemplo CH04 Files. Lembre-se que havia quatro pastas em lá, e você alvo uma solução contra a pasta começar. Agora
você está indo para simular o processo de adicionar novos arquivos para a solução:

• Arraste a 2008 - Mais pasta para a pasta Begin


• Voltar para Excel → Dados → Atualizar tudo

Poder de consulta tem início o processo de atualização e atualiza a tabela de Transações, mostrando que ele foi carregado
25.700 linhas. No entanto, mais uma vez, a tabela dinâmica não atualiza:
36 M é para (dados) do macaco

Figura 50 Claramente você tem mais arquivos, mas porque eles não estão na tabela dinâmica?

É um reparo fácil. De qualquer botão direito do mouse a tabela dinâmica → Atualizar, ou simplesmente usar dados → Atualizar tudo novamente. Aqui está o que
você acabar com:

Figura 51 A tabela dinâmica atualiza corretamente, provando que você puxou nos registros.

Que tal você adicionar ainda mais arquivos?

• Arraste a pasta 2009 para a pasta Begin

• Arraste a pasta 2010 para a pasta Begin

• Voltar para Excel → Dados → Atualizar tudo → Atualizar tudo

Usando um double Atualizar tudo abordagem funciona bem para pequenos conjuntos de dados. Quando começam grande, no entanto, você pode

querer usar VBA para automatizar o processo de refrescar as consultas em primeiro lugar e as Tabelas Pivot- segundo, como que evita chamadas

duplicados para a fonte de dados. Este tópico é coberto no Capítulo 16. mágica absoluta!
Capítulo 4 importação de todos os arquivos em uma pasta 37

Figura 52 60.136 registros no clique de um botão (ou dois).

Com uma solução construída desta maneira, tudo que você tem que fazer a cada mês é adicionar seus arquivos de dados para a subpasta como você recebê-los e,
em seguida, atualizar a solução.

Recursão
Um dos fatores realmente interessantes desta solução é que você não precisa soltar os arquivos diretamente na raiz da pasta Comece a fim de tê-los
puxado para dentro da solução de energia Query. Poder consulta pratica recursão por padrão, o que significa que ele examina a pasta e todas as suas
subpastas para arquivos. Isso permite que você mantenha seus arquivos de dados subclassificado por ano, se desejar, e a solução ainda vai
funcionar.

Se você voltar atrás e editar a consulta, atualizar a pré-visualização e, em seguida, retornar para a etapa Fonte, você vê que o caminho da pasta
para cada arquivo também é listado na coluna Caminho da pasta. Usando isso, você pode filtrar para incluir apenas a pasta raiz ou excluir
determinados subpastas deve surgir essa necessidade.

Preservar propriedades do arquivo em Import


Ser capaz de importar todos os arquivos de uma só vez é uma enorme economia de tempo, mas considere o seguinte cenário do mundo real. Um sistema foi
configurado para exportar uma lista de transações para um arquivo e nomeá-lo com base no último mês e do ano (por exemplo, Feb 2008.csv). A questão, neste
caso particular é que o sistema não foi configurado para incluir uma data de transação dentro do arquivo, como todas as operações foram assumidas como
sendo a data do final do mês. O utilizador que importou esses arquivos era esperado para importar todas as transações e coloque a data no final do mês
apropriado em cada linha, e ele teve pena de arquivos de dois anos para processar. Infelizmente, quando se combina arquivos usando o método descrito
anteriormente neste capítulo para combinar binários, você perderá o acesso aos nomes de arquivos, que eram um componente-chave na resolução deste
solução.

Isso significa que você não pode usar o poder de consulta para fazer o trabalho? De modo nenhum. Você só precisa usar alguns truques diferentes, descritas a
seguir.

Configurando o Import
Os passos iniciais na criação de importação são os mesmos, conforme descrito anteriormente neste capítulo, com a única dife- rença é que você agora vai
ter uma grande lista de arquivos (desde que se mudou as pastas extras para a pasta Início). Comece seguindo estas etapas, que são os mesmos que você
tomou anteriormente:

• Nova consulta → Do arquivo → De Pasta

• Selecione a pasta Begin

• Botão direito do mouse na coluna de Extensão → Transformar → Minúsculas

• Escolha da coluna Extension Filtros filtro de seta → texto → Igual → Igual .csv
38 M é para (dados) do macaco

A partir daqui, as coisas mudam a partir do que você fez antes

Removendo colunas estranhas


Há uma série de colunas no editor de Poder de consulta agora, e você realmente não precisa deles para os próximos passos. Você deve se livrar dos
irrelevantes para que você possa se concentrar sobre os que realmente importa:

• Selecione a coluna Nome → segure Ctrl → selecione a coluna Conteúdo

• Botão direito do mouse uma das colunas → Retirar outras colunas

Poder consulta funciona como um gravador de macro seqüencial, processamento de cada etapa antes de prosseguir. Isto significa que, ao
contrário do Excel, ele não necessita de colunas precedentes para ficar por perto. Dado que, e porque você já filtrado arquivos CSV, você
pode remover essa coluna também.

Estes passos teve dois efeitos. A primeira é que você removeu todas as colunas estranhas na forma mais fácil possível (que é mais futuro-prova no
caso da equipa poder de consulta decide adicionar outra coluna para este ponto de vista em uma atualização futura). Em segundo lugar, por causa da
ordem em que você selecionou as colunas, você virou a ordem em que eles são apresentados no editor de Poder de consulta, como mostrado abaixo:

Figura 53 Colunas diluída para baixo e reordenado no editor de Poder Query.

Convertendo texto para datas


A próxima tarefa é converter os nomes de arquivos em datas válidas para o final do mês. Poder consulta realmente tem algumas instalações muito boas para
isso, mas em ordem para que eles funcionem, os dados precisam olhar como uma data, o que leva um par de truques:

• Botão direito do mouse na coluna Nome → Substituir Valores

• Definir valor encontrar para .csv → deixar Substituir por em branco → OK

• Botão direito do mouse na coluna Nome → Substituir Valores

• Definir valor encontrar para um único espaço → set Substituir para “1” (número espaço um espaço, mas vírgula sem as
aspas) → OK Os dados agora deve ser a seguinte:

Figura 54 Os dados que se parece com uma data, mas ainda é texto.

Neste ponto, você pode forçar os dados para ser uma data válida e incrementá-lo para o último dia do mês:

• Botão direito do mouse na coluna Nome → Alterar tipo → Data

• Vá para o Transform guia → Data → mês → no final do mês

• Botão direito do mouse na coluna Nome → Renomear → Data

Agora você tem as datas de final de mês preparados para se fundir com seus registros transacionais:
Capítulo 4 importação de todos os arquivos em uma pasta 39

Figura 55 datas apropriadas na coluna Data.

Não há necessidade de forçar este conjunto de datas para importar usando configurações de localidade, como o poder de consulta irá reconhecer
corretamente uma data texto completo.

Mesclando propriedades de arquivo com conteúdo binário


Neste ponto você está pronto para fundir as datas de final de mês com todas as linhas dentro dos arquivos binários. O grande desafio é que, ao clicar
no botão Combine Binários apenas joga fora a coluna Data que você trabalhou tão duro. Então, você precisa extrair o conteúdo de cada arquivo
binário. Aqui está o que você faz:

• Vá para a guia Add Column → Adicionar coluna personalizada

• Insira a seguinte fórmula:


= Csv.Document ([conteúdo])
• Clique OK

fórmulas da consulta poder são maiúsculas de minúsculas, portanto certifique-se de que tudo está encaixotado corretamente, ou não vai funcionar.

Se você não quiser digitar um nome de campo longo, você pode simplesmente clicar duas vezes nele na lista de campos quando você está
construindo sua fórmula de coluna personalizado. Isto irá colocar a lista de campos em sua fórmula, cercado por colchetes.

O resultado é uma nova coluna chamada personalizada, que é preenchido com um monte de tabelas:

Figura 56 Uma coluna de tabelas.

Pare e pense sobre essa fórmula por um segundo. A função Csv.Document () é a função que você pode usar para transformar o conteúdo de um arquivo binário
em uma mesa. [Conteúdo] refere-se simplesmente para o nome da coluna.

Embora você possa esperar uma, não há nenhuma função Txt.Document (). Se você deseja converter o conteúdo de um arquivo de
texto em uma tabela, você usa a função Csv.Document ().

Para ver o que está dentro de um desses arquivos, clique no espaço em branco ao lado da palavra Tabela. (Se você realmente clique na palavra de mesa, Poder
consulta irá perfurar na tabela, mas se você clicar com o lado direito, você verá uma pré-visualização na parte inferior da tela, como mostrado abaixo.)
40 M é para (dados) do macaco

Figura 57 A pré-visualização do conteúdo de arquivos binários Fev 2009 em formato de tabela.

Com esse conteúdo agora disponível para você, como você chegar a ele? Primeiro, limpar o ruído clicando na coluna Conteúdo →
Remover.

É finalmente tempo. Há um pequeno novo símbolo de duas pontas de seta no canto superior direito da coluna personalizado. Clique nele e você terá o seguinte:

A Figura 58 Expandindo tabelas em colunas.

Esta caixa de diálogo permite que você escolha quais colunas a se expandir. Se houvesse colunas que você não quer, você poderia simplesmente
desmarcá-los. Você já viu através da pré-visualização que cada uma dessas quatro colunas contém informações úteis, portanto, neste caso, você pode
mantê-los todos.

A única mudança que você quer fazer aqui é para desmarcar a Use nome original da coluna como a caixa Prefixo check. Se você deixar este conjunto, Poder
consulta irá anteceder cada coluna com personalizada, de modo a obter Custom.Column1, Custom.Column2, e assim por diante.

Quando você clica em OK, suas colunas todos expandir, mas desta vez Poder consulta preserva a coluna Data (ao contrário apresentam os binários
Combine, que removeu):

Figura 59 As datas ficar em torno de quando a coluna é expandido.


Capítulo 4 importação de todos os arquivos em uma pasta 41

É lamentável que o Poder consulta não tenta tomar quaisquer liberdades e ajudá-lo com os tipos de dados e tal aqui. Você tem que fazer isso limpeza
manual si mesmo, mas pelo menos isso é uma coisa de uma só vez, como ela só vai atualizar no futuro. Aqui está o que você precisa fazer:

• Vá para o Transform guia → Use primeira linha como cabeçalhos

• Botão direito do mouse Coluna 1 → Rename → fim de mês

• Botão direito do mouse trandate → Alterar tipo → Usando Locale → Data → Inglês (US)

• Selecione trandate → Início → Reduzir linhas → remover erros

• Botão direito do mouse trandate → Rename → Data

• Botão direito do mouse soma do montante → Rename → Valor

• Botão direito do mouse Conta → Alterar tipo → Número inteiro

• Botão direito do mouse Dept → Alterar tipo → Número inteiro

• Botão direito do mouse Quantidade → Alterar tipo → número decimal A consulta está

agora em forma para ser consistente com a saída anterior:

Figura 60 Todos os arquivos importados de uma pasta, preservando os dados com base nas propriedades do arquivo.

Finalmente, você pode concluir a consulta:

• Alterar o nome consulta para ManualCombine

• Início → Close & Carga

• E, neste ponto você pode construir uma tabela dinâmica e provar que ele corresponda os resultados que você tem na seção
pré-Vious, com a única diferença é que você incluiu um novo campo que foi derivado do propriedades de algo que é impossível
usar o fácil Combine método binários.

Implicações da do recurso de pasta


A importação de arquivos numa base individual, conforme descrito no Capítulo 2 é geralmente a forma como as pessoas começar a construir soluções de consultas
de energia. Essa abordagem pode funcionar bem em qualquer um dos seguintes cenários:

• Quando o conjunto de dados vai crescer lentamente ao longo do tempo

• Quando os requisitos de transformação são diferentes para cada arquivo na pasta

• Onde você não percebeu que a solução seria expandir ao longo de vários arquivos

Se, no entanto, você suspeitar que uma solução pode crescer para ser maior do que um ficheiro, e a configuração de dados será sistente con-, não há
nada para impedi-lo de usar a abordagem neste capítulo como segue:

• Configurar uma subpasta

• Mova seu único arquivo para essa pasta

• Alavancar o Importar de funcionalidade Pasta contra a subpasta


Sim, há apenas um arquivo lá hoje, mas e daí? Como você obtém novos arquivos que pertencem à solução, você simplesmente jogá-los na subpasta, e eles

são instantaneamente parte de sua solução! Às vezes, um pouco de clarividência pode percorrer um longo caminho na construção de soluções que resistir ao

teste do tempo.
42 M é para (dados) do macaco
Capítulo 5 Agregando Excel Planilhas 43

Capítulo 5 Agregando Excel Planilhas


Até agora, cada uma das técnicas demonstradas para acrescentar dados foi baseado em puxando dados do CSV externo ou arquivos TXT. Como qualquer
pro Excel sabe, no entanto, o mundo dos dados é muito maior do que apenas esses tipos de arquivos. Há uma enorme quantidade de dados armazenados
dentro de arquivos do Excel, bem como, e você precisa a capacidade de combinar essas fontes de dados em conjunto. Por exemplo, você pode querer ser
capaz de anexar todas as tabelas em um livro. Ou você pode querer ser capaz de acrescentar todas as planilhas em uma pasta de trabalho (onde as tabelas
não foram criadas). E, naturalmente, você precisa ser capaz de atingir esses objetivos de dentro da pasta de trabalho ativa ou de um externo.

Enquanto a boa notícia é que esses feitos podem ser realizadas, a má notícia é que não há nenhuma maneira fácil de realizar essas tarefas
através da interface de usuário padrão. Cada um deles exige alguma manipulação menor do Poder Consulta fórmula bar-embora nada mais
grave do que o que você viu até agora. É importante entender aqui que os métodos para lidar com dados em sua pasta de trabalho ativa são
bastante diferentes daqueles para puxar dados de um arquivo externo.

Agregando Tabelas e Ranges no arquivo atual


Puxando dados de dentro das obras arquivo atual como este:

• Comece com uma consulta em branco

• Digite a seguinte função na barra de fórmulas de alimentação Inquérito:

= Excel.CurrentWorkbook ()
• Filtrar e expandir as tabelas ou intervalos que você precisa Este

processo dá-lhe acesso aos seguintes objetos:

• tabelas do Excel

• intervalos nomeados

• conexões de pasta de trabalho

Infelizmente, este processo não permite que você para enumerar todas as planilhas no arquivo.

consolidando Tabelas
Vejamos alguns exemplos específicos, começando com o CH05 Exemplo Files \ Consolidar Tabelas-Start.xlsx. Neste arquivo você encontrará três

planilhas que listam certificados de presente emitidos por um spa para o mês atual. O funcionário que criou a pasta de trabalho não adicionou nenhum

datas de emissão dos certificados, embora ela tinha obedientemente criar nomes de tabela no formato Jan_2008, Feb_2008, e assim por diante.

Para analisar essas operações, os dados, obviamente, precisa de ser consolidada e Power consulta é a ferramenta perfeita para fazer isso.
Vamos começar:

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Digite o seguinte na barra de fórmula:


= Excel.CurrentWorkbook ()
agora você vê a sua lista de tabelas:

Figura 61 A lista de tabelas na pasta de trabalho atual.


44 M é para (dados) do macaco

Como você aprendeu no Capítulo 4, você pode clicar no espaço em branco ao lado das palavras verdes escuras na coluna Conteúdo para visualizar os
dados. Você também sabe que se você clicar na seta dupla na parte superior dessa coluna, você será capaz de expandir as colunas das tabelas sem
perder detalhes da coluna Nome. Aqui está o que você faz:

• Clique na seta dupla para expandir a coluna de conteúdo


• Desmarque a opção Use Coluna Original Nome como Prefixo → OK

Os dados se expande muito bem, mantendo a coluna nome no lugar, permitindo-lhe continuar e converter os nomes de tabela em datas:

• Botão direito do mouse na coluna Nome → Substituir Valores

• Substituir o caractere _ com “1” (número espaço um espaço, mas vírgula sem as aspas)

• Botão direito do mouse na coluna Nome → Alterar tipo → Data

• Vá para o Transform guia → Data → mês → no final do mês

• Botão direito do mouse na coluna Nome → Rename → fim de mês

• Alterar o nome da consulta para Gift Certificates A consulta

concluída agora é o seguinte:

Figura 62 consulta concluído, pronto para ir.

Tudo parece ser bom aqui, mas quando você escolhe Close & Load, você acionar um monte de erros:

Figura 63 Parecia tão bom! Como pode haver 62 erros?

Então o que aconteceu? Voltar e percorrer a consulta clicando com o botão direito do certificado de presente consulta → Editar → Selecione a etapa Fonte.
Neste ponto, você vai perceber que você tem mais uma tabela listada do que você fez antes. É tabela de Certificados de presente que foi criado como
uma saída dessa consulta!
Capítulo 5 Agregando Excel Planilhas 45

Figura 64 A consulta finalizado aparece na lista de tabelas.

Ao usar = Excel.CurrentWorkbook () para enumerar as tabelas ou intervalos, lembre-se que a consulta de saída também será reconhecido após a
atualização. Para lidar com isso, algumas etapas futuro-impermeabilização pode ser quired re-, dependendo de como você construiu sua consulta.
Estes passos podem incluir filtragem para evitar a duplicação ou erros potencial, mudando os tipos de dados, ou alterar qualquer outra coisa que
você configure com antecedência para se proteger contra as possibilidades de seu quebra consulta.

Agora você deve passar por cada etapa da consulta, prestando atenção ao que acontece. Quando você chegar à etapa Valor Substituído, desloque-se

para a linha 63. Você percebeu alguma coisa perigosa desdobramento aqui?

Figura 65 problemas que surgem nos valores a ser convertido em datas.

Quando a etapa Tipos Changed é avaliado seguinte, ele tenta converter todos os dados na coluna Nome de datas, o que, obviamente, não pode fazer
para presente 1, Certificados. Em vez disso, ele coloca um valor de erro na coluna para cada célula que contém o texto:

Figura 66 datas inválidos convertidos em erros.

Esta questão realmente funciona em seu favor, como tudo da tabela de Certificados de presente é uma duplicação dos dados. Com as linhas
jogando erros, você pode simplesmente filtrá-los:

• Certifique-se a etapa de tipo alterado é selecionado

• Selecione a coluna Nome → Início → Reduzir linhas → remover erros

• Confirmar que você gostaria de inserir um novo passo para o meio da sua consulta

• Vá até Home → Close & Carga


46 M é para (dados) do macaco

Com a filtragem feito, você obter um resultado positivo de Energia


Consulta carregando apenas 62 linhas de dados-sem erros.

A Figura 67 Existem 62 linhas carregadas a partir de 3 tabelas.

Consolidando Intervalos e Planilhas


Agora, o que se as planilhas não têm mesas, mas o funcionário chamado as planilhas em vez disso? Nesse caso, você pode consolidar todas as planilhas? Sim,

mas como mencionado anteriormente, não existe a possibilidade built-in para fazer isso. Em vez disso, você tem que fazer uso da capacidade de falar com

intervalos nomeados, chamando um intervalo nomeado específico. O truque é definir uma área de impressão. Por quê? Porque o nome de área de impressão é, de

fato, um nome de intervalo dinâmico. Assim, para puxar um intervalo de impressão para poder Query, você precisa seguir os passos para se conectar a uma

dinâmica intervalo nomeado, conforme explicado no Capítulo 1:

• Selecione Jan 2008 planilha → ir para o layout da página da guia → Imprimir Títulos

• Na caixa de área de impressão digitar A: D → OK

• Repita esse processo para as planilhas Fev 2008 e Mar 2008


• Criar um novo → consulta De Outras Fontes → consulta em branco

• Digite o seguinte na barra de fórmulas:


= Excel.CurrentWorkbook ()
Agora você verá uma lista de todas as tabelas e intervalos nomeados, incluindo as áreas de impressão!

A Figura 68 Excel.CurrentWorkbook () mostrando as áreas de impressão.

Você está atualmente com ambas as tabelas e as áreas de impressão, mas você pode filtrar esse baixo e expandi-lo para ver o que você tem:

• Filtrar os filtros de nome de coluna → texto → Termina Com → Print_Area → OK

• Clique no botão Expandir no topo da coluna de conteúdo


• Deixe todas as colunas selecionadas → desmarque o Uso nome original da coluna como Prefixo → OK Observe que as coisas são diferentes

aqui. Você tem toda a planilha, incluindo cada coluna em sua faixa de impressão:

Figura 69 Um olhar cru na planilha.


Capítulo 5 Agregando Excel Planilhas 47

Isto, obviamente, significa que a limpeza mais dados precisa ser feito, a fim de agregar esses intervalos e transformá-los em mesas limpas, mas a
boa notícia é que ele pode ser feito. Para limpar esse conjunto de dados particular, siga estes passos:

• Vá até Home → remover linhas → Remover linhas superiores → 2 → OK

• Transformar → Use primeira linha como cabeçalhos

• Filtrar a Cert Número coluna → desmarque nulo


• Direito do mouse no Cert Número coluna → Alterar tipo → Número inteiro
• Selecione a coluna Cert Número

• Vá até Home → Reduzir linhas → remover erros → OK


• Selecione o número Cert coluna → pressione Shift → selecione a coluna de serviço

• Botão direito do mouse um dos cabeçalhos de coluna selecionados → Retirar outras colunas

• Alterar o nome consulta para AllSheets → OK

• Vá até Home → Close & Carga

Quando se trabalha com áreas de impressão, é uma boa idéia para tentar restringir a área de impressão para apenas as linhas e colunas que você
precisa-por duas razões. A primeira razão é que leva Poder consulta mais tempo para processar mais pontos de dados. A segunda razão é que cada
coluna é referida apenas como Coluna # na janela de expansão, o que torna muito fácil para puxar em colunas estranhas que só precisam ser removidos
mais tarde.

Agregando dados de outras pastas de trabalho


Digamos que você está construindo uma solução que se baseia em dados armazenados em outras pastas de trabalho do Excel. Neste caso, o usuário é
o armazenamento de dados em planilhas nomeados com o mês eo ano, mas apenas um quarto por livro. Esses livros são armazenados em uma pasta
na rede, e você precisa para consolidar os dados dentro deles. Os métodos utilizados anteriormente neste capítulo foram orientadas para os objetos
dentro da pasta de trabalho atual, e eles não funcionam quando você está falando de livros externos. Em vez disso, você realmente precisa para gerar
uma lista de planilhas do Excel e extrair seu conteúdo, semelhante ao que foi feito no capítulo 4, quando você extraiu o conteúdo de arquivos CSV.

Abastecimento de Dados
Você inicia o processo de sourcing dados de uma pasta de trabalho em branco:

• Criar um novo → consulta De → Arquivo de Pasta

• Selecione os exemplos CH05 pasta Arquivos de Fonte \

Quando a alimentação de consulta lista os arquivos, você pode ver que você já tem vários arquivos aqui que são arquivos não-Excel:

Figura 70 arquivos não-Excel misturados com os arquivos que você realmente deseja.

Você precisa filtrar esses arquivos fora da lista, como você só quer planilhas do Excel:

• Botão direito do mouse na coluna de Extensão → Transformar → Minúsculas

• Filtrar a coluna → filtros de texto de extensão → começa com → .xls

• Selecione o conteúdo e nome colunas → botão direito do mouse → Retirar outras colunas
48 M é para (dados) do macaco

Neste ponto, você pode ser tentado a clicar no botão Combine binários, e, infelizmente, Poder consulta vai deixar você fazer isso. Se fizer isso, porém,
você vai encontrar esse Poder consulta combina os arquivos, mas não pode importá-los:

Figura 71 Poder consulta diz que não pode combinar os binários do Excel.

Se você realmente clicou no botão Combine Binários, agora você precisa para ir para a caixa de Passos Aplicadas e remover tanto o
importado Excel e passos Binários Combinadas.

Então, se você não pode combinar e importar os arquivos usando o método fácil, você tem que fazê-lo da maneira mais difícil:

• Vá para a guia Add Column → Adicionar coluna personalizada

• Insira a seguinte fórmula:


= Excel.Workbook ([conteúdo])
• Clique OK

• Botão direito do mouse na coluna Conteúdo → Remove

A sua nova coluna personalizada agora contém uma coluna de tabelas, que contêm cada um dos objetos que você pode conectar-to, incluindo todas as tabelas do
Excel, intervalos nomeados, e até mesmo planilhas no arquivo de Excel:

Figura 72 Visualizando as partes do arquivo Range.xlsx Nomeado.

Expandir o conteúdo do arquivo do Excel


A coluna personalizada tem a seta de duas pontas (no ícone de expansão) em seu cabeçalho, por isso pode ser expandido. Quando você clica no ícone de
expansão na coluna personalizada, você tem uma lista de todas as diferentes partes de pasta de trabalho:

A Figura 73 Todas as partes de pasta de trabalho expandido.


Capítulo 5 Agregando Excel Planilhas 49

Neste ponto, é fundamental que você reconhece que você tem aqui. A coluna Tipo mostra que você tem Folha, DefinedName e objectos tabela.
Lembre-se, porém, que você pode definir nomes mais células específicas em uma tabela e / ou folha de cálculo e que mesas existir em planilhas. É
muito fácil de duplicar os dados em sua importação se você não filtrar nesta área de forma adequada.

objetos importadores de diferentes tipos, conforme listado na coluna tipo poderia levar à duplicação de dados! Você deseja extrair os

dados da planilha única, por isso siga estes passos:

• Filtrar a coluna Tipo para mostrar os tipos de dados única folha

• Filtrar a coluna Nome para remover o arquivo Range.xlsx Nomeado

• Selecione o Nome, Name.1 e dados colunas → botão direito do mouse → Retirar outras colunas

• Expandir todas as três colunas contidas na coluna Dados (e limpar a configuração de prefixo) A consulta agora é

o seguinte:

Figura 74 dados do Excel importados de uma pasta de trabalho externo.

Transformar os dados
Obviamente, os dados neste exemplo ainda precisa de alguma limpeza. Você deve fazer isso agora e finalizar a consulta:

• Ir para Transformar → Use primeira linha como cabeçalhos

• Botão direito do mouse na coluna Workbook1.xlsx → Rename → Arquivo Fonte

• Botão direito do mouse na coluna janeiro 2008 → Rename → Mês

• Direito do mouse na coluna Valor → Alterar tipo → número decimal

• Selecione a coluna Valor → Início → Reduzir linhas → remover erros


• Alterar o nome da consulta para FromExcelFiles

• Vá até Home → Close & Carga

Os dados são carregados em uma tabela, de modo que você pode criar uma tabela dinâmica configurado da seguinte forma, a fim de ver o que você puxado Utilize
estas definições.:

• Arquivo de Origem e mês em linhas

• Mês e Valor on Values


50 M é para (dados) do macaco

Aqui você pode ver que você puxou com sucesso dados de dois arquivos diferentes e três planilhas dentro de cada, para um total de mais
de 12.000 registros:

Figura 75 Os resultados de seu trabalho duro.

considerações
Ao trabalhar através das técnicas descritas neste capítulo, há algumas coisas que você precisa manter em mente.

Usando = Excel.CurrentWorkbook ()
A coisa mais importante a lembrar sobre a construção de soluções utilizando a função Excel.CurrentWorkbook () é que esta função lê todos os objetos
no arquivo atual. Uma vez que esta afeta a cadeia de cálculo, você é batido com um efeito de recursão, o que significa que como as novas tabelas são
construídas, consulta de Energia reconhece-los e lê-los como conteúdo potencial também.

As implicações deste parecer à atualização, quando a consulta tenta carregar em si, duplicando assim os dados na saída. Ao trabalhar com este
método, é importante se lembrar disso e se proteger contra ele. Estratégias para proteger contra problemas aqui vão desde erros de filtragem
em colunas chave para usar nomear dards Standards para as colunas tanto a sua entrada e saída para que você possa filtrar aqueles que você
não precisa.

Seja qual for o método escolhido, certifique-se de testá-lo através de um par refresca antes de liberá-lo para a produção!

Usando = Excel.Workbook ([conteúdo])


Ao contrário com Excel.CurrentWorkbook (), usando a função Excel.Workbook () não causa quaisquer problemas de recursão. A razão é que
Excel.Workbook () lê a partir a cópia mais recentemente salvos de um livro do Excel externo. Isso pode obviamente ter implicações se um usuário está
no processo de atualizar o arquivo, mas não salvou-lo, como você não vai obter os dados mais atuais que você poderia esperar.

A outra preocupação chave ao usar a função Excel.Workbook () para extrair o conteúdo de uma pasta de trabalho é que ele puxa planilhas além
de intervalos e quadros. Isto torna muito fácil de duplicar os dados se você não for cuidadoso, como todas as gamas e tabelas nomeadas existem
em planilhas. Preste muita atenção para filtrar a coluna Tipo para evitar esse problema.

Mesmo se houver apenas um tipo de dados na pasta de trabalho quando você construir a solução, não é uma má idéia para o futuro à prova de sua
solução, forçando um filtro para aceitar apenas o tipo desejado. Isto irá pré problemas de ventilação quando um usuário adiciona uma tabela para um
arquivo de dados que nunca teve um.

Também deve ser reconhecido que é perfeitamente possível usar Excel.Workbook () para ler a partir do livro Work- atual, expondo assim a
capacidade de ler o conteúdo da planilha. (Isto é útil se você não pode definir intervalos de impressão ou outras gamas mais de seus dados.)
Lembre-se, no entanto, que a consulta irá ler a partir da cópia salva mais recentemente da pasta de trabalho, e não a cópia viva. Isto tem o efeito
colateral de ainda enfrentar os problemas de recursão da função Excel.CurrentWorkbook (), mas você não pode vê-los até a próxima vez que você
abrir o arquivo.
Capítulo 6 Unpivoting Dados 51

Capítulo 6 Unpivoting Dados


Uma das grandes questões que Excel prós enfrentar é que não importa onde nós temos nossos dados, não chegam sempre em um estado útil. Assim, não
só que perdemos tempo recebendo os dados em uma pasta de trabalho para começar, então, temos que gastar ainda mais tempo para limpá-lo e mudar
seu layout, a fim de trabalhar com ele.

A Maldição de dados girou


Digamos que um usuário começou a acompanhar as suas vendas em uma base diária, e ele envia seus dados para você no formato mostrado abaixo:

Figura 76 A temida conjunto de dados articulada.

Naturalmente, depois de localizar suas vendas dessa maneira por dias ou semanas, ele traz para você e pede-lhe para criar uma variedade de diferentes relatórios
a partir dele. A resposta a este dilema é, naturalmente, para construir tabelas dinâmicas contra a fonte de dados. Mas a questão é que esse conjunto de dados já é
articulada.

Este problema surge para os profissionais do Excel o tempo todo. Tabelas dinâmicas foram construídas para transformar rapidamente tabelas de dados em
relatórios que os usuários podem mais facilmente consumir. O desafio é que os usuários pensam neste tipo de formato de saída, não em formato tabular, então
eles tendem a construir os seus dados no formato que uma tabela dinâmica produz, não em um formato que um consome de tabela dinâmica.

Muitos usuários pensam que uma simples transposição do conjunto de dados irá funcionar, mas você sabe que isso só muda a aparência dos dados-não
realmente convertê-lo em um formato que tabelas dinâmicas estão prontos a consumir.

Figura 77 dados transpostos (à esquerda) vs dados adequadamente não dinamizados (à direita).

A pior parte sobre esta questão é que, no passado, não havia nenhuma ferramenta para converter facilmente os dados de volta da girou para não dinamizado, o
que significava que era necessária uma enorme quantidade de trabalho para puxar esta off. Mas aqui é um outro lugar onde o poder de consulta vem para o
resgate.

Unpivoting com facilidade


Este exemplo mostra como sua vida realmente muda com Power Query. Abra os exemplos CH06 \ arquivo UnPivot.xlsx e prepare-se para UNPIVOT o
conjunto de dados dentro:

Figura 78 Dados brutos construir num formato articulada.


52 M é para (dados) do macaco

Preparar os dados de
Como você pode ver, os dados estão contidos em uma planilha, mas não tem nenhuma tabela associada a ele. Você já sabe que você pode corrigir isso, então
clique em algum lugar os dados e criar uma nova consulta:

• Criar um novo → consulta Da Tabela → OK (para confirmar os limites da tabela)

• No Excel 2010/2013 ajustar o intervalo de $ A $ 4: $ I $ 7 (removendo a última linha)

As terras de dados em poder de consulta, e agora você tem a capacidade de fazer quaisquer transformações ou manipulações que você precisa. O objetivo geral
aqui é UNPIVOT os dados, mas há uma coluna que você realmente não precisa. A coluna total pode ser removido porque você pode simplesmente reconstruí-lo
com uma tabela dinâmica. Então, clique com o botão direito na coluna Total
→ Remover. Agora você está deixado com apenas os dados de chave: a coluna Categoria Vendas e uma coluna para cada dia.

Colunas Unpivoting
Para UNPIVOT o conjunto de dados UnPivot.xlsx, siga estes passos:

• Selecione a coluna 2014/01/01 → pressione Shift → selecione a coluna 2014/01/07

• Botão direito do mouse uma das colunas → Colunas UNPIVOT Os

resultados são simplesmente espantoso: Você já está feito.

Figura 79 Unpivoting mágica em acção.

Você tem apenas um par de mais mudanças a fazer aqui antes de finalizar seu conjunto de dados:

• Botão direito do mouse na coluna Atributo → Alterar tipo → Data

• Botão direito do mouse na coluna Atributo → Renomear → Data

• Botão direito do mouse na coluna Valor → Renomear → Unidades

• Mudar o nome da consulta para DailySales

• Vá até Home → Close & Carga Você

pode acreditar como isso é fácil?

Observe que não há necessidade de usar Alterar tipo Usando Locale neste caso. Como os dados já reside dentro Excel, Power
consulta irá reconhecer esses dados corretamente não importa o que as configurações regionais são.

Repivoting
Em seguida, você pode construir um par de tabelas dinâmicas a partir destes dados. Primeiro, você reconstruir os dados existentes do usuário:

• Selecione uma célula na tabela → Inserir tabela dinâmica

• Inserir a tabela dinâmica no F1 da mesma planilha

• Lugar Categoria Vendas em Linhas, Data em colunas, e Unidades de Valores Agora você pode construir

uma visão alternativa do mesmo conjunto de dados:

• Selecione uma célula na tabela → Inserir tabela dinâmica

• Inserir a tabela dinâmica no F11 da mesma planilha


Capítulo 6 Unpivoting Dados 53

• Lugar Categoria Vendas em Linhas, Data de linhas (abaixo Categoria) e Unidades de Valores

• Botão direito do mouse F12 → Expandir / Recolher → Reduzir campo inteiro

Agora você tem dois conjuntos completamente diferentes criado muito facilmente a partir de um conjunto de dados não dinamizado:

Figura 80 Dois tabelas dinâmicas construídas a partir de um conjunto de dados não dinamizado.

Sobrevivendo uma Atualização

Neste ponto, você provavelmente estaria bastante confortável salvar o arquivo, devolvendo-o para o usuário, e deixá-lo continuar a atualizá-lo. Afinal de

contas, as soluções da Consulta de energia pode ser atualizado a qualquer momento. Mas dizer que você fazê-lo e que o usuário faz atualizações e envia-lo

de volta para você. Ao abrir o arquivo, você vê que o usuário tenha feito coisas que só um usuário final poderia pensar como aceitável:

Figura 81 A tabela, tal como é devolvido pelo utilizador final.

Olhando através das mudanças, você é surpreendido ao ver as seguintes questões:

• O novo dia é adicionada depois de o total da coluna.

• Uma nova categoria de vendas foi injetado com dados retroativos.

• O usuário não completaram o total da nova coluna.


Como a tarifa de actualização, tendo em conta estas alterações? Para descobrir, vá para a aba Dados e clique em Atualizar Todos duas vezes (uma vez para a
consulta de energia e uma vez para o tabelas dinâmicas).
54 M é para (dados) do macaco

Os resultados são nada menos que incrível, como você pode ver abaixo:

Figura 82 Suas tabelas dinâmicas continuam a trabalhar, apesar de ações do seu usuário final.

Cada edição que o usuário jogou em você foi tratado. Os totais estão lá, os dados estão na ordem correta, e os valores históricos
foram atualizados.

Compreender as funções UNPIVOT


Na verdade, existem duas funções unpivot no menu do botão direito em Power consulta: Colunas UNPIVOT e Não Dinâmica outras colunas.

Como Não Dinâmica outras colunas Works


Para ser justo, tivemos de fazer alguns passos desnecessários no exemplo acima. Em vez de selecionar os 2014/01/01 através
2014/01/07 colunas, você poderia ter apenas direito-clicado na coluna Categoria Vendas e escolhido o pivô Un comandar outras colunas.
O que este comando faz é UNPIVOT cada coluna diferente do (s) selecionado. De um ponto de vista lógico, que teria feito todo o sentido
quando a solução foi atualizado que apenas funcionou bem.

Dito isto, a demo foi configurado dessa forma por uma razão-de explicar o que realmente acontece quando você usa o comando Não Dinâmica
Colunas.

Como Colunas Não Dinâmica realmente funciona


Com base na terminologia da interface do usuário, você teria esperado que, quando você gravou o passo acima para UNPIVOT os
2014/01/01 através 2014/01/07 colunas, Poder consulta seria difícil codificar as colunas específicas. Deve ser claramente óbvio agora que
este não é o caso.

Aqui está o que Poder consulta realmente fez: Ele olhou para todas as colunas no conjunto de dados e determinou que havia uma coluna que
você não selecionar. Ao invés de construir um específico “UNPIVOT estas colunas” código de comando, ele realmente gravada que diz “tudo
UNPIVOT exceto a coluna (s) que não foram selecionados.” Neste caso, que estava “tudo UNPIVOT exceto Categoria Vendas”.

Embora esta mudança parece sutil, ele realmente tem algumas bastante grandes impactos, boas e más. A boa notícia é que é muito difícil fazer um
erro e construir um cenário que explode quando novas colunas de dados diariamente são adicionados. Essencialmente, futuro-provas a sua solução
para as novas datas, como eles vão sempre ser puxado.

A má notícia é que não há nenhuma maneira através da interface do usuário para bloquear em um específico “UNPIVOT esta coluna só” comando. Isto
significa que se você tem um comando Colunas UNPIVOT em sua consulta, e você adicionar uma nova coluna à tabela de dados, ele será não dinamizados
também.
Capítulo 6 Unpivoting Dados 55

Bloqueio Colunas para Não Dinâmica


Enquanto essa necessidade deve ser incomum, pode chegar um momento em que você precisa a capacidade de bloquear em uma coluna ou colunas
específicas que você quer UNPIVOT e garantir que novas colunas adicionadas aos seus dados de origem não estão não dinamizados por padrão. Fazer
isso leva alguma manipulação da fórmula na barra de fórmulas. Suponha que você só quer UNPIVOT a coluna Total, por exemplo. Você iria tomar as
seguintes medidas:

• Criar um novo → consulta Da Tabela

• Direito do mouse na coluna Total → Não Dinâmica Coluna

• A consulta neste momento seria semelhante a este, com as duas últimas colunas sendo os totais não dinamizados:

Figura 83 A coluna foi total não dinamizados.

• Use o ícone V no lado direito da barra de fórmulas para expandir a barra de fórmulas

• Neste ponto, a fórmula na barra de fórmulas seria a seguinte:


= Table.UnpivotOtherColumns (# "Type Changed", { "Categoria Vendas", "2014/01/01", "2014/01/02", "2014/01/03",
"2014/01/04", " 2014/01/05" , "2014/01/06", "2014/01/07", "2014/01/08"}, "Atributo", "Valor")

Veja como esse código de quebra:

• Table.UnpivotOtherColumns () é a função a ser executada

• # “Mudou Type” é o nome do passo anterior a partir da caixa Passos Aplicadas

• {. . . } É uma lista de todas as colunas, separados por vírgulas

• “Atributo” é o nome da nova coluna que conterá o texto não dinamizado


• “Valor” é o nome da coluna que vai manter os valores não dinamizados

Se você quiser bloquear o seu código para se certificar de que há outras colunas eram já não dinamizado, você precisa mudar isso a partir
do Table.UnpivotOtherColumns funcionar para usar a função Table.Unpivot. Como Table.UnpivotOtherColumns, a função Table.Unpivot leva
quatro parâmetros:

• O nome passo que você quer UNPIVOT: # “Type Changed”

• Uma lista de colunas que você deseja UNPIVOT: {"Total"}


• O nome da coluna para manter o texto não dinamizado: "Atributo"
• O nome da coluna para manter os valores não dinamizados: "Valor"
Assim, a fórmula geral seria o seguinte:
= Table.Unpivot (# "Changed Type", { "Total"}, "Atributo", "Valor")
E o efeito seria exatamente o mesmo que a versão que foi produzido acima com o código original. A diferença é que qualquer outra coluna
adicionada à tabela de dados de origem após o fato não seria também obter não dinamizado em cima de atualização.

A fim de bloquear o UNPIVOT de várias colunas, você apenas fornecer a lista completa das colunas para UNPIVOT entre os
caracteres {}, com cada cabeçalho da coluna cercada entre aspas e separados por vírgulas.
56 M é para (dados) do macaco
Capítulo 7 Importação Nondelimited arquivos de texto 57

Capítulo 7 Importação Nondelimited arquivos de texto


Um dos maiores desafios para muitos profissionais do Excel está importando e limpeza de arquivos de texto nondelimited. Se você já lidou com um
desses, você sabe o quão doloroso pode ser. Eles geralmente chegam com algum nome padrão como ASCII.TXT e são essencialmente caractere por
caractere representações do que a saída deve ser semelhante quando impresso. Isso significa que eles estão sujeitos a todos os tipos de questões
loucas, incluindo o seguinte:

• Caracteres alinhados por posição, em vez de delimitados por um carácter

• alinhamento inconsistente

• caracteres não imprimíveis (tais como códigos de controlo)

• Repetindo linhas de cabeçalho

A maior parte do trabalho para muitos profissionais do Excel é a importação deste tipo de informação em Excel e limpá-lo. E tudo isso tem que

acontecer antes eles podem obter com a análise que realmente agrega valor ao negócio. Se você já esteve lá, você sabe o processo segue este fluxo

geral:

1. Importar o arquivo no Excel via Dados → do texto.

2. Trabalho em uma janela do Assistente de importação de selo de porte postal, tentando determinar como as colunas são delimitados e quais
ignorar.

3. Despeje os resultados do Assistente de importação em uma planilha.

4. Vire os dados em uma tabela Excel adequada.

5. Ordenar e filtrar a tabela para remover linhas de lixo.

6. Limpar e cortar o texto nas colunas.


E a melhor parte é que no próximo mês, quando você começa o arquivo de dados atualizado, você começa a reviver este cesso pro- emocionante tudo de
novo. Não seria bom se houvesse uma maneira melhor? Boas notícias! Não é, e você encontrou-o.

Conectando-se ao Arquivo
Você se conectar a um texto nondelimited arquivo da mesma forma que você se conectar a qualquer outro arquivo de texto:

• Crie uma nova consulta → De → Arquivo de Texto

• Navegue até CH07 Exemplos → GL Jan-Mar.TXT Poder

consulta coloca os dados em uma única coluna:

Figura 84 A vista Poder consulta de um arquivo de texto nondelimited.

O primeiro benefício que você vai notar sobre o processo padrão de importação Excel é que você começa a trabalhar em uma janela de tamanho normal. Isso é
uma enorme melhoria tudo por conta própria, como você pode realmente ver o que está acontecendo.

Se sua coluna é muito estreita, apenas mouse sobre o lado direito do cabeçalho da coluna, mantenha pressionado o botão esquerdo do mouse e
arraste-o mais amplo.
58 M é para (dados) do macaco

Você também vai notar que, uma vez que o arquivo não é delimitada com qualquer tipo de delimitadores consistentes, Poder consulta não fez quaisquer suposições
sobre seus dados. Em vez disso, ele deixou todo o processo para você. Dado o estado desse arquivo, que provavelmente não é uma coisa ruim.

Antes de cavar mais longe neste tópico, note que existem muitos maneiras de importar arquivos de texto nondelimited, e nenhum
deles é certo ou errado. O exemplo neste capítulo foi projetada para mostrar uma grande quantidade de transformações através da
interface do usuário, bem como a maneira típica de um pro Excel pode abordar essa tarefa. Com mais experiência, você verá que as
rotas mais rápidas para o objetivo final são quase certamente possível.

Limpeza de arquivos Nondelimited


O objetivo geral quando começar a limpar um arquivo nondelimited é para tentar obter os dados em uma aparência de dados colunar o mais rápido
possível. Neste caso, as 10 principais linhas parecem não acrescentar muito valor, enquanto a 11ª fileira parece que pode ser cabeçalhos de coluna.
Portanto, vá até Home → Reduzir linhas → remover linhas → Remover linhas superiores → 10 → OK.

As linhas desaparecem e não será importado para a solução final:

Figura 85. As linhas principais são removidos, trazendo os cabeçalhos mais perto do topo.

Em seguida, você precisa escolher uma direção para invadir esses dados. Você poderia tentar quebrar na esquerda ou direita, mas atualmente
há uma tonelada de espaços à esquerda extras, e há espaços duplicados no meio. Seria bom para se livrar daqueles.

No Excel é uma prática padrão para executar dados textuais através do TRIM () e limpo () funciona de modo a remover todos levando, à direita, e
duplicar espaços, bem como a remover todos os caracteres não imprimíveis. Poder consulta também tem essa funcionalidade, e aqui está como você
aplicar isso agora:

• Botão direito do mouse Column1 → Transformar → guarnição

• Botão direito do mouse Column1 → Transformar → Limpa Os

dados parece um pouco melhor:

Figura 86 Dados aparadas e limpas.

Neste ponto, você pode perceber que a funcionalidade guarnição do Poder consulta não funciona exatamente o mesmo que o Excel de. Enquanto TRIM do Excel ()
função remove todos os espaços à esquerda e à direita e substitui quaisquer espaços duplicados em
Capítulo 7 Importação Nondelimited arquivos de texto 59

meio dos dados com um único espaço, energia consulta de não fazer a última parte. Em vez disso, apenas corta fora os espaços à esquerda e à
direita.

A função CLEAN (o) em Power consulta se alinha com o Excel de, embora seja mais difícil de ver. caracteres não imprimíveis são processados ​como um pouco
de ponto de interrogação em uma caixa dentro da interface do usuário do Excel. Em Poder Consulta eles mostram como um espaço. Independentemente disso,
se você passo para trás e para frente entre o texto aparada e as etapas de texto limpo em caixa Passos Aplicadas, você verá que os espaços em torno do & em
Avis & Davis foram limpos afastado pelo passo texto limpo.

Colunas de rachadura por Posição


O próximo passo é para começar a separar em pedaços as colunas. A abordagem básica neste momento é dividir pelo número de caracteres, fazendo
um palpite sobre quantos você precisa e, em seguida, refinando que adivinhar. Como o número de caracteres na data é 10 caracteres, você pode
tentar 12 para um primeiro go:

• Vá até Home → Coluna de Split → pelo número de caracteres → 12 → repetidamente → OK Isso claramente não funcionou! Como você pode ver abaixo,

a coluna de data pode ser bom, mas os outros com certeza não são as seguintes:

Figura 87 Os dados não dividida, assim como você pretendia.

Este não é um grande negócio, como você pode apenas tentar novamente refinando seus esforços originais:

• Remova a passo tipo alterado


• Clique na engrenagem ao lado da Coluna Dividir a passo Posição

• Alterá-lo para 15 → OK O

resultado é muito melhor:

A Figura 88 uma visão muito mais inspirador dos dados.

Também vale a pena mencionar que não há nada de forçá-lo a escolher o repetidamente ajuste nas opções ao dividir colunas.
Se o documento é inconsistente, você pode optar por dividir uma vez do lado esquerdo / direito. Isso permite que você controle
muito granular, em uma base coluna por coluna.
60 M é para (dados) do macaco

Agora você pode fazer mais duas mudanças. Desde a etapa de tipo alterado apenas declara todas as colunas como texto (que eles não vão ser
quando você está feito), você pode remover a passo tipo alterado porque é irrelevante. Você pode então promover a primeira linha de cabeçalhos de
coluna. Siga esses passos:

• Remova a passo tipo alterado


• Vá para o Transform guia → Use primeira linha como cabeçalhos

A beleza de Erros no Poder consulta


Os dados agora está começando a olhar um pouco limpo, mesmo se você gostaria de mudar alguns dos cabeçalhos das colunas que você vá junto. Neste
ponto, é normalmente recomendado que você trabalha da esquerda para a direita, limpeza, tanto dos dados colunar como você pode e certificando-se que
é tudo válido.

Se você rolar para baixo, neste ponto, você verá que há uma série de linhas de lixo nestes dados, a maioria dos cabeçalhos de página de
repetição e quebras de seção que foram incluídos no documento. O primeiro bloco desses problemas ocorre na linha 40 e introduz um bando de
feiúra:

Figura 89 linhas irrelevantes misturados com dados reais.

A questão é como lidar com estes. Alguns são datas, alguns são de texto, alguns são nulos. Tente isto:

• Direito do mouse no Tran coluna Data → Alterar tipo → Usando Locale → Data → Inglês (US) → OK O resultado é um

monte de erros na coluna Tran Data:

Figura 90 erros que resultam de tentar converter a datas.

Ao contrário de qualquer outro programa, os erros são verdadeiramente emocionante em Power Query. Eles são emocionantes porque você pode con- trolo-los
e reagir a eles. Se você olhar cuidadosamente para esses dados, você verá que os erros foram causados ​apenas em linhas que passam a fazer parte das linhas
que pretende filtrar qualquer maneira. Além disso, cada linha que tem um nulo na coluna Data Tran detém valores nas colunas subseqüentes que também não
fazem parte dos dados transacional que você deseja manter. Então você pode se livrar de tanto daqueles:
Capítulo 7 Importação Nondelimited arquivos de texto 61

• Selecione a guia Tran coluna Data → Início → Reduzir linhas → remover erros

• Filtrar a Tran coluna Data → desmarque nulo

Os resultados são bastante animadores, e agora você tem uma coluna trandate com datas válidas de cima para baixo:

Figura 91 A coluna Trandate mostrando datas de validade a partir de cima para baixo.

Agora, você deve reconhecer que há algumas linhas que ainda aparecem, mas não pertence a este conjunto de dados. O desafio é que você
realmente não quer filtrar essas datas como alguns deles pode ser válido um dia (talvez em 3/1/0123). Assim, você pode passar para a próxima
coluna e veja se você pode corrigir esses problemas lá:

• Botão direito do mouse na coluna Tran Data → Renomear → Data → OK

• Botão direito do mouse na coluna Tran Valor → Rename → Valor

• Direito do mouse na coluna Valor → Alterar tipo → número decimal

Poder consulta tenta definir todas as entradas de valores com casas decimais, o que desencadeia alguns erros. Remover esses e os nulos para fora do
conjunto de dados:

• Selecione a coluna Valor → Início → Reduzir linhas → remover erros


• Filtrar a coluna Montante → desmarque nulo

Se você agora verificar o conjunto de dados ao redor linha 40 (e mais), você verá que todas as linhas de lixo são completamente desaparecido.

Removendo colunas de lixo


Removendo colunas extras é muito simples: você só precisa seguir um processo quando fazê-lo. Esse processo é simplesmente esta:

• Filtrar a coluna
• Certifique-se de que os valores apresentados na coluna são todos ou em branco nulo

• Botão direito do mouse e remova a coluna

Verificando cada uma das colunas no conjunto de dados, você pode ver que a terceira coluna (com um cabeçalho em branco) aparece para conter apenas valores
em branco. Essa coluna pode ser removido.

Da mesma forma, se você percorrer todo o caminho até column9, você vê que esta coluna possui apenas nulo valores. Que UMN col- também podem ser
removidos.

agregando Colunas
Neste ponto, é bastante claro que a sua divisão inicial das colunas foi um pouco agressivo. Parece que você tem quatro colunas que foram
quebrados além incorretamente, como mostrado abaixo.

Figura 92 colunas se separaram em erro.


62 M é para (dados) do macaco

Felizmente, nem tudo está perdido aqui, e você certamente não precisa de voltar e começar de novo. Você só precisa colocar as colunas juntos
novamente. Veja como:

• Selecione o Infor Referência coluna → pressione Shift → selecionar Column8

• Botão direito do mouse um dos cabeçalhos das colunas → Mesclar Colunas

Você então tem a opção de usar um separador e fornecendo um novo nome para a coluna (novo). Neste caso, você não precisa de um separador de qualquer
tipo. E uma vez que você está indo para dividir esta coluna de forma diferente em um segundo de qualquer forma, o nome realmente não é importante. Clique
OK, e suas colunas são colocados de volta juntos:

Figura 93 Humpty Dumpty deseja que ele tinha poder de consulta!

Colunas de rachadura por delimitador


Os dados agregados-re deixa muito claro que a nova coluna mesclada é delimitado pelo - personagem. Isto significa que você tem algo que
você pode usar para fragmentá-lo em seus componentes. Uma coisa a ter em conside- ração é que você não sabe se existe um fornecedor
que utiliza um hífen no nome da empresa, para que você não quer ir muito agressivo com uma divisão baseada na - personagem. Siga esses
passos:

• Direito do mouse na coluna mesclada → Dividir Coluna → por delimitador

• Escolha --Custom-- da lista de delimitadores e digite um - (sinal de menos)

• Optar por dividir No mais à esquerda delimitador

Você não está limitado a delimitadores de um único caractere ao dividir por delimitador. Na verdade, se você quer dividir por uma palavra
inteira, você pode digitar essa palavra como seu delimitador.

Os dados são, em seguida, dividida em duas colunas separadas: Merged.1 e Merged.2. Estes devem ser renomeado para algo mais sensato:

• Botão direito do mouse Merged.1 → Rename → Categoria

• Botão direito do mouse Merged.2 → Rename → Fornecedor O

resultado é um conjunto de dados que é quase perfeito:

Figura 94 O conjunto de dados está agora quase perfeito.

Aparar espaços duplicados


A última coisa que você precisa para lidar com este conjunto de dados é os espaços duplicados que foram deixados entre as palavras na coluna Vendor. Desde
que você não pode confiar em função de ajuste de potência Query, você precisa cuidar do presente a si mesmo:
Capítulo 7 Importação Nondelimited arquivos de texto 63

• Botão direito do mouse Fornecedor → Substituir Valores

• Definir valor para encontrar a 2 lugares

• Defina Substituir a 1 espaço


Agora você tem um conjunto de dados completamente limpa que pode ser carregado em uma tabela.

Infelizmente, não há nenhuma função que remove facilmente “espaços em branco” interna a partir de uma cadeia de texto. Se você suspeitar que
você tem alguns exemplos de dois espaços, você pode ter que executar esse processo guarnição algumas vezes a fim de limpar completamente os
dados.

Neste ponto, você pode finalizar sua consulta e realmente construir um relatório a partir dele. Naturalmente, você vai fazer isso através da criação de uma tabela
dinâmica. Antes que você possa fazer isso, siga estes passos:

• Alterar o nome consulta para Transações

• Vá até Home → Close & Carga

Momento do poder de consulta para brilhar


Neste ponto, você deve fazer uma pausa e reconhecer algo importante: Seus dados é limpo. Ao contrário de quando você carregar dados usando o método padrão
do Excel para importar a partir de um arquivo de texto, nenhuma outra limpeza é necessário. Você era capaz de carregar, limpo e transformar os dados em uma
única interface de usuário dedicada ao processo. Agora você está sentado em uma posição onde os dados podem realmente ser usado.

Clique em qualquer lugar na tabela e escolha para inserir uma nova tabela dinâmica. Coloque-o em G2 da planilha atual e configurá-lo como segue:

• Data em linhas, agrupados por mês

• Vendedor em linhas, em Grupo

• Categoria em Colunas

• Montante em valores

Sua tabela dinâmica deve olhar como segue:

Figura 95 A tabela dinâmica construída a partir de arquivo de texto deste capítulo.

Esta tabela dinâmica é certamente útil, mas enfrentá-lo: Tudo realizado neste capítulo até agora é ble inteiramente possibi- com Excel apenas padrão.
Então, por que você precisa de energia consulta? É a janela de tamanho normal? Isso é legal, mas não é crítica.

Você vê por que o poder de consulta é tão crítico quando você lida com a próxima parte da equação. Próximo trimestre vem junto, e você terá um novo arquivo
de dados. No mundo de um profissional Excel, o que significa mais uma tarde tediosa de ing de importações, limpeza e reformatação. Mas armado com Power
Query, tudo isso muda. Graças ao poder de consulta, isso é tudo que você faz:

• Localize sua consulta no painel de pasta de trabalho Consultas


64 M é para (dados) do macaco

• Botão direito do mouse a consulta → Editar

• Volte para a etapa origens e clique no ícone de engrenagem

• Atualize o caminho do arquivo para CH07 Exemplos \ GL Apr-Jun.TXT

• Vá até Home → Close & Carga

saída da consulta atualiza a tabela, mas você tem que forçar a tabela dinâmica para atualizar. Então fazer isso por-clique-direito ing a tabela dinâmica →
Atualizar.

Agora você vê o benefício de usar o poder de consulta:

Figura 96 ​A mesma tabela dinâmica, agora atualizado para o próximo trimestre.

Há novos fornecedores, novas operações e novas datas, e eles estão todos trabalhando sem problemas. É nário revolu-, e você vai
saber como você nunca fez o seu trabalho sem essa ajuda do Poder Query.

Se você acabou de salvar o novo arquivo sobre o antigo, você não tem sequer a editar a etapa Fonte para atualizar o caminho do arquivo. Em vez

disso, você simplesmente ir para Dados → Atualizar tudo (duas vezes) para atualizar a solução. Você também deve reconhecer que este não é o fim da

jornada. Neste caso, você ainda teve que editar manualmente o passo de origem para atualizar o caminho para o novo arquivo. Considere o impacto se

tivesse originado o arquivo de dados via De Arquivo → De método de pasta descrita no Capítulo 4. Se você fez, você seria capaz de tomar a lista de

arquivos na pasta e:

• Classificar a coluna Modificado Data em ordem decrescente

• Filtro para manter linhas superiores → 1

• Fure o arquivo binário restante único na coluna Conteúdo


• Execute o resto dos passos listados neste capítulo
O que você tem neste momento? Você teria uma solução que puxou os dados do arquivo mais recentemente modificado na subpasta. A
necessidade de alterar manualmente o caminho do arquivo na consulta cada trimestre seria uma coisa do passado. Como arquivo de cada novo
trimestre foi adicionado à pasta, você seria capaz de simplesmente atualizar sua solução e trazer os dados mais atuais automaticamente.

Se você decidir usar a rota listados acima, estar ciente de que a propriedade Data de modificação é alterado cada vez que o arquivo é salvo.
Enquanto o poder de consulta não irá alterar esta propriedade através da leitura do arquivo, todas as modificações feitas e guardadas por um usuário
irá forçar a propriedade Data de modificação para atualizar. Se esta é uma preocupação, a Data de acesso e Data de Criação propriedades podem
proporcionar melhores opções para você usar como filtros, dependendo de seus objetivos finais.
Capítulo 8 Importando de bancos de dados 65

Capítulo 8 Importando de bancos de dados


Sua organização pode conceder-lhe acesso directo às bases de dados da empresa, e se esse for o caso, você tem sorte: Essa base de dados é de longe
a melhor fonte a partir da qual para obter seus dados. Não só você está garantido para obter acesso aos dados mais atualizados, mas o carregamento
das bases de dados é geralmente mais eficiente do que o carregamento de arquivos. Ele não importa muito o tipo de banco de dados você está se
conectando, como a experiência de coleta, filtragem e resumindo os dados do banco de dados é praticamente idêntica, não importa qual banco de dados
está conectado. A experiência de conexão tem algumas diferenças muito pequenas, mas a interface para conexão com cada tipo de banco de dados irá
guiá-lo através do processo, que basicamente se resume a três etapas a seguir:

1. Fornecer a localização do banco de dados.

2. Insira suas credenciais de autenticação.

3. Selecione a tabela (s) que deseja trabalhar.


O objetivo deste livro é mostrar situações que você provavelmente irá encontrar no mundo real. Por esta razão, é importante que você
experimenta como o poder de consulta trabalha com o banco de dados SQL mais comum no planeta: do Microsoft SQL Server.

Como bancos de dados SQL Server não são facilmente portáteis, estamos hospedando um banco de dados SQL Azure no serviço web da Microsoft Azure para
que você pratique essas técnicas. Este é essencialmente um banco de dados SQL Server que está hospedado na nuvem e está disponível para que você possa
acessar livremente e explorar. Isto significa que não importa onde no mundo você está, você pode conectar e explorar os dados dentro deste banco de dados.

Carregamento de dados de um banco de dados


Poder consulta suporta conexão a uma grande variedade de bancos de dados sem a necessidade de instalar quaisquer drivers adicionais. As conexões
disponíveis pode ser encontrada em três áreas distintas na interface do usuário Excel:

• New → consulta do banco de dados

• New → consulta De Azure

• New → consulta De Outras Fontes

Se você não consegue encontrar o que você precisa, não perca a esperança. Se você instalar o driver ODBC do fornecedor, você deve ser capaz de se conectar
ao seu banco de dados através da De Outras Fontes → ODBC Connector.

Conectando-se ao banco de dados


Para este exemplo, você vai se conectar ao banco de dados AdventureWorks contida no nosso SQL Server e analisar as vendas totais por ano
por região para a empresa AdventureWorks.

Em um esforço para se certificar de que você não causam-se emite ao fazer a conexão banco de dados inicial, é altamente
recomendável que você leia os passos abaixo (até a seção “Gerenciando conexões”) antes de tentar realmente fazer uma
conexão. Para começar, você precisa ir através dos seguintes passos:

• Criar um novo → consulta De Azure → De Microsoft Azure banco de dados SQL

• Conecte-se ao banco de dados seguintes:

• Servidor: azuredb.powerqueryworkshop.com

• Base de dados: AdventureWorks2012


66 M é para (dados) do macaco

Figura 97 Ligação à base de dados Azure.

Quando você está se conectando a bancos de dados, há uma opção para fornecer uma instrução SQL personalizada. (Isso pode ser acessado
clicando no triângulo mostrado na imagem acima.) Evite usar esta opção a menos que você é um ninja SQL e pode escrever código eficiente
mortal. Se não for possível, usar esse recurso vai realmente prejudicar o desempenho de suas consultas.

Neste ponto, você será solicitado a digitar as credenciais necessárias para se conectar ao banco de dados. Você tem algumas opções aqui:

• A opção padrão é usar as credenciais do Windows que você usa para fazer logon no seu computador. Se você está trabalhando em um banco de
dados que está dentro de sua organização e o departamento de TI tem permitido Win- dows autenticação, este trabalho será mais provável para
você.

• Você também é capaz, na mesma guia, para fornecer um conjunto alternativo de credenciais do Windows. Isso é útil se você precisa se conectar ao
banco de dados usando um conjunto diferente de credenciais do usuário.

• Para se conectar ao banco de dados neste caso, no entanto, você precisa virar para a guia Banco de Dados da caixa de diálogo, como temos usado a
segurança de banco de dados, não de segurança do Windows, ao criar nossos IDs de usuário. Nessa guia, você precisa digitar as seguintes
credenciais:

• Nome de usuário: DataMonkey @ ptypanama

• Senha: D4t4M0nk3y!
Uma vez que você tem as credenciais corretas, clique no botão Conectar:

Figura 98 Conexão com o banco de dados usando as credenciais de segurança do banco de dados.

Quando for solicitado sobre o suporte a criptografia, basta clicar em OK.


Capítulo 8 Importando de bancos de dados 67

As credenciais de usuário usadas são armazenadas em um arquivo que reside dentro de suas configurações de usuário locais. Isto significa que o
nome de utilizador e palavra-passe não fazer (e atualmente não pode ser definido para) viajar com a solução quando é enviado por email ou até
mesmo aberto por outro usuário. Este recurso de segurança garante que cada usuário realmente tem as credenciais adequadas para acessar e
atualizar os dados.

Gerenciando conexões
Se você digitar o nome de sua conexão, banco de dados, ID de usuário ou senha e precisar modificar qualquer coisa, você pode fazer isso indo
através dos seguintes passos:

• Excel 2016: Dados → nova consulta → Configurações de fonte de dados

• Excel 2010/2013: Poder consulta → Configurações → Configurações de Fonte de Dados

Isso vai lançá-lo na caixa de Configurações de Fonte de dados:

Figura 99 A interface de Configurações da fonte de dados, filtrou-se para o powerquery prazo.

Este diálogo pode tornar-se muito lotado ao longo do tempo, por isso é muito útil que você pode filtrá-la usando o painel de pesquisa. Na imagem
acima, nós filtrado para encontrar o powerquery prazo porque sabemos que era parte da URL para o banco de dados Azure. A partir daqui você tem
duas opções:

• Elimine a ligação -Esta é uma boa opção se você deseja remover a fonte de dados das conexões em cache, forçando-o a nova
autenticação na próxima vez que se conectar a ele. Esta é também uma ótima opção se você bagunçou a conexão inicial e quer
começar de novo.

• Editar a conexão -Esta é uma boa opção se você só precisa atualizar o nome de usuário e senha ou se você quiser alterar os níveis
de conexão de privacidade por algum motivo. Você pode clicar no botão Editar para ver o tipo de conexão:
68 M é para (dados) do macaco

Figura 100 A caixa Configurações de fonte de dados para o banco de dados Azure.

Você também pode acionar a janela para atualizar / substituir o nome de usuário e senha, clicando no botão Editar na seção Credenciais, se
necessário.

Usando o navegador
Uma vez Poder consulta foi conectado ao banco de dados, você vai encontrar-se lançado na interface do navegador, que permite que você
selecione a tabela (s) que você gostaria de conectar-se. Neste caso, você quer puxar alguns dados da tabela de SalesOrders. Há uma série de
tabelas, e você pode usar o recurso de busca para diminuir a lista:

• Digite SalesOrder para a área de pesquisa

• Clique na mesa de Sales.SalesOrderHeader

O painel de visualização estende a mão para o banco de dados e dá-lhe um olhar sobre os dados que são armazenados dentro dessa tabela:

Figura 101 Usando o Navigator.

Os dados aqui parece bastante útil. Clique em Editar e ver o que informação útil você pode recolher a partir dele.
Capítulo 8 Importando de bancos de dados 69

Explorando os dados
Depois de clicar em Editar no Navegador, a primeira coisa que você notará é que há duas etapas na janela Passos Aplicadas: Fonte e Navegação. Se você
selecionar o passo Source, você vê que ele vai voltar para o esquema bruto do banco de dados, permitindo que você veja o que existem outras tabelas,
exibições e objetos no banco de dados. A etapa de navegação, em seguida, brocas para a tabela selecionada. A segunda coisa que você notará é que há
uma muito de dados aqui. Você pode diluir um pouco mais baixo:

• Selecione as colunas DataDoPedido, SalesOrderNumber, subtotal, TaxAmt, frete, e Sales.SalesTerritory

• Botão direito do mouse em um dos cabeçalhos → Retirar outras colunas

• Botão direito do mouse na coluna OrderDate → Transformar → Ano

• Botão direito do mouse na coluna OrderDate → Rename → Ano

• Botão direito do mouse na coluna SalesOrderNumber → Rename → Pedido # A consulta é

agora muito mais compacto e focado.

Figura 102 de aparar para baixo tabela SalesOrderHeader.

A maioria dos cabeçalhos das colunas fazem sentido, mas


há algo significativo sobre a coluna Sales.SalesTerritory.
Essa coluna não está mostrando valores da
SalesOrderHeader ta- ble; ele está mostrando os valores
relacionados da tabela Sa- lesTerritory!

Esta é uma das grandes coisas sobre a ligação a bases de dados: A


maioria dos bancos de dados suportam a detecção relação ic
automatica-, assim você pode navegar através dos registros
relacionados, mesmo sem ing hav- para configurar uma relação de si
mesmo ou executar quaisquer fusões em tudo. Ainda melhor, quando
você vai para expandir essa coluna, você vê que há mesmo mais
campos provenientes de outras mesas. Para ver como isso funciona:

• Clique na seta dupla na parte superior direita da


coluna Sales.SaleTerritory Poder consulta pergunta quais
colunas você quer expandir conforme mostrado na Figura
103.

Figura 103 Cada ficha contendo um período mostra uma tabela relacionada.

Enquanto é incrível que você posso manter perfuração para tabelas relacionadas, você realmente só precisa o campo Grupo da tabela SalesTerritory, então
expandir essa coluna para puxar somente esse registro:

• Desmarque (selecionar todas as colunas)


70 M é para (dados) do macaco

• Verifique Grupo

• Remova a marca da Use nome original da coluna como Prefixo

• Clique OK

• Renomeie a consulta RegionByYear O conjunto de dados está

agora pronto para ser carregado para análise:

Figura 104 Os dados está agora pronto para ser carregado e analisados.

Agora você pode ir para a guia Início e clique em Fechar & carga para carregar os dados em uma planilha do Excel. Após uma pequena espera, a mesa fica verde,
e você está pronto para construir uma tabela dinâmica. Em seguida, siga estes passos:

• Selecione uma célula na tabela → Inserir → Tabela Dinâmica

• Colocar a tabela na mesma planilha, a partir de H2 celular


• Configurar a tabela dinâmica como segue:

• Coloque Ano e Grupo de linhas

• Coloque SubTotal, Imposto Amt, e frete on Values

• Defina cada coluna para mostrar em um estilo de contabilidade, sem casas decimais ou símbolos. O resultado é uma

tabela dinâmica agradável que você pode atualizar a qualquer momento:

Figura 105 A tabela dinâmica criada a partir de um banco de dados Windows Azure SQL.

A beleza desta solução é que você também pode adicionar segmentações de dados, gráficos dinâmicos e outros itens para a planilha para exibir os dados como
você quiser vê-lo. Mas a melhor parte é que com um simples Dados → Atualizar tudo, você pode atualizar os dados do banco de dados on-line a qualquer momento
para atualizar a solução, conforme necessário.
Capítulo 8 Importando de bancos de dados 71

Usando SSAS como uma fonte


SQL Server Analysis Services (SSAS) é uma das muitas fontes que você pode encontrar em um Meio Ambiente corporativo. SSAS pode ser dividido
em modelos tabulares e modelos multidimensionais, sendo que ambos podem ser facilmente puxados para poder consulta.

Por favor, note que todos os números utilizados no seguinte conjunto de dados são completamente fictícios e foram semeadas aleatoriamente no
banco de dados.

Ligar a SSAS Fontes


Para se conectar a SSAS você vai precisar para criar um novo → consulta da base de dados → do SQL Server Analysis Services banco de dados.
Poder consulta inicia uma nova janela onde você precisa digitar o nome (ou endereço) do seu servidor.

Figura 106 Digite o endereço do servidor, a fim de se conectar a ele.

O exemplo desta seção é construído contra um resumo dos resultados de bilheteria, alojados em uma instância local SSAS. Após a autenticação para a instância
do SSAS, você está imediatamente apresentado com o Navigator, assim como você é quando você se conectar a qualquer outro banco de dados:

Figura 107 Esta nova janela lhe dá uma visão de árvore para navegar através do servidor SSAS.
72 M é para (dados) do macaco

A partir daqui, você pode selecionar as dimensões, medidas e KPIs que você quer do seu modelo, basta verificar as caixas ao lado
deles. Para este exemplo, suponha que você selecionar a dimensão FILM_NAME da tabela TAB_FILMS, bem como algumas medidas
como telas, Locais, Soma de BORTOT, e Soma de ADM. (Estas medidas dão os valores numéricos relacionados com a informação
geral do desempenho de bilheteria para cada filme.)

construir consultas contra uma fonte SSAS é muito diferente de uma conexão SQL normal. Em uma instância do SQL normal, você se
conectar a toda a tabela e filtrar as colunas que fazer não deseja incluir. Com uma instância do SSAS, você se aproxima o trabalho no sentido
inverso, verificando as colunas Faz deseja incluir, construindo tabela de saída de coluna por coluna que você vá.

Figura 108 A janela de visualização cria sua mesa como você selecionar itens à esquerda.

Quando a visualização da tabela atenda às suas expectativas, você pode ir em frente e clique no botão Editar para ser lançado no editor de Poder
Query.

Esta janela parece um pouco diferente do que você já viu antes. Ao contrário de casos anteriores, onde são dadas comandos relacionados com
operações de tabela, desta vez você descobrir que a fita Cube Ferramentas contextual está ativo, dando-lhe as opções Adicionar itens e colunas
Colapso:
Capítulo 8 Importando de bancos de dados 73

Figura 109 Três etapas aplicadas, uma mesa, e dois novos botões misteriosas.

Este modelo em particular tem a informação para toda a região Central Américas, mas dizer que você quer se concentrar em um filme específico: Titânico.
Neste caso, você precisa filtrar a coluna TAB_FILMS_FILM_NAME para baixo a apenas que um filme.
74 M é para (dados) do macaco

Adicionando campos Faltou


Agora dizer que você gostaria de saber a repartição por país. O único problema aqui é que você perdeu selecionando a coluna que contém essa
informação. Para corrigir esse pequeno problema, você clique no botão Adicionar Itens, localize o campo que tem o nome dos países, e selecione-o:

Figura 110 A Adicionar itens botão permite seleccionar mais campos.

A nova coluna é imediatamente adicionado à saída da tabela no lado direito da tabela:


Capítulo 8 Importando de bancos de dados 75

Figura 111 O item recém-adicionado é adicionado à extremidade direita da mesa.

Embora a fita Cube Ferramentas contextual ainda está habilitado, isso não significa que você não pode usar as outras fitas que você usou
antes. A fita Cube Tools simplesmente oferece-lhe novas funcionalidades quando você se conectar a este tipo especial de fonte de dados.

Campos colapso
Você já viu como adicionar novos campos, mas o que o botão Fechar Colunas fazer? Depois de olhar para os resultados para Titânico, dizer que
você decidir que você realmente quer ver uma visão diferente dos dados. É, portanto, voltar e remover o passo linhas filtradas. Como resultado,
todos os filmes são listados, com uma repartição por cada país, bem como:

Figura 112 Mostrando todos os filmes, discriminadas por país.


76 M é para (dados) do macaco

Em seguida, você pode remover a coluna TAB_FILMS.FILM_NAME em uma tentativa de mostrar os totais de bilheteria pelo país. Ao invés de botão
direito do mouse na coluna e escolhendo Remover, você selecione a coluna TAB_FILMS.FILM_NAME → Fechar Colunas. Aqui está o resultado:

Figura 113 Os efeitos do comando Fechar colunas.

Como você pode ver, o comando Fechar Colunas remove a coluna da fonte de dados. Ele faz mais do que isso, no entanto. Se você apenas
escolhido para remover a coluna, você ainda tem dados desagregados por país (sem título do filme). As colunas Recolher apresentam
re-agrega os dados e então remove-se a partir da consulta.

Google Analytics e de outras fontes


O mesmo comportamento explicou para a fonte SSAS pode ser encontrado por outras fontes. Um exemplo destes é o Google Analytics.

Infelizmente, o Google Analytics está disponível apenas no Poder BI desktop, não Excel. Fontes, como o Google Analytics e outros bancos de

dados SSAS provavelmente terá todos os dados pré-agregados para você, pronto para o consumo. Nestes casos, o principal uso do Poder consulta não é

a limpeza de dados, mas sim fornecer um método para os usuários finais para descobrir o que eles precisam e integrar esses dados com outras tabelas.

Claro, você ainda pode usar a funcionalidade da interface do usuário Poder consulta para enriquecer ainda mais as tabelas também.
Capítulo 8 Importando de bancos de dados 77

Figura 114 O conector Google Analytics no Poder BI Desktop utiliza um formato SSAS.

Consulta Folding e Otimização


Uma das grandes características que os bancos de dados oferecem é a capacidade de tirar vantagem de dobrar consulta para otimizar o desempenho da
consulta. Embora a tecnologia é construído em e vai trabalhar por padrão para você quando você construir solu- ções usando a interface do usuário do Poder
Query, você também pode acidentalmente quebrá-lo, caso em que as suas consultas serão processados ​pelo Excel sozinho. Para entender como evitar esse
erro, você precisa entender o que consulta dobrável é e como ele funciona em um nível rudimentar.

O que é consulta Folding?


A maioria das pessoas não tendem a pensar sobre o que está acontecendo nos bastidores como eles estão clicando nos vários comandos para selecionar,
filtrar, classificar e agrupar dados. Como você está ciente de agora, cada uma dessas etapas é gravado na caixa de Passos Aplicadas, permitindo-lhe
construir uma macro seqüencial. O que você pode não estar ciente, no entanto, é que o poder de consulta também é traduzir como muitos desses comandos
como pode em SQL e enviar aqueles à base de dados. O que é ainda mais surpreendente é que um servidor que tem capacidades dobráveis ​consulta
aceitará essas consultas individuais e depois tentar dobrá-los em uma consulta mais eficiente. O impacto disso é evidente quando você está emitindo
comandos subseqüentes, como Selecionar todos os registros na tabela seguido de filtro para excluir todos os departamen- tos Exceto 150.

Em termos leigos, em vez de carregar todos os 100.000 registros e, em seguida, filtrando até a 1.500 para esse departamento, o servidor em vez leva as
consultas para construir uma consulta mais eficiente que lê:

SELECT * FROM tblTransactions WHERE DEPTO = '150'


O impacto disso é enorme: Ele economiza o tempo de processamento envolvido em lidar com 98.500 registros. Embora nem todos os comandos podem ser

dobrados, um grande número pode, empurrando a carga de trabalho de processamento para o servidor.
78 M é para (dados) do macaco

tecnologia de dobragem consulta é restrita às bases de dados. Enquanto isso seria bom ter esta ality Função- para TXT, CSV e arquivos do

Excel, esses arquivos não são bancos de dados e, portanto, não têm nenhum mecanismo para dobrar as consultas. Você também deve estar

ciente de que nem todo o apoio bancos de dados de consulta dobrável. Se o arquivo ou banco de dados que está a ligar é incapaz de dobrar as

consultas, em seguida, Excel só vai baixar o conjunto completo de dados e executar os passos solicitados usando seu próprio motor para

processá-los. Tudo ainda vai funcionar, mas é apenas não tão eficiente.

otimização
Poder consulta pode ser lento. É um fato lamentável, e que a Microsoft está bem ciente de e constantemente tentando melhorar. Até Microsoft vence este
problema, é importante que você tem algumas estratégias para tentar maximizar o desempenho onde você pode. A primeira estratégia é Nunca fornecer
uma instrução SQL personalizada ao configurar sua consulta inicial. (A única exceção a esta regra é se você é um ninja SQL e estamos confiantes de que
você pode fornecer uma consulta mais eficiente do que a consulta passos dobráveis ​pode construir para você.) Ao fornecer uma instrução SQL
personalizada, você imediatamente quebrar as capacidades de consulta dobráveis para quaisquer passos seguintes, potencialmente prejudicando o seu
desempenho a longo prazo.

Lembre-se que o Poder consulta não foi construída como um substituto para o SQL Server Management Studio (SSMS). Foi construído como uma

ferramenta para ajudar os profissionais do Excel, que geralmente sabem muito pouco-se sintaxe qualquer-SQL, para extrair, filtrar, classificar e manipular dados.

O trabalho do poder de consulta é construir o seu código SQL para você. A segunda estratégia é dar preferência a conexão com mesas em vez de pontos de

vista. Poder consulta pode ler as chaves ou índices de uma tabela, mas não de uma vista. Isto leva a potência de consulta fazer escolhas diferentes ao tentar

carregar os dados a partir de uma visão de escolhas que podem não ser tão eficiente quanto os relacionados com a leitura dos índices e chaves de uma tabela.

Poder Consulta também não pode realizar a detecção de relacionamento através de visualizações, o que torna a experiência inicial do projeto mais difícil, em

primeiro lugar.

A terceira estratégia é tentar empurrar o máximo de trabalho no banco de dados possível. Por exemplo, consulta dobrar empurra a carga de trabalho para o
servidor, ao invés de ser realizada utilizando Poder consulta na estação de trabalho local. Como bancos de dados são projetados para processar dados de forma
eficiente, isso vai ajudar com o desempenho. A quarta consideração é tentar fazer o máximo de trabalho possível na sua concepção inicial consulta usando os
comandos da interface de usuário de energia da consulta, em vez de chegar ao código personalizado M. Enquanto isso vai ser tentador para injetar parâmetros
dinamicamente para controlar filtros (especialmente depois de ler o Capítulo 23 em tabelas de parâmetros), você deve estar ciente de que isso vai quebrar a
capacidade consulta dobrável.

Consulta de dobragem não pode ser executada contra qualquer linha que contém um M personalizado ou instrução SQL. Pior ainda, M
ou uma instrução SQL pára qualquer consulta dobrar ocorra.
Capítulo 9 Mesclando tabelas e consultas 79

Capítulo 9 Mesclando tabelas e consultas


Uma das questões clássicas que se apresentou aos profissionais do Excel há anos está agregando duas tabelas de dados separados em um, a fim de servir
uma tabela dinâmica. A via foi a utilização de uma combinação PROCV () ou INDEX (FÓSFORO ()), a fim de ler os dados a partir de uma tabela para o outro.

O desafio com este é que muitos usuários estavam aterrorizados com VLOOKUP () e não entendia as funções MATCH () INDEX () e quer. E
enquanto PowerPivot agora permite agregar duas tabelas sem usar quaisquer funções VLOOKUP (), que carrega seus próprios complexidades.
Ainda assim a questão permanece: Às vezes você só precisa de uma maneira fácil para mesclar registros de duas tabelas juntos.

Quando Poder consulta bater a cena, introduziu ainda um outro método para combinar duas tabelas juntos e um que não envolvem aprender fórmulas do
Excel ou a construção de uma estrutura de banco de dados relacional.

Mesclando tabelas via Poder consulta


Para este exemplo, dizer que você tem duas mesas separadas que existem em uma planilha do Excel. A primeira é a tabela de vendas, que detém a
data da venda, o Produto SKU (número), Brand, e Vendas Quantidade das transações de vendas. Mas ele não mantém qualquer informação sobre o
preço ou o custo dos produtos. Essa informação (e mais) é, no entanto, realizada na tabela de inventário. Você gostaria de mesclar as duas tabelas em
conjunto para obter uma lista abrangente de produtos com seus detalhes mais finos.

Criando consultas “ponteiro”


A fim de fundir ou acrescentar consultas em conjunto, as consultas devem existir. Ter uma tabela no Excel não é bom o suficiente; Poder consulta realmente
precisa reconhecer os dados como uma consulta. No entanto, parece um pouco louco para ter que tomar uma tabela existente, puxá-lo para uma consulta de
Energia, e, em seguida, carregá-lo para uma tabela do Excel, a fim de fazer referência a ela. E, na verdade, você realmente não precisa fazer isso.

Você ainda precisa puxar a tabela original em poder de consulta, mas a saída é onde você fazer uma mudança. Dentro dos exemplos CH09 \ arquivo

Merge.xlsx, você encontrará duas tabelas criadas: uma tabela de inventário e uma mesa de Vendas. A fim de deixar Poder consulta ler o conteúdo da

tabela de inventário é necessário:

• Clique em qualquer célula dentro da tabela de inventário

• Criar um novo → consulta Da Tabela

Poder consulta abre o seu editor para que você possa fazer quaisquer transformações que você precisa. Neste caso, no entanto, você realmente não precisa fazer
qualquer. Tudo o que você quer fazer é criar algo que você pode se conectar mais tarde.

• Na guia Início, clique no drop-down na parte inferior do botão Fechar & Carga
• Escolha Close & Carga Para ...

• No Carga Para diálogo, que agora pergunta onde salvar seus dados, selecione Somente Criar Conexão

Figura 115 Escolhendo para criar uma consulta só de conexão.

• Clique em Carregar
80 M é para (dados) do macaco

Você vê o seu programa de consulta-se no painel de pasta de trabalho Consultas, mas não poder consulta não criar uma nova tabela para você.

A Figura 116 uma nova consulta criada como uma consulta só de ligação.

Se você cometer um erro e criar uma consulta com uma mesa, você pode corrigi-lo clicando com o botão direito na consulta no painel a pasta de trabalho

consultas e escolher Carga Para .... Poder consulta avisa que você está indo para apagar os dados quando você confirmar a alteração, como você vai ser

remover a tabela recém-criada. Você também pode adicionar uma tabela se você tiver criado uma consulta só de conexão editando a carga para ...

comportamento como acima e mudar o comportamento de carga selecionado a partir Somente Criar Conexão com a Tabela. Com o quadro de inventário já

está disponível em Power Query, você precisará repetir esse processo para a tabela de vendas:

• Clique em qualquer célula dentro da tabela de vendas → criar um novo → consulta Da Tabela

• Início → Close & Carga Para ... → Só Criar Conexão → OK Está tudo pronto e

pronto para mesclar as tabelas em conjunto.

Executando a mesclagem
Você cria uma tabela incorporada no mesmo lugar onde você cria uma consulta acréscimo da interface do usuário Excel. Aqui está o que você faz:

• Crie uma nova consulta → Combine → Mesclar

O diálogo Mesclar aparece. Seus dois menus suspensos permitem que você escolha as duas tabelas que você deseja mesclar juntos.

• Escolha Sales como o tampo da mesa

• Escolha Inventory como a tabela de fundo

Estranhamente, depois de tomar essas ações, o botão OK ainda não está habilitado:
Capítulo 9 Mesclando tabelas e consultas 81

Figura 117 Você optou por mesas, mas por que você não pode prosseguir?

O problema em questão é que o poder de consulta não sabe quais os campos que você deseja usar para executar a fusão. A fim de executar uma mala,

você quer idealmente ter uma coluna que contém valores exclusivos em uma tabela, mas tem repetindo registros na outra tabela. Isso é chamado de uma

estrutura de um-para-muitos, e usá-lo é a melhor maneira de garantir que você acabar com resultados que correspondem ao que você esperaria.

Poder consulta suporta um-para-um e muitos-para-muitos junta-se, como você verá em breve. Neste caso, a coluna SKU Número contém

produtos exclusivos na tabela de inventário, e repete muitas vezes na tabela de vendas, para que você possa usá-los:

• Clique no cabeçalho SKU número em cada mesa

• Clique OK

Poder consulta abre o editor, onde você vê uma nova coluna agradável de mesas do lado direito da tabela de vendas:

A Figura 118 uma nova coluna de tabelas, contendo os registos tabela de inventário correspondente.

Você sabe o que fazer com uma coluna de tabelas: Expandir-los! A única questão aqui é que as colunas que você precisa. Porque as
colunas SKU número e marca já existir na tabela de vendas, você não precisa aqueles, por isso certifique-se de excluí-los durante a
expansão. Siga esses passos:

• Clique no ícone de expansão


82 M é para (dados) do macaco

• Desmarque o número SKU e colunas Marca


• Desmarque a opção prefixo de coluna → OK

Como você pode ver, agora você tem os detalhes do produto incorporada a tabela de vendas:

Figura 119 Detalhes da tabela de inventário incorporada a tabela de vendas.

Agora você pode finalizar esta consulta usando os seguintes passos:

• Renomeie a consulta OneToMany

• Vá até Home → Close & Carga

Você vai achar que você tem 20 registros, um para cada transação na tabela de vendas original, exatamente replicar PROCV () 's cenário de
correspondência exata.

Muitos-para-muitos Mescla
Ao construir uma mesclagem, você precisa ter cuidado para mesclar com base nas colunas corretas. Se você tentar configurar uma fusão como a seguir, você
verá que sua saída é um pouco diferente:

• Crie uma nova consulta → Combine → Mesclar

• Escolha Sales como o tampo da mesa

• Escolha Inventory como a tabela de fundo

• Clique no cabeçalho da Marca em cada tabela

• Clique OK

• Clique no ícone de expansão

• Desmarque o número SKU e colunas Marca → OK


• Desmarque a opção prefixo de coluna → OK

• Renomeie o ManyToMany consulta

• Vá até Home → Close & Carga

Como você pode ver, as duas únicas alterações são a coluna usada para mesclar as tabelas eo nome da consulta final (que não afetará a
saída). No entanto, desta vez há 22 registros em mais a saída da tabela-2 do que a contagem inicial das transações.

Para entender por que isso está acontecendo, você precisa editar a consulta ManyToMany e voltar à etapa Fonte. Se você vai para baixo da mesa
para gravar 19 e clique no espaço em branco ao lado da palavra de mesa, você terá uma visão pré-dos dados na tabela que serão mesclados em
sua tabela de vendas.

A Figura 120 um n para n fundir em acção.


Capítulo 9 Mesclando tabelas e consultas 83

Na mesclagem anterior, você criou a fusão com base no número SKU, o que significa que os registros só seria compensada se os seus números de
itens combinados. Neste caso, no entanto, você correspondência com base na marca. Porque a marca OK molas mostra duas vezes na tabela de
inventário, quando a tabela de vendas tem a marca OK Springs, ele cria duas partidas. O fato de que eles têm diferentes SKUs é irrelevante para
poder Query, como você pediu para um jogo baseado na marca, não SKU.

Você pode ver neste exemplo que você precisa ter cuidado ao criar jogos. Este recurso pode ser muito útil, mas também pode ser perigoso
se você não está prestando atenção e estão esperando um jogo de um-para-muitos.

Cabeçalhos de tabela dinâmica


tabelas do Excel são fantásticos, eles realmente são. Mas um problema com eles é que eles bloquear a linha de cabeçalho em valores codificados.
Que proíbe você de ter cabeçalhos dinâmicos em suas tabelas, impulsionado por fórmulas. O arquivo CH09 Exemplos \ dinâmico Headers.xlsx contém
uma planilha utilizada para o orçamento rodadas de green fee para um campo de golfe. O autor criou uma configuração tabular e é capaz de mudar o
ano em B1 e atualizar todos os cabeçalhos nas linhas 3 e 32 do documento:

A Figura 121 um documento orçamento com cabeçalhos dinâmicos.

O problema
O desafio aqui é que você precisa para carregar e UNPIVOT tabela de Recap (linhas 32:36). Desde a utilização de energia de consulta é a maneira mais
fácil de UNPIVOT dados, você obviamente quer usá-lo, mas há alguns desafios em obter os dados em poder de consulta em primeiro lugar:

• Carregar os dados através de uma tabela faria com que os cabeçalhos de coluna para ser bloqueado, e você perderia a sensação dinâmica.

• Carregar os dados usando um intervalo nomeado permitiria que os cabeçalhos de coluna para alterar na planilha, mas poderia

potencialmente quebrar quaisquer medidas hard-coded na consulta quando as mudanças. A solução neste caso é criar uma tabela de

conversão e mesclar que volta para a consulta.

Criando uma tabela de conversão


A tabela de conversão para este exemplo deve ser capaz de chegar a um caminho lógico para traduzir um cabeçalho de coluna estática para as datas
atuais. Usando a notação CYMx (ano atual, Month x), você pode construir uma tabela para manter essas datas. Criar a tabela da seguinte forma:

• Digite na A40 celular: Período

• Digite na B40 celular: Encontro

• Digite na A41 celular: CYM1

• Estender A41 até A52 para que ele lê CYM2, CYM3, e assim por diante

• Selecione A40: B52 → Início → Formatar como Tabela


84 M é para (dados) do macaco

• Ferramentas de Tabela → Projeto → Nome da tabela → nome do DateTranslation mesa

• Cópia B32: M32

• Botão direito do mouse B41 → PasteSpecial

• Optar por colar fórmulas e formatos de número e verificar a Transposição caixa Sua tabela deve agora ser

configurado da seguinte forma:

Figura 122 A tabela DateTranslation.

Naturalmente, a fim de fundir isso em outra tabela, você precisa de Energia Consulta também saber que ela existe, por isso, siga estes passos:

• Selecione qualquer célula na tabela

• Criar um novo → consulta Da Tabela

• Início → Close & Carga Para ... → Só Criar Conexão Com uma conexão

criada para esta tabela, você está agora pronto para ir.

Reequipamento A tabela de origem


Em seguida, você precisa puxar na tabela de resumo. Mas, a fim de mesclar os dados em conjunto, ele vai, obviamente, precisa ter cabeçalhos consistentes
com o formato CYM. Mas, ao mesmo tempo, você gostaria de manter as datas atuais que mostram. Este não é um grande negócio, você pode fingir:

• Cópia fileira 32

• Botão direito do mouse linha 33 → Células Inserir copiadas

• Copiar células A42: A53

• Botão direito do mouse B33 → Colar especial → Valores + Transposição

O intervalo de dados está agora configurado e pronto para usar, e você só precisa adicionar uma tabela a ela:

Figura 123 A tabela resumo agora tem o cabeçalho alternativo.

O truque aqui é que você precisa para garantir que o quadro apenas abrange linhas 33:37, como você não quer bloquear linha 32 de fórmulas. Siga
esses passos:

• Clique dentro do intervalo de dados → Início → Formatar como Tabela


Capítulo 9 Mesclando tabelas e consultas 85

• Ajuste o intervalo para ler = $ A $ 33: $ H $ 37

• OK → definir o nome da tabela para StatsData

• Ocultar linha 33

Dependendo do estilo que você escolher, você pode até esconder todas as provas que você foi mexer com isso e configurá-lo como uma tabela:

Figura 124 Tabela? Que mesa?

A fusão das Tabelas


E agora para as-combinando momento mágico essas tabelas:

• Clique dentro da tabela de StatsData → criar um novo → consulta Da Tabela

• Botão direito do mouse na coluna Mês → UNPIVOT outras colunas

• Botão direito do mouse na coluna Mês → Substituir Valores → “total” (com um espaço à direita e sem aspas) com nada →
OK
Neste ponto, a consulta é olhando bastante decente. É não dinamizado, e está pronto a ser incorporado. E adivinha? Você não tem sequer a deixar o
poder consulta para fazê-lo!

• Vá até Home → Mesclar Queries

• Escolha a tabela DateTranslation

• Escolha as colunas de atributos e Período → OK


• Expandir o campo Data (apenas) a partir da nova coluna (desmarcando o prefixo) → OK

• Botão direito do mouse na coluna Data → Alterar tipo → Data

• Botão direito do mouse na coluna Atributo → Remover

• Botão direito do mouse na coluna Valor → Rename → Rondas

• Alterar o nome consulta para Orçamento

• Vá até Home → Close & Carga

A saída é um conjunto muito agradável não dinamizado de dados, com as datas corretas associadas a cada transação:

Figura 125 O conjunto de dados não dinamizado.


86 M é para (dados) do macaco

Mas como bem ele atualizar? Tente isto para ver:

• Ir para a planilha de dados

• célula B1 atualização a 2015

Parece que a planilha de entrada de dados está funcionando:

Figura 126 A folha de cálculo de entrada de dados é ainda reagir de forma dinâmica.

Agora verifique a consulta de energia:

• Selecione a planilha que contém a tabela de Orçamento

• Ir para Dados → Atualizar tudo

Parece que a mesa está a trabalhar muito bem também!

Figura 127 As atualizações da tabela de saída para refletir as datas atuais.

Com os cabeçalhos da tabela agora essencialmente dinâmico e sua capacidade de rapidamente UNPIVOT os dados em uma tabela, você agora abriu
grandes possibilidades para os dados. Desde a fusão deste com outros conjuntos de dados para alimentá-lo em tabelas dinâmicas ou Power Pivot, as
possibilidades são infinitas e você ainda tem um front-end user-friendly.
Capítulo 10 da Consulta Carregando Destino 87

Capítulo 10 da Consulta Carregando Destino


Enquanto a maioria dos exemplos deste livro a este ponto concentraram-se em conseguir o Potência consulta em tabelas do Excel, que certamente não é a

única opção para onde colocar os dados da consulta de energia. Na verdade, você tem três opções de carregamento de destino diferentes, alguns dos

quais podem ser usados ​em combinação:

• tabelas do Excel

• consultas somente de conexão

• O Modelo Poder Pivot Dados

A capacidade de carregar diretamente para o Modelo de Dados de Energia Pivot não é suportado no Excel 2010. Dito isto, só porque
ele não é compatível não significa que ele não pode ser feito. Você vai descobrir como fazê-lo neste capítulo.

Consulta Carregando Métodos


Cada uma das diferentes opções de carregamento tem diferentes vantagens, desvantagens e advertências associados, que vamos explorar aqui.

tabelas do Excel
tabelas do Excel são a experiência de carregamento padrão para buscas Poder de consulta. Quando você simplesmente clique em Fechar & carga na
interface do Poder Query, Excel cria uma nova tabela em uma nova planilha para armazenar a saída da consulta. A tabela recém-criado herda o nome da
consulta, com algumas modificações:

• Quaisquer espaços são convertidos em sublinhados.

• Se o nome da consulta já é usado para uma tabela existente ou intervalo nomeado, então terá uma _ # AP pended até o fim.

Uma ressalva para estar ciente de aqui é que você nunca deve dar uma consulta o mesmo nome que uma função do Excel existente. Excel tenta

interpretar intervalos nomeados antes das funções, assim que ter uma tabela chamada algo como ROUND ou ESQUERDA fará com que todas as células

que utilizam estas funções para retornar erros # N / A. Se você está simplesmente a leitura de dados de uma tabela e não fazendo manipulações para ele,

usando a opção padrão lhe dá uma conexão com os dados em poder de consulta, mas também duplica os dados em outra planilha, aumentando o tamanho

do arquivo e adicionando sobrecarga de memória ao seu arquivo.

Consultas de conexão-Only
Como você viu no Capítulo 9, consultas somente de conexão são configurados para evitar dados de desembarque em uma planilha, mas eles ainda permitem que
você se conectar aos dados através de outras consultas de consultas de energia.

Esta opção é um fantástico que é usado com frequência na prática, como as consultas criadas desta forma são carregados sob demanda apenas quando chamado
por uma consulta posterior. Uma vez que eles não carregar quaisquer dados diretamente para a planilha, eles também não aumentar o tamanho do arquivo ou
sobrecarga de memória necessário para armazenar a saída da consulta.

Carregando a uma mesa e criar uma consulta só de conexão são opções mutuamente exclusivas. Você pode escolher apenas um ou o
outro.

Por exemplo, quando você abre CH10 Exemplos \ Carga Destinations.xlsx, você verá que o livro contém duas tabelas de itens de vendas de
uma loja de animais. O analista deseja mesclar essas mesas para uso em uma solução ness inteligência empre-. Como ela faz isso?

Ela poderia carregar cada tabela em uma consulta, carregar as consultas em planilhas, e em seguida, criar uma consulta acréscimo que iria também ser
carregado em uma planilha. Ela seria, essencialmente, criar três cópias dos dados, o que parece um pouco ridículo.

A melhor alternativa é usar consultas somente de conexão para criar ponteiros para as tabelas de dados originais e, em seguida, criar uma
consulta acréscimo contra essas conexões e conseguir a saída em uma tabela. A mesa final agiria como fonte para tabelas dinâmicas do
analista, e não haveria uma etapa extra duplicação no meio. Para configurar esta solução, você deve seguir estes passos:

• Abertas Exemplos CH10 \ Carregue Destinations.xlsx


88 M é para (dados) do macaco

• Selecione uma célula no intervalo de dados na planilha Maio

• Criar um novo → consulta Da Tabela

• Alterar o nome da consulta para Vendas de maio

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

• Selecione uma célula no intervalo de dados na planilha junho

• Criar um novo → consulta Da Tabela

• Alterar o nome da consulta para Vendas-Jun

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Este processo dá-lhe duas consultas somente de conexão, sem duplicar quaisquer dados no livro:

Figura 128 duas consultas só de conexão, pronto para uso.

Agora você pode criar uma consulta acréscimo para mesclar as duas conexão de apenas consultas junto:

• Botão direito do mouse as vendas do mês de Maio consultar → Append

• Escolha para anexar Vendas-Jun → OK

• Renomear as vendas de consulta

• Botão direito do mouse na coluna Data → Alterar tipo → Data

• Vá até Home → Close & Carga

Poder consulta cria uma nova tabela que contém todos os dados e está pronto para ser girado:

Figura 129 Uma consulta de acréscimo criado a partir de duas consultas somente de conexão.

Ao criar uma nova consulta contra uma consulta só de conexão, não é necessário para carregar o put out- para uma tabela Excel. Você
poderia facilmente carregá-lo para outra consulta só de conexão, se necessário.

Carregando to Power Pivot (Excel 2010)


Na verdade, existem duas maneiras de carregar os dados de potência consulta para poder dinâmica no Excel 2010. Mas só um é oficialmente suportado:
Carregamento via tabelas vinculadas.
Capítulo 10 da Consulta Carregando Destino 89

Para fazer o link esses dados para o modelo de dados Pivot Energia, você selecionar qualquer lugar dentro da tabela de vendas, vá para a guia de alimentação

Pivot, e clique em Criar tabela ligada. O resultado final é um fluxo de dados que segue este processo: Tabela de Excel → consulta → consulta acréscimo só de

conexão → Excel mesa → Pivot Poder

Você poderia pensar que seria mais fácil simplesmente ir diretamente de suas tabelas de vendas mensais, ligar ambas as tabelas para
poder Pivot, e criar uma relação de evitar a necessidade de criar a consulta de acréscimo. A questão aqui é que Power Pivot é grande
em criar relacionamentos horizontalmente (replicando PROCV funcionalidade ()), mas é péssimo em empilhar duas mesas em cima uns
dos outros (dados anexando). Os desafios com esta abordagem são duplas:

• Seu dados são duplicados porque ele é carregado para a planilha primeiro e depois para o Modelo de Dados.

• Suas tabelas Poder Pivot são limitadas a um máximo de 1,048,575 linhas de dados (1 menos do que o número de linhas na
planilha).

Então, enquanto isso funciona e é o método suportado, usando métodos de carregamento suportados do Poder de consultas definitivamente tem alguns
inconvenientes para modeladores graves.

Carregando para o Modelo de Dados (Excel 2013+)


No Excel 2013 e superior, o processo de vinculação ao modelo de dados é realmente muito mais fácil: Excel dá-lhe uma pequena caixa que você pode verificar
para ter o Excel fazer o trabalho para você. Para ver isso em ação, você pode modificar a conexão da tabela de vendas existente:

• No painel a pasta de trabalho Consultas, clique com o botão direito na consulta Vendas → Carga Para ...

• Selecione Somente Criar Conexão

• Verifique a adicionar esses dados para a caixa de seleção Modelo de Dados

• Clique em Carregar

Figura 130 Alterando as opções de carregamento consulta.

Fazer essas alterações desencadeia um aviso sobre possível perda de dados. Isso acontece porque a mudança de tabela para criar Apenas
Connection diz Excel que você gostaria de remover a tabela que Power consulta desembarcou na planilha. Porque isso é de se esperar, você
pode simplesmente reconhecer o aviso clicando em Continuar.
90 M é para (dados) do macaco

Se você precisar, você é capaz de carregar os dados a ambos uma tabela em uma planilha, bem como o Modelo de Dados.

Depois Poder consulta leva um pouco de tempo para remover a tabela e definir as coisas com o Modelo de Dados, você pode dirigir-se para poder
Pivot e vá para a guia Pivot Poder → Gerenciar.

Figura 131 Os dados são confortavelmente carregado para o modelo de dados de potência do pivô.

Você também encontrará que as atualizações para as tabelas de alimentação da consulta fluir sem problemas para poder Pivot. Adicionar uma nova coluna à
tabela de vendas em Power consulta para ver como Poder Pivot manipula-lo:

• Voltar para Excel e editar a consulta Vendas

• Selecione a coluna Data → Adicionar Coluna → Data → mês → Mês

• Vá até Home → Close & Carga

• Retorno ao poder Pivot

Os dados são atualizados automaticamente para você, e você não precisa mesmo de acionar uma atualização.

A Figura 132 uma actualização de consulta empurrada directamente para o modelo de dados.

Alterar as Configurações Carregando consulta padrão


Se você achar que você está fazendo um monte de modificações para a experiência de carregamento padrão, você pode fazer alterações em sua
experiência padrão. Onde fazer essas alterações depende da sua versão do Excel:

• Excel 2016: Dados → nova consulta → opções de consulta

• Excel 2010/2013: Consultas de energia → Configurações → Opções

Após um desses conjuntos de instruções abre a janela de opções de consulta, onde você pode mudar o seu comportamento de carga padrão:
Capítulo 10 da Consulta Carregando Destino 91

Figura 133 Alterar as definições de carregamento padrão.

Para anular as configurações padrão, selecione Especificar Carregar configurações personalizado padrão e, em seguida, definir essas configurações como desejar.
O truque aqui é que, desmarcando Load para Planilha, você cria uma consulta só de conexão. Você pode então opcionalmente selecione a opção Carregar ao
Modelo de Dados (em Excel 2013 ou superior.)

Carregando diretamente ao Poder dinâmica no Excel 2010


Vamos ser justos: Ter que carregar os dados no modelo de dados Excel 2010 através de uma tabela parece louco. E, de fato, há uma maneira de ir diretamente
para o Modelo de Dados, sem passar por uma tabela ligada pela primeira vez. Uma advertência completa sobre este assunto, no entanto, é que este é não
suportado pela Microsoft, que significa que você fazer isso em seu próprio risco.

Conectando-se ao Modelo de Dados


Conectando-se diretamente ao modelo de dados no Excel 2013 ou superior é muito fácil, mas no Excel 2010 que você precisa fazer um pouco mais de
trabalho para retirá-la. Para ver como ele funciona, você vai usar os exemplos CH10 \ Destinos Carga - Pré DataModel.xlsx livro, que contém a consulta
de vendas criado anteriormente, carregado a uma planilha, mas ainda não ligada ao Poder Pivot.

Tal como acontece com trabalhar com o Excel 2013 ou superior, você quer que isso seja uma consulta só de conexão, como o ponto inteiro é para evitar o
carregamento para uma planilha em primeiro lugar. Então, você precisa convertê-lo:

• Abra o painel a pasta de trabalho Consultas → botão direito do mouse Vendas → Carga Para ... → Só Criar Conexão → Carga

• Clique em Continuar para aceitar a possível aviso de perda de dados

Agora você precisa vincular a consulta Vendas diretamente ao Modelo de Dados do Poder Pivot. Isso é feito dentro da janela do Poder Pivot:

• Ir para poder Pivot → Poder Pivot janela


• Ir para design → Conexões Existentes → desça até o final Isto é perfeito: As

consultas estão todos listados em Power Pivot já!

Figura 134 ligações A consulta Poder consultas são existentes!

• Clique duas vezes em consulta - Vendas → Avançar

Agora você verá a tela seguinte, que permite que você especifique a consulta SQL para ler a partir de sua consulta. Estranhamente, no entanto, você não pode
editar a instrução SQL.
92 M é para (dados) do macaco

Figura 135 A consulta com o SQL não-editável.

Isto é seu só chance de definir o nome da tabela de Energia Pivot. . . sempre. Atualize o nome da consulta para algo mais lógico
aqui e cometer um erro em seu perigo, pois é un-editável após este ponto.

• Alterar o nome da consulta para Vendas → Terminar A consulta

agora é carregado para o Modelo de Dados:

Figura 136 Uma consulta carregado directamente para o modelo de dados do Excel.

Adicionando Colunas à Consulta


Agora, o que sobre a adição dessa coluna Mês? Volte para a consulta Vendas e adicioná-lo:

• Editar a consulta Vendas

• Selecione a coluna Data → Adicionar Colunas → Data → mês → Mês

• Vá até Home → Close & Carga Agora, dê

uma olhada em como ele atualiza:

• Retorno ao poder Pivot

• Ir para Home → Atualizar

coisas não vão bem:


Capítulo 10 da Consulta Carregando Destino 93

Você recebe um erro imediatamente. E clicando em Detalhes do erro produz uma mensagem que diz isso (e mais):

A consulta 'Vendas' ou uma de suas entradas foi modificado em Power consulta após essa conexão foi adicionado. Por
favor, desativar e reativar o carregamento para o Modelo de Dados para esta consulta.

Isso obviamente não é bom. Assim como você corrigir isso?

A questão é que as consultas Poder consulta são compilados em uma cadeia de ligação complicada. E cada vez que uma consulta de origem é
modificado, a seqüência de conexão é alterado. Porque você ligados à cadeia de conexão ao configurar essa consulta, você precisa atualizar essa
cadeia, e isso é como fazê-lo:

• Ignorar o erro
• Voltar para Excel

• Ir para Dados → Conexões

• Selecione Consulta - Vendas → Propriedades → Definição

• Clique dentro da seqüência de conexão caixa → pressione Ctrl + A para selecionar todo o string de conexão

• Pressione Ctrl + C para copiar toda a cadeia de conexão

• Clique OK → Fechar

• Retorno ao poder Pivot → Projeto → conexões existentes → Consultar - Vendas → Editar

• Selecione tudo dentro da seqüência de conexão (Ctrl + A não funciona aqui)

• Pressione Ctrl + V para colar toda a cadeia de conexão que você copiou anteriormente

• Clique em Salvar → Fechar

• Vá até Home → Atualizar

Mas o que é isso? Enquanto a conexão agora é atualizada, a nova coluna do mês não está presente? Como se o processo inicial não foram tempo

suficiente, você precisa re-confirmar a consulta de tabela, bem, indo para o Design
→ Propriedades da tabela → Salvar.

Agora você está feito. A aberto simples e salvar, e você finalmente ver a sua nova coluna:
94 M é para (dados) do macaco

Figura 137 A nova coluna mês finalmente chega em Power Pivot.

Removendo colunas de uma consulta


Como você remover colunas de uma consulta? Um processo de actualização semelhante é necessário:

• Voltar para Excel

• Ir para a pasta de trabalho Consultas → clique direito a consulta Vendas → Editar

• Excluir o passo Mês Inserida na janela de Passos Aplicadas

• Vá até Home → Close & Carga

• Ir para Dados → Conexões

• Selecione Consulta - Vendas → Propriedades → Definição

• Clique dentro da seqüência de conexão caixa → pressione Ctrl + A para selecionar todo o string de conexão

• Pressione Ctrl + C para copiar toda a cadeia de conexão

• Clique OK → Fechar

• Retorno ao poder Pivot → Projeto → conexões existentes → Consultar - Vendas → Editar

• Selecione tudo dentro da seqüência de conexão (Ctrl + A não funciona aqui)

• Pressione Ctrl + V para colar toda a cadeia de conexão que você copiou anteriormente

• Salvar → Fechar

• Ir para Projeto → Propriedades da tabela → Guardar

• Vá até Home → Atualizar

Este processo pode parecer incrivelmente doloroso, mas se você seguir estes passos, você pode facilmente atualizar uma tabela de Energia Pivot Excel 2010
quando são feitas alterações às suas perguntas da consulta Poder. O processo é tedioso, mas pelo menos é sempre o mesmo.

O problema com o carregamento diretamente ao Poder dinâmica no Excel 2010 é que tanto poder de consulta e Poder Pivot foram
add-ins separados para Excel 2010. Poder Pivot foi integrado no Excel 2013 e Energia Consulta em 2016. Assim, a partir do Excel 2013,
Energia e Consulta poder Pivot foram capazes de começar a falar uns com os outros corretamente, e Excel podem lidar com este
processo, sem intervenção manual.

Perigos do modelo de dados em Excel 2010 e 2013


Porque o poder de consulta é um add-in separado do Excel 2010 e 2013, há algumas crasies idiosyn- muito perigosos que você precisa estar ciente
de quando se trabalha com Power Query. Felizmente, estes foram resolvidos com o Excel 2016 e para algumas pessoas usando o Excel 2013, mas
se você está desenvolvendo em versões anteriores, você nem precisa de ir “all in” com Power consulta ou evite usá-lo.

Como corromper seu Modelo


Corrompendo o seu modelo é mortal fácil, ea pior parte é que você pode não perceber há meses que você fez isso. Aqui está uma maneira muito fácil de
fazê-lo (e é seguro para experimentá-lo aqui, então vá para ele!):

• Abra os exemplos CH10 \ Destinos Carga - completa que pertence à sua versão
• Abrir Pivot Poder
• Renomeie os Transações planilha de vendas
Capítulo 10 da Consulta Carregando Destino 95

Seu modelo está quebrado, mas certamente não se parece com ele, não é? Na verdade, ele continua a atualizar se você vá até Home → Atualizar no
Poder Pivot ou Dados → Atualizar tudo no Excel. Então, qual é o problema?

Figura 138 O modelo ainda refresca, então qual é o problema?

o modelo é danificado, mas sua pasta de trabalho continuará a atualizar, possivelmente por meses, antes de descobrir isso. O que irá desencadear a questão
de realmente elevar sua feia cabeça? Qualquer alteração a consulta subjacente. Para ver o que queremos dizer, voltar e adicionar essa coluna mês
novamente, usando as etapas descritas anteriormente neste capítulo. Se você usar o Excel 2010 ou 2013, uma vez que você seguiu os passos normais para
atualizar sua tabela, os dados não poderá carregar com o Modelo de Dados de Energia Pivot:

Figura 139 um erro? Mas é atualizado ontem!

O que é ainda pior é que a mensagem de erro só forneceu indica que há algo de errado com a conexão, mas não o que ou
como corrigi-lo.
você pode até mesmo verificar um modelo para ver se ele é danificado? Sim você pode:

• No Excel vá para Dados → Conexões

• Selecione sua consulta Poder consulta → Propriedades → Definição

Se a seqüência de conexão fica acinzentado e você recebe uma mensagem no canto inferior esquerdo que lê “Algumas propriedades não
podem ser alteradas porque esta conexão foi modificada usando o PowerPivot add-in”, você está muito atrasado. O dano já foi feito, e é
irreversível.
96 M é para (dados) do macaco

Figura 140 jogo de poder de consulta sobre a tela.

A notícia mais terrível sobre isso é que há apenas uma correção. Você deve:

1. Eliminar a mesa, incluindo quaisquer medidas e campos calculados que vivem nele, e depois

2. recriar a tabela, medidas e calculadas campos a partir do zero.


É horrível, é feio, e é temido. Também é totalmente evitável se você for disciplinado.

Critical fazer e não fazer para evitar corromper seu modelo


Usando a energia de consulta para dados de origem para seu Poder Data Model Pivot é completamente estável, desde que você siga certas regras.

Se seus dados tenham sido carregados no Modelo de Dados de Energia Pivot do Poder Query, então você deve Nunca fazer qualquer um dos seguintes:

• Alterar o nome da tabela em Power Pivot

• Renomear uma coluna importada em Power Pivot

• Excluir uma coluna importada em Power Pivot

Qualquer uma destas acções irá imediatamente corromper o modelo, definindo a tabela em um estado não-atualizável na próxima vez que a consulta

Poder consulta é modificado. Tenha em mente que é seguro para executar o seguinte:

• Adicionar / modificar / remover colunas personalizadas no Poder Pivot

• Adicionar / modificar / remover relacionamentos no Poder Pivot

• Adicionar / modificar / remover medidas (campos calculados) em Poder Pivot

• Fazer quaisquer modificações para a mesa em Power consulta

A regra básica é esta: Se você carregou seus dados de Poder Query, fazer todos as modificações a essa tabela em Power consulta. Se você
seguir esta regra, você nunca vai enfrentar o problema de corromper o seu modelo.
Capítulo 11 Tipos Definição de Dados 97

Capítulo 11 Tipos Definição de Dados


Como Poder consulta amadurece, ele está ficando melhor e melhor a configuração automaticamente tipos de dados apropriados nas colunas de dados. Mesmo
assim, ainda há momentos em que ele aparece com uma escolha estranha (ou nenhuma escolha em tudo). Isso pode deixar armadilhas escondidas em conjuntos
de dados que podem elevar suas cabeças feias quando você menos espera e podem causar todos os tipos de confusão.

Que tipos de dados são reconhecidas?


Consulta poder reconhece tipos, mais vários dados, na verdade, do Excel faz. A lista completa de tipos de dados do Poder Que- ry é:

• Número: Número decimal, número inteiro, Moeda


• Data / vezes: Data / Hora, data, hora, data / hora / fuso horário, duração

• Texto: Texto

• Boleano: Verdadeiro falso

• Objeto: Binário

• Indefinido: Qualquer

O verdadeiro assassino é no último tipo de dados. Qualquer é um tipo de dados variante que Power consulta vai usar para indicar que ele não tem certeza do tipo
de dados. O desafio aqui é que os dados definidos como Qualquer poderia tomar uma variedade de formas, quando está a ser carregado ou referenciado no futuro.

Por que tipos de dados são importantes?


Para demonstrar a importância de definir tipos de dados, neste capítulo, você irá criar uma nova consulta e remover os tipos de dados que
Power Consulta define para você. Isto lhe dará uma boa compreensão de por que declarar tipos de dados é importante e não algo que você
deve deixar ao acaso.

Mesas eo tipo Qualquer dados


Comece por carregar uma consulta com nenhum tipo de dados definidos em uma tabela do Excel:

• Abertas Exemplos CH11 \ Tipos Definição de Dados

• Selecione uma célula na tabela de dados de Maio → criar um novo → consulta Da Tabela

• Remova a passo tipo alterado


Neste ponto, os dados não tem tipos de dados definidos em tudo, que você pode ver, selecionando uma célula na coluna e, em seguida, olhando na guia
Transformação:

Figura 141 A coluna Data com um tipo de data faz.

• Curiosamente, cada coluna no conjunto de dados tem o mesmo tipo de dados, Qualquer, mas todos eles parecem diferentes. As datas parecem
que estão em formato de data / hora e os números parecem que são o tipo de dados Number. Então, qual é o problema? Siga estes passos para
descobrir:
98 M é para (dados) do macaco

• Renomeie a consulta pode

• Vá até Home → Close & Carga Aqui está

a tabela do Excel que aparece:

Figura 142 O que aconteceu com essa coluna Data?

Como você pode ver, o Excel não reconheceu a coluna Data como datas, mas sim colocados os números de série de data. Enquanto isto está facilmente
rectificado (através da formatação da coluna como datas), é indicativa de um problema mais grave.

Pivot poder e o tipo Qualquer dados


Neste ponto, fazer uma mudança para a consulta e carregá-lo para o Modelo de Dados:

• No painel a pasta de trabalho Consultas clique com o botão direito do Maio consulta → Carga Para ...

• Verifique a Adicionar a caixa de seleção Data Model (deixando a opção tabela selecionada) → carga → Continuar Depois de submeter

essa alteração, a tabela de Excel na planilha também muda!

Figura 143 mudanças estranhas que ocorrem quando você adicionar os dados para o modelo de dados.

Esta é provavelmente uma das mais estranhas mudanças que você verá em Power Query. O simples ato de adicionar essa conexão com o Modelo de Dados de
Energia Pivot muda o campo de volta para uma data no Excel mesa ou não? Para ver se ele faz:

• Selecionar coluna A → Home Style → Comma

Não há mudanças! Na verdade, você pode aplicar qualquer estilo numérico para os dados na coluna A que você gosta, e isso não vai mudar isso. Os dados agora
está sendo tratado como texto, não como uma data em tudo.

E quanto dentro de Energia Pivot? Se você abrir Poder Pivot, você vê que os dados estão lá, e parece que um valor Data / hora válida. Mas quando
você seleciona a coluna, você pode ver claramente que o tipo de dados foi definido para texto. Isso certamente não vai ajudar na criação de um
relacionamento para a sua mesa calendário!
Capítulo 11 Tipos Definição de Dados 99

Figura 144 Datas que não estão realmente lançamento dentro Poder Pivot.

Lidar com qualquer tipo de dados


A correção para esses problemas é muito simples. Você editar a consulta de Maio e definir os tipos de dados, como este:

• No painel de pasta de trabalho Consultas botão direito do mouse Maio → Editar

• Defina a coluna de data para um tipo de dados Data

• Defina o item de estoque e vendido por colunas para um tipo de dados de texto

• Defina as colunas custo e preço para um tipo de dados Número inteiro

• Defina a coluna Comissão a um tipo de dados número decimal

• Vá até Home → Close & Carga

Se você agora verificar o modelo de mesa e Poder Pivot, você verá que tudo está a ser tratado como os tipos de dados que você esperaria.

Lembre-se que Power Pivot formata datas válidas em um formato Data / hora, com 0:00:00 sendo 0 minutos depois da
meia-noite da data prevista.

Combinando consultas com diferentes tipos de dados


Uma das tarefas é provável que você execute muitas vezes está anexando duas tabelas. Mas o que acontece quando as colunas nessas tabelas têm tipos de
dados diferentes?

Desde que você já tem a consulta pode corrigido, agora você pode criar uma nova consulta para os dados de junho, sem tipos de dados e ver o que
acontece quando você anexá-las:

• Selecione a tabela de Junho → criar um novo → consulta Da Tabela

• Remova a passo tipo alterado


• Renomeie a consulta junho

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Anexando Definido para qualquer tipo de dados


Agora você pode anexar as duas consultas:

• No painel a pasta de trabalho Consultas botão direito do mouse a consulta junho → Append

• Selecione a consulta pode → OK

Neste ponto, se você verificar o tipo de dados na coluna Data, você vai ver que é Qualquer:
100 M é para (dados) do macaco

Figura 145 tabelas combinadas com diferentes tipos de dados.

Isso provavelmente não é muito surpreendente. Afinal, você começou com uma consulta onde a coluna Data foi definida como Qualquer, então acrescentar

algo mais a um Qualquer provavelmente deve render uma coluna com o mesmo tipo de dados. Você pode finalizar esta consulta e ver o que acontece se

você atacá-lo do outro lado:

• Renomeie a consulta jun + Maio

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Anexando Qualquer para tipos de dados definidos


Agora tente este de outra direção, começando com uma coluna que tinha os tipos de dados definidos:

• Ir para o painel a pasta de trabalho Consultas → botão direito do mouse a consulta pode → Append

• Selecione a consulta junho → OK

Os dados certamente parece melhor, mas quando você inspecionar a coluna Data, ele ainda mostra como um Qualquer tipo de dados:

Figura 146 A coluna Data ainda mostra como um tipo de quaisquer dados.

Por agora é bastante claro que não importa em que ordem você acrescentar as consultas: Se os tipos de dados são incompatíveis entre os conjuntos,
eles serão convertidos para Quaisquer tipos de dados.

Agora você pode finalizar esta consulta e ver o que acontece se você corrigir o problema na tabela subjacente:

• Renomeie a consulta pode + jun


Capítulo 11 Tipos Definição de Dados 101

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Anexando tipos de dados consistentes


Como você já sabe os dados tipos são definidos na consulta de maio, você pode fazer os tipos de dados consistentes na consulta de junho e ver
como isso afeta as consultas acréscimo:

• No painel a pasta de trabalho Consultas clique direito de junho → Editar

• Defina a coluna de data para um tipo de dados Data

• Defina o item de estoque e vendido por colunas para um tipo de dados de texto

• Defina as colunas custo e preço para um tipo de dados Número inteiro

• Defina a coluna Comissão a um tipo de dados número decimal

• Vá até Home → Close & Carga

E agora você pode voltar para uma das duas consultas acréscimo para ver os efeitos. Não importa qual você escolher, você verá que os valores na
coluna Data mostram-se adequadamente definidos como tipos de dados Data.

Figura 147 O tipo de dados da data é agora aplicada à coluna da consulta de acréscimo.

Tipo de dados de Melhores Práticas


Embora possa ser tentador apenas confiar no poder de consulta para atribuir tipos de dados e continuar, nós reco- fortemente ommend que você reveja
o passo final de cada consulta de saída e definir seus tipos de dados lá. Mesmo que a Microsoft está constantemente a melhorar a interface, há ainda
comanda na interface de alimentação de consulta que irá retornar um tipo de quaisquer dados, mesmo que foi definido antes.

Até recentemente, um exemplo disso foi a criação de um fim de mês de uma data. Mesmo que a coluna com a data foi devidamente formatado como
uma data, a função Month End retornou um valor que parecia uma data, mas era, de fato, um Qualquer. Embora esta questão específica é agora fixo,
não estão vinculados a ser ainda questões como esta à espreita no programa.

Além disso, há também certos comandos que não serão executados em colunas, onde o tipo de dados é definida como qualquer. Um tal comando é
o comando Substituir Valores, o que nem sempre vai encontrar certos valores. Se a coluna é convertido em texto, no entanto, as funções de
comando corretamente novamente.

Como você viu, o risco de ter seus dados definidos como um tipo Qualquer dados podem causar problemas em ambos Excel e Power Pivot, e estes
problemas podem se manifestar de diferentes maneiras. Lembre-se também que fixa as duas consultas pend ap- neste capítulo simplesmente mudando
o tipo de dados subjacente. O outro lado disso é que seria tão fácil de quebrar as coisas ao modificar uma consulta subjacente e fazer com que a
consulta final para tornar Quaisquer tipos de dados. Para a quantidade de esforço em comparação com a paz de espírito, é altamente recomendável que
você crie o hábito de definir tipos de dados para cada coluna como a etapa final de uma consulta de produção, mesmo se os tipos de dados foram
definidos anteriormente. Embora possa parecer entediante, lembre-se que é uma tarefa única para uma consulta que poderia ser executado novamente a
cada dia do ano.
102 M é para (dados) do macaco
Capítulo 12 Importação de dados Web 103

Capítulo 12 Importação de dados Web


Um dos casos de uso muito interessantes para Power consulta é quando aproveitando-a para puxar os dados relevantes para o seu negócio a partir da web.

Poder consulta funciona muito bem quando os dados site são armazenados em tabelas, e na ocasião ele ainda permite que você acessar diretamente um arquivo
de texto que está segurando informações. Se os dados não está formatado com marcas de tabela no código HTML, no entanto, as coisas se tornam muito difícil,
mesmo se você tem algum conhecimento de HTML.

Ligar a Páginas com Tabelas


Para o exemplo neste capítulo, você vai assumir o papel de uma pessoa de marketing que está tentando descobrir os melhores países em que a
comercializar um produto. A estatística principal que você quer descobrir na frente é que 10 países têm as maiores populações, como que parece ser um
fator que poderia ser razoavelmente interpretado de forma a impulsionar as vendas.

A fim de obter essa informação, você têm vindo a explorar o site da CIA World Factbook, e você se deparar com uma página web que lista
as populações dos países do mundo. Você gostaria de puxar esses dados em Excel para que você possa usá-lo com outras tabelas. Siga
esses passos:

• Criar um novo → consulta De Outras Fontes → De Web

• Quando solicitado para o URL, digite o seguinte: https://www.cia.gov/library/publications/the-world- factbook / rankorder /


2119rank.html

• Clique OK

Agora você for solicitado com um conjunto de opções de autenticação:

Figura 148 A caixa de diálogo de autenticação web.

Existem várias opções pelo lado esquerdo da caixa de diálogo, permitindo que você escolha a partir do Windows ou autenticação básica, fornecer
uma chave de API Web, ou mesmo fornecer seu escritório 365 credenciais. O importante para você neste momento é a opção Anonymous.

A questão está a ser feita aqui é se você gostaria de usar essas credenciais para a página específica ou o domínio raiz. Embora existam algumas
vezes razões para escolher a página específica, as chances são que você provavelmente vai querer ficar com o domínio de na maioria dos casos
default-o de raiz. Assim, garantir que a primeira opção é selecionado e clique em Conectar.

Neste ponto, Poder consulta inspeciona o documento, olhando para as tabelas. Depois de ter trabalhado o conteúdo que ele reconhece, ele
envia-lo para o painel Navigator. Neste caso, há duas opções para escolher-Table 0 ou Documento:
104 M é para (dados) do macaco

Figura 149 A pré-visualização da tabela 0 no Navigator.

Neste caso, o poder de consulta reconhece que o documento HTML contém uma tabela denotados por tags tabela no código da página. Ele apresenta que

a tabela para você em um formato fácil de usar. Se você selecionar a opção Documento, você vê que ele não parece quase tão bonita:

Figura 150 Nada de bom pode vir deste.

A realidade aqui é que ele vai ser muito mais difícil de extrair os seus dados através da interface de documento que através de uma
tabela.

Felizmente, os dados parecia muito bom na visualização da tabela de tabela 0. Já foi organizado em um formato de tabela bonito, com
cabeçalhos em lugar. Foi mesmo já classificados em ordem crescente, assim como era na página web. Seu objetivo real é para filtrar para obter
os 10 principais países, por isso siga estes passos:

• Selecione Tabela 0 → Editar

• Renomeie a consulta Top 10 População

• Vá até Home → Manter linhas → Manter linhas superiores → 10 → OK Isto é o que

você tem agora:

Figura 151 Você tem seus 10 países.

A consulta está já concluída, para que possa finalizar-lo selecionando Início → Close & Load.
Capítulo 12 Importação de dados Web 105

Ligar a arquivos hospedados na Web


Quando isso acontece, a página World Factbook realmente faz uso de um arquivo de texto para alimentar os dados exibidos na página da web.

Agora, se acontecer de você conhecer a URL para o arquivo de texto, você pode conectar-se diretamente a ele? A resposta é sim, e aqui está como funciona:

• Criar um novo → consulta De Outras Fontes → De Web

• Digite o URL da seguinte forma: https://www.cia.gov/library/publications/the-world-factbook/rankorder/ rawdata_2119.txt

• Clique OK

Está lançada diretamente no editor de Energia Consulta.

Observe este tempo que você ignorar a etapa de autenticação site. A razão para isto é que você especificou que
queria as configurações de autenticação para aplicar para o site raiz (www.cia. Gov) quando criou a consulta anterior.
você não tivesse feito isso antes, você teria sido solicitado a fornecer o método de autenticação.

Figura 152 Conexão direta a um arquivo de texto através da web.

Com base nos dados que você voltar, você pode assumir que os cabeçalhos das colunas não são armazenados no arquivo de texto, mas sim foram fornecidas
pelo HTML da página web. Isso não é grande coisa, porém, como você pode corrigir isso para fazer os seus dados consistente com a experiência anterior:

• Vá até Home → Manter linhas → Manter linhas superiores → 10 → OK

• Botão direito do mouse Column1 → Rename → Posto

• Botão direito do mouse Column2 → Rename → País

• Botão direito do mouse Coluna3 → Rename → População

• Mudar o nome da consulta De Texto

Parece que a data da estimativa também foi fornecido pela página HTML, não o arquivo de texto, mas desde que isso não é um grande negócio para você, você

não está preocupado com isso. A coisa verdadeiramente importante aqui é que você posso conectar diretamente para um arquivo hospedado na web sem passar

por toda a interface de página da web. . . se você sabe onde ele está.
106 M é para (dados) do macaco

Ligar a páginas sem Tabelas


Se a página da web que você está se conectando não contém marcas de tabela no código-fonte HTML, você é deixado com uma experiência
horrível de tentar furar os elementos HTML. Esta experiência é tão divertido como navegar em um labirinto subterrâneo usando uma vela para a luz,
onde cada poste de sinalização simplesmente diz “este caminho.” A melhor maneira de obter ajuda nesta situação é para abrir seu navegador, ligue
as ferramentas de desenvolvedor , e tentar encontrar o elemento que você deseja extrair. O seguinte é o inspetor elemento no Chrome (que é
aberto pressionando F12) para a página web CIA:

Figura 153 HTML inferno.

O truque para isso é primeiro expandir o < classe html tag no topo. Você, então, mouse sobre cada flecha e ver o que ele destaca na janela do
documento principal. Quando o realce de cobre a sua mesa, você expandir esse elemento clicando na seta que aponta certo. (Neste caso,
<body> precisa ser ampliado.) A seta, em seguida, gira para baixo, expondo mais elementos, e você continuar o processo até encontrar os
seus dados. Em seguida, você expandir <div class =”main-block”> e depois <section id =”main”> e, em seguida, a segunda classe div, e assim
por diante.

Se você acidentalmente viajar em um buraco que não tem seus dados, você voltar para um nível acima e recolher esse bloco de código clicando na
seta. Este gira a seta para trás a partir apontando para baixo para apontar para a direita, e ele recolhe os elementos contidos dentro dessa tag.

Depois de ter navegado através do processo e encontrou seus dados, você pode começar a segunda parte dolorosa: replicar a navegação no
Poder Query. Aqui está o que você faz:

• Criar um novo → consulta De Outras Fontes → De Web

• Digite o URL que você usou para o primeiro exemplo: https://www.cia.gov/library/publications/the-world- factbook / rankorder /
2119rank.html

• Clique OK → Documento → Editar


Capítulo 12 Importação de dados Web 107

Você está agora a olhar para este ponto de vista bastante hostil no editor de alimentação Inquérito:

A Figura 154 uma vista mais inspirador.

Agora você precisa para replicar com muito cuidado os passos que você tomou na interface web developer, perfurar elemento da tabela
correspondente do Poder Query. Existem alguns paralelos entre os dois programas para ajudar, mas, mesmo assim, é fácil se perder.

O truque para navegar este processo é reconhecer que o campo Nome em Power consulta contém o elemento mostrado nas ferramentas de
desenvolvimento web. Neste caso, você tem HTML, e no Chrome que viu < classe html no topo. Esses dois itens são o mesmo.

Clique na tabela na coluna Crianças para perfurar para ele:

Figura 155 crianças do elemento HTML.

agora você vê as tags cabeça e do corpo. Com base no HTML você expandiu, você sabe que você precisa furar a tag Corpo. Você
clique na mesa lá e continuar.

O assassino com este processo é que, no HTML, as tags todos têm nomes, mas em poder de consulta que você não vê-los, por isso é muito fácil de se
perder. Além disso, a caixa de Passos Aplicadas não traçar a rota; ele simplesmente continua combinando passos juntos, dando-lhe nenhuma maneira para
fazer backup de um nível. Quando isso acontece, o seu único recurso é começar tudo de novo desde o início.

E como se isso não bastasse, no final deste processo de navegação, você acaba extraindo colunas para perfurar o detalhe, e ele acaba
empilhados em uma mesa vertical:

Figura 156 Tanto para uma bela mesa limpa!

Os passos para fazer esta tabela para um agradável limpa estão além do escopo deste capítulo, por isso estamos indo para abandonar esta
abordagem neste momento. (A certeza, as etapas estamos coberto, simplesmente não até o capítulo 15.) As etapas para concluir este processo têm,
no entanto, foram salvas no exemplo concluído, o que pode ser encontrada em CH12 Exemplos \ Importação de dados Web - Complete.xlsx. Esta
consulta particular foi salvo como o- Hardway. Mesmo com essa consulta para rever, você precisa reconhecer que a etapa de navegação foi gerado
como documentado abaixo.
108 M é para (dados) do macaco

A partir da tabela inicial:

Figura 157 Iniciando a viagem em HTML Inferno.

Fure Tabela na coluna crianças por:


• HTML (linha 1)

• Corpo (linha 3)

• DIV (linha 4)

• A 1ª DIV (linha 4)
• SECÇÃO (linha 2)

• O segundo DIV (linha 4)

• O segundo DIV (linha 4)

• ARTIGO (linha 4)

• DIV (linha 4)

• A 5ª DIV (linha 12)


• TABELA (linha 2)

• TBODY (linha 2)

Se você seguir este drill-down com cuidado, você vai ver que você perfurado em exatamente o mesmo lugar como exibido na etapa de
navegação da consulta TheHardWay, e você pode seguir o restante das etapas até o fim. O trabalho de perfuração no documento HTML posso ser
feito, que é melhor do que a alternativa. No entanto, não é para os fracos de coração e pode ser um processo extremamente frustrante.

Advertências e frustrações com a partir da experiência Web

A experiência de Web é certamente uma fraqueza em outra forma incrível arsenal de ferramentas de poder Query. Há várias coisas que
esperamos poderia ser melhorado nessa área, e há coisas que atente para que você desenvolver soluções com base em dados da web.

Nenhum dos fatores discutidos abaixo deve ser visto como razões para não desenvolver soluções com base em dados do site. Em vez disso, eles têm a
intenção de se certificar de que você entrar nesta área com os dois olhos abertos, vendo não só os benefícios mas também os riscos de depender de dados
web-sourced que você não controla.

A experiência de Dados Coleta


Misturas de construção em relação aos dados da web pode ser uma experiência muito dolorosa em Power Query. Se houver marcas de tabela no código HTML,
tudo funciona bem. Se não, no entanto, todas as apostas estão fora.

Compare isso com clássico → Dados do Excel A partir da experiência Web, que começa um navegador web que permite navegar na web para encontrar os
dados que você está procurando. O poder de consulta não lhe dá esta facilidade, mas em vez deixa-lhe navegar páginas da web usando um navegador
diferente.

Em si mesmo, isto pode não parecer um grande negócio, exceto para a questão que é muito difícil dizer se os dados que você está vendo no navegador
da web está em uma tabela-e fácil de usar ou não, sem olhar para o código . O desafio aqui é que você vai pegar a URL promissor, soltá-lo na interface
do Poder Query, e depois gastar uma enorme quantidade de colunas de hora em expansão, perseguindo cada rota no buraco do coelho de tags HTML,
tentando encontrar os dados que você' re procurando. Mesmo se você entender as ferramentas de depuração web, ele ainda não faz o trabalho fácil.
Porque prós Excel não são desenvolvedores web, isso é realmente uma carga desnecessária que está sendo colocado sobre eles.
Capítulo 12 Importação de dados Web 109

Idealmente, esta experiência deve lançar um navegador web, permitem que você navegue até a página e selecione o intervalo de dados que você gostaria de
importar e, em seguida, fazer o trabalho de pé de quebrar o código HTML para baixo para fazer isso por você. Até que acon- tece, no entanto, a importação de
dados que não são formatados de uma forma tabular continuará a ser difícil.

Integridade de dados

Outra grande preocupação com os dados web é a fonte e integridade dos dados. Seja cauteloso de conexão e importação de dados de sites como o
Wikipedia ou outros sites que você não tem um relacionamento comercial com. Enquanto demos gostam de usar Wikipedia como um grande exemplo, a
realidade é que confiar neste site pode ser perigoso. O conteúdo é comissariada, mas também pode ser alterado pelos usuários. Embora o local faz um
grande esforço para a curadoria de dados, as informações lá está longe de ser perfeito e não pode ser inteiramente factual.

A outra questão é quão prontamente os dados são atualizados. Imagine que investir tempo na construção de uma consulta complicado contra uma página web,
apenas para descobrir que o proprietário / curador não atualizá-lo em tempo hábil. Você precisa ter certeza de que quando você atualizar os dados, a rotina
não é meramente refrescante dados out-of-date, mas sim que é dados atuais refrescantes. É provável que você investir uma quantidade significativa de tempo
e tomar decisões de negócios, assumindo que a última atualização que você fez puxou os dados mais recentes.

Estabilidade solução
Há uma outra preocupação muito real ao construir sua lógica de negócios contra as fontes da web que você não possui ou controla. Como sua
empresa, qualquer outra empresa que fornece esses feeds e páginas quer para melhor atender seus clientes. Infelizmente para nós, isso não
significa que eles estão interessados ​em colocar para fora uma experiência consistente que nunca muda. Na verdade, o oposto é verdadeiro. Eles
também estão tentando atualizar as coisas, mudar as páginas da web para adicionar novos sinos ou assobios, ou fazer os locais mais atraentes para
o olho humano. Isto tem o efeito colateral muito real de sopro consultas à parte, geralmente sem aviso prévio, e muitas vezes quando você não tem
tempo para corrigi-los.
110 M é para (dados) do macaco
Capítulo 13 Carregando dados do Exchange 111

Capítulo 13 Carregando dados do Exchange


No passado, tentando obter dados fora do Microsoft Exchange foi um pesadelo absoluto. Tratava-se de scripts complexos VBA, desenvolvimento
significativo e manutenção dolorosa. A parte triste disso foi que há uma quantidade significativa de informações enterrado em seu e-mail e calendário
que pode adicionar grande valor para o negócio para você, mas sendo tão difícil de chegar, era uma impossibilidade. Poder consulta mudou isso,
permitindo uma maneira fácil de conectar ao seu banco de dados Exchange e começar a puxar para fora principais fatores que podem impactar suas
soluções de inteligência de negócios.

acessível de dados
Há cinco aspectos principais que você pode se conectar em seu banco de dados do Exchange:

• Enviar

• compromissos do calendário

• Pessoas

• tarefas

• solicitações de reunião

Cada um destes pode ser puxado para poder Query, limpo e se transformou em uma mesa, e depois serviu-se a uma tabela ou o Modelo de Dados de Energia
Pivot.

Casos de Uso potenciais


A questão mais difícil de quebrar a cabeça em torno relacionados com o intercâmbio como uma fonte de dados não é a forma de con- nect a ele, mas
sim por que você iria querer. A principal razão para isto é que você nunca teve a capacidade, para que você não tenha pensado muito sobre isso.
Considere os seguintes cenários e como conexão com o servidor Exchange pode ser usado em sua organização.

Os dados da pesquisa agregador


Com a capacidade do Poder consulta para ler e-mails, você pode criar uma pesquisa simples com uma tabela no corpo e enviá-lo para o seu público. Você
poderia, então, usar o poder de consulta para ler todas as respostas, extrair as informações das tabelas individuais e combinar as tabelas em uma fonte de
dados. Melhor ainda, você não precisa se preocupar se alguns- um envia uma cópia final, como você pode apenas atualizar a fonte de dados para puxá-lo em.

Agregando pedidos de orçamento


É uma prática comum para os contadores para enviar planilhas do Excel para o pessoal-chave e pedir-lhes para preencher as informações do orçamento
e voltar a planilha por e-mail. E se você poderia, então, usar o poder de consulta para fazer a varredura para todos os e-mails com um determinado
assunto e / ou anexo e, em seguida, aberto e combinar cada anexo e extrair os dados? Isto é perfeitamente possível com Power Query.

Construir um Painel Alerta de TI


Em TI, muitas vezes ficamos numerosos alertas de e-mail de vários servidores e equipamentos. Alguns são informa- cional e alguns críticos, mas,
dependendo do volume de equipamento que você tem e a frequência de alertas, eles podem rapidamente se transformar em sobrecarga de informação.
Muitas vezes esses e-mails são automaticamente encaminhadas para uma pasta e ignorado. Mas pense nisso: Você pode agora usar o poder de
consultas para agregar os e-mails, traçar o volume e gravidade, e construir uma sistemas inteiros painel de alerta de e-mail anteriormente inútil.

Infinitas possibilidades
De extrair e combinar detalhes de contato para consultas e e-mails, a verdadeira questão hoje não é E se
você pode usar esse recurso, mas como. Talvez você precise de um painel de interação que você teve com um cliente, ou que você precisa para rastrear quem
respondeu a um e-mail importante que você enviou. Há uma tonelada de informações valiosas sentado em sua caixa de entrada que você agora tem acesso a de
uma maneira que você nunca fez antes.

Construir um Painel-mail
Para este exemplo, você vai assumir o papel de proprietário de um site para ver como anteriormente inútil e-mail pode ser transformado em algo
interessante. Enquanto você não será capaz de replicar as etapas deste capítulo se (são
112 M é para (dados) do macaco

específico para caixa de entrada do proprietário do website), você verá o processo usado para retirar informações-chave para fora de e-mails não lidos
anteriormente para dirigir um painel.

Para começar, você precisa para se conectar ao Microsoft Exchange. Isto é feito através do seguinte processo:

• Criar um novo → consulta De Outras Fontes → Microsoft Exchange

• Digite seu nome de usuário e senha

• Clique em Permitir quando você for solicitado para permitir que o Serviço de Descoberta Automática do Exchange

Figura 158 Confiando o Serviço de descoberta automática.

Este serviço é configurado pelo seu departamento de TI e precisa ser confiável, a fim de acessar o servidor Exchange. É tipicamente já
instalado e configurado para permitir que telefones celulares para acessar seus e-mails remotamente.

Após um pequeno atraso enquanto o poder de consulta conecta ao servidor Exchange, você é levado para uma janela Navigator.

• Selecione Correio → Editar

Nunca clique no botão Carregar depois de escolher a mesa de correio no Navigator. Você vai estar à espera de um longo tempo em que carrega o seu inteira
caixa de entrada!

Poder Consulta lança e fornece-lhe com uma pré-visualização da caixa de entrada:

Figura 159 A lista de e-mails em sua caixa de entrada.

A fim de reduzir o número de e-mails para pesquisar, você derrotou os e-mails relevantes para uma pasta por meio de uma regra. Isso significa que você
precisa filtrar a coluna Caminho da pasta, a fim de localizar apenas os e-mails que foram encaminhadas para essa pasta específica. Curiosamente,
quando você tenta definir o filtro, a pasta relevante é não listados:
Capítulo 13 Carregando dados do Exchange 113

Figura 160 Localizando a pasta adequada.

Se você alguma vez encontrar-se que os valores que você está certo deve ser na coluna simplesmente não estão lá, olhar para a carga mais opção na parte
inferior direita. Por padrão, esta lista é reduzido para a quantidade limitada de dados mostrando na pré-visualização, mas clicando no Coloque mais botão abre
todas as pastas na caixa de entrada.

Quando a lista é exibida na íntegra, você selecionar a pasta correta, ea lista de e-mails é filtrada para mostrar apenas aqueles de interesse-os e-mails de
comissões auferidas a partir de uma fonte da filial específica:

Figura 161 A lista de e-mails com linhas de assunto emocionantes.

Enquanto eles não aparecem na imagem, uma enorme variedade de colunas estão incluídas com e-mail, incluindo os campos úteis como Para,
CC, remetente, anexos, e muito mais. Para os fins deste painel, no entanto, apenas os campos Data- TimeSent e corpo são necessários. Por
essa razão, você seleciona as duas colunas e usar a remover outras colunas comando para remover os dados irrelevantes:

A Figura 162 uma coluna cheia de registos.


114 M é para (dados) do macaco

A parte interessante da coluna corpo é que ele é cheio de registros, que você pode pensar de como as células individuais de uma tabela. Quando isso
acontece, esses registros contêm algumas informações muito interessantes no corpo do e-mail. Você também pode ver a seta de expansão no canto
superior direito da coluna corpo, o que significa que é possível expandir esses registros em uma coluna. Se o fizer, dá-lhe uma outra opção: a escolha
entre TextBody e HTMLBody. Desde trabalhar com texto é muito mais fácil do que trabalhar com HTML, normalmente você vai optar por expandir
TextBody e só então limpo e aparar os registros resultantes. O resultado é um conjunto de dados consistente, que pode então ser adicionalmente
limpo:

Figura 163 O corpo de todos os e-mails correspondentes.

Neste ponto, o corpo de e-mail pode ser pared para baixo o e-mail para obter a única parte do interesse real: o dinheiro. Uma das grandes coisas sobre o
Poder de consulta é a janela de visualização que aparece quando você seleciona qualquer célula na grade de energia Query. Não apenas você pode ver
os dados, você pode selecionar os dados nessa janela e copiá-lo. Ao invés de dividir pelo sinal $ e tem que remover uma coluna depois ou digite uma
enorme quantidade de texto na janela de substituir, porque não basta substituir o texto levando com nada? Para fazer isso, siga estes passos:

• Copie o texto da janela de pré-visualização, começando com Oi e terminando com $

• Botão direito do mouse na coluna TextBody → Substituir Valores ...

• Cole o string de texto copiado para o valor a procurar campo

• Deixe o campo Substituir por em branco

• Clique OK

Os resultados são apresentados abaixo, com o dinheiro no lado esquerdo da coluna:

Figura 164 A coluna TextBody agora começa com a parte-a importante dinheiro.

Em seguida, você precisa se livrar da porção após o dinheiro. A realidade, porém, é que você não tem certeza se o resto do e-mail é consistente,
como você perdeu o interesse e parou de ler depois que você viu os sinais de dólar. O que você sabe é que depois de cada valor em dólares há um
espaço. Então você apenas dividir com base no espaço mais à esquerda na coluna e remover a coluna posterior.

Depois de definir os tipos de dados e renomear as colunas, você é deixado com dados que parece muito melhor:
Capítulo 13 Carregando dados do Exchange 115

Figura 165 Data provenientes de e-mail, limpo e pronto para ser usado.

O passo final para esta fonte de dados é carregá-lo para o Excel e criar um gráfico dinâmico a partir dele:

Figura 166 Um gráfico de rastreamento de lucro construída a partir de e-mail anteriormente inútil.

Considere o impacto aqui, onde você esteve coletando esses e-mails para a maior parte de dois anos e nunca lê-los. De repente, eles
agora têm valor comercial. Esses e-mails podem ser usados ​como parte de um painel de e-mail para analisar a rentabilidade de uma
das fontes de renda que suporta o seu site.

Melhores práticas para Fontes de câmbio


Há duas questões principais a considerar ao construir uma solução contra um serviço Microsoft Exchange: dade porta- e desempenho.

portabilidade
A primeira coisa que você precisa para ter em conta é o tempo que esta solução se destina a sobreviver e se teremos de passá-lo para outro usuário. Por
quê? Porque você está direcionando sua própria conta de e-mail. Construindo uma solução contra a sua conta de email fechaduras-lo para baixo para que
só você pode usá-lo. Ele não pode ser compartilhada, e é difícil para a porta para outros mais tarde, já que os arquivos de origem para a solução (e-mails,
anexos, e assim por diante) estão em sua caixa de entrada. A realidade é que, se você deixar a organização, voluntariamente ou não, a solução
provavelmente irá tornar-se inútil para os outros. E se você ficar e ser promovido, você vai ser preso atualizar a solução que está vinculado a sua conta de
email.

Se você pretende usar a solução para um período mais longo, ou ele serve outros usuários, pode ser melhor para tentar descobrir como extrair os dados
da caixa de entrada em primeiro lugar e construir a solução contra essa fonte. Por e-mail mentos attach-, que é bastante fácil: basta salvá-los em uma
pasta. Para o próprio e-mail, pode não ser prático, e talvez Poder consulta é o método a utilizar para extrair os e-mails e arquivá-los em outro formato.
Independentemente disso, você deve definitivamente dar um pouco sobre um plano de sucessão para a sua solução, uma vez que começa a ser
reutilizada.

atuação
A outra consideração importante que você deve levar em conta é o desempenho, incluindo velocidade.
116 M é para (dados) do macaco

Vamos enfrentá-lo: A maioria de nós não manter as caixas de entrada de e-mail extremamente organizados. Em vez disso, eles são enormes baldes de email
abrangendo volta às vezes meses, mas mais frequentemente anos. Como resultado, a recuperação de dados do Exchange pode ser muito lento.

A solução para isso é usar regras para reencaminhar e-mails importantes em subpastas. Quando as subpastas contêm apenas os dados relevantes,
recuperação, transformar e carregar o produto acabado vai acontecer muito mais rapidamente.
Capítulo 14 Agrupamento e resumindo 117

Capítulo 14 Agrupamento e resumindo


De muitas maneiras, o agrupamento e resumindo resume a vida de um Excel pro. Você tem todos os tipos de ferramentas para o efeito, incluindo a
capacidade do Excel para subtotal, agregar e executar várias outras operações usando tabelas dinâmicas. Às vezes, porém, quando se trabalha com
grandes conjuntos de dados que você precisa para agrupar os registros na fonte antes da análise.

Poder consulta adiciona um outro conjunto de ferramentas que você pode usar para rapidamente grupo e resumir dados. Curiosamente, ele ainda lhe dá a
capacidade de remover rapidamente colunas extras, diluindo, assim, o conjunto de dados a um nível ageable verdadeiramente pelo homem.

aplicando Agrupamento
Para demonstrar como agrupar obras no Poder consulta, considere o caso de um fabricante T-shirt que tem proporcionado esta tabela de dados:

Figura 167 A lista de transações de vendas.

Seu objetivo é levar esta lista e descobrir duas coisas:

• As vendas totais para cada dia por canal

• proporção maior do produto como um percentual das vendas diárias

Conectando-se a Dados
Comece por carregar seus dados em poder de consulta:

• Abertas Exemplos CH14 \ Grouping.xlsx

• Selecione uma célula na tabela na planilha de vendas → nova consulta → De Tabela

• Botão direito do mouse na coluna Data → Alterar tipo → Data

Você tem agora a sua mesa em um estado bom, pronto para agrupar e resumir os dados:

Figura 168 A tabela está pronto para resumir.

Agrupamento dos dados


Para agrupar os dados por data e por canal.

• Selecione a coluna Data


118 M é para (dados) do macaco

• Ir para Transformar → Group By

Nesta interface, você tem a capacidade de definir os itens que você deseja agrupar por, bem como a forma como você gostaria que eles agrupados. Poder
consulta começa com apenas a coluna Data do Grupo por seção. Se você deixou que a definição de como é, você não teria os dados discriminados por data
e ChannelName, então você precisa para mudar isso:

• Clique no + ao lado do Grupo por cabeçalho

Figura 169 níveis de agrupamento Adicionando

Em seguida, você precisa determinar como deseja que os dados agrupados. Porque você está olhando para um total de todos os Nels Chan-, bem como um
total dos produtos por canal, você precisa seguir os seguintes passos:

• Alterar o nome da nova coluna do Conde aos produtos vendidos

• Clique no + ao lado da coluna do lado direito para adicionar um novo cálculo

• Dê a nova coluna um nome de Vendas $ e configurá-lo para somar a coluna Valor

Figura 170 O nível de agrupamento é configurado correctamente.

• Clique OK
Capítulo 14 Agrupamento e resumindo os dados são agrupados para 119

você, como mostrado abaixo:

Figura 171 Os dados são bem agrupadas por data e ChannelName.

Observe que o recurso de agrupamento funciona muito bem para se agrupados os seus dados, e você pode ter vários níveis empilhados muito
facilmente para ambos os níveis de agrupamento e cálculos. Você pode agregar os dados de diferentes maneiras aqui também, incluindo linhas de
contagem, contando linhas distintas, ou realizar operações de soma, média, mediana, Min ou Max.

Como um bônus adicional, o recurso Agrupar remove todas as colunas que não foram especificados no Grupo Original de seção na parte superior da caixa

de diálogo. Isto poupa-lhe o passo de remover as colunas desnecessárias antes ou após a operação estiver concluída. Agora você pode carregar esses

dados em uma tabela:

• Alterar o nome consulta para Agrupados

• Vá até Home → Close & Carga

Criando Resumo Estatísticas


Você conseguiu realizar o primeiro de seus objetivos em agrupar os dados por data e por ChannelName. Agora você precisa trabalhar para fora o
produto mais vendido em cada segmento eo que ele representou como uma porcentagem do total de vendas para esse grupo.

Duplicando Queries
A fim de conseguir seu objetivo, você realmente precisa para modificar e adicionar alguns passos para a consulta original. Ao invés de potencialmente
quebrá-lo, não é uma má idéia para criar uma cópia para trabalhar. Isso dá-lhe um plano de fallback se as coisas não funcionam do jeito que você queria:

• Exibir o painel a pasta de trabalho Consultas

• Botão direito do mouse a consulta → Duplicate Agrupados

• Alterar o nome consulta para Desempenho

Agora você tem uma cópia exata da consulta anterior que podemos carregar para a pasta de trabalho:

Figura 172 Uma cópia exata da consulta Agrupados.


120 M é para (dados) do macaco

Determinar o Top Seller


Agora você pode definir sobre como determinar o produto mais vendido. Para fazer isso, você está indo para modificar o passo linhas agrupadas e adicionar mais
um passo:

• Clique na engrenagem ao lado das linhas agrupadas passo

• Adicionar uma nova coluna na parte inferior da consulta

• Defina o nome da coluna para detalhes e definir a operação de todas as linhas

• Clique OK

Isso adiciona uma coluna de tabelas para sua consulta. Estas tabelas, no entanto, são bastante especial. Eles contêm os detalhes de quais linhas
da etapa anterior foram resumidos no fim de chegar com os totais de cada linha!

A Figura 173 um auge em que linhas foram usadas para gerar os valores agrupados.

A questão é, como você pode usar essas tabelas?

Seu objetivo aqui é trabalhar para fora o item vendas mais vendidos para cada dia. É possível identificar que, olhando para o valor mais alto na coluna
montante mostrado na pré-visualização para cada tabela. Mas como você extraí-lo? A resposta é chegar a uma coluna personalizada e usar uma
fórmula. Para fazer isso, siga estes passos:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Chamar a coluna MaxRecord e utilizar a seguinte fórmula


= Table.Max ([Detalhes], "Valor")
• Clique OK

Você agora tem uma coluna de registros listados:

A Figura 174 uma coluna de. . . Records?


Capítulo 14 Agrupamento e resumindo 121

Vamos círculo de volta por um momento e olhar para o que aconteceu primeiro e depois olhar para o que você tem com ele. A fórmula usada
examina uma tabela e extrai o valor máximo da coluna de dado. Para os parâmetros, você fornece a coluna [Detalhes] da consulta, como que
contém as tabelas que serão examinados. A coluna dentro dessa tabela, uma quantidade, em seguida, foi fornecida, entre aspas como a função
requer. Ao contrário de fórmulas anteriores que você já viu, no entanto, esta função não retorna apenas o valor. Ele retorna um registro. Isso é
fantástico, porque o registro não só segurar o valor máximo. ele mantém todos dos detalhes que vão com esse ponto de dados.

Você vai aprender mais sobre registros no capítulo 19.

Além disso, você pode expandir a coluna MaxRecord usando as setas de duas pontas no canto superior direito para obter os componentes
individuais em colunas:

• Clique na seta para expandir a coluna MaxRecord

• Expandir as colunas NomeDoProduto e da Quantidade e desmarque a opção Prefixo na parte inferior → OK

• Clique com o botão Detalhes coluna → Remove

• Botão direito do mouse na coluna ProductName → Rename → TopSeller

• Direito do mouse na coluna Valor → Rename → TopSeller $

O resultado é que agora você tem uma tabela que resume as vendas por data e Canal e mostra claramente o item mais vendido, bem como a
sua contribuição:

Figura 175 Os dados agrupados por data e Canal com detalhes topseller.

Há apenas uma coisa a fazer: trabalhar a percentagem que o vendedor superior representa do total de vendas diárias. Isso é facilmente
realizado com um cálculo simples:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Definir o nome da coluna para TS% de Vendas e introduzir a seguinte fórmula:

[# "TopSeller $"] / [# "Vendas $"]

Não deixe que o hash marcas e citações bagunçar tudo aqui. A maneira mais fácil de construir a fórmula é clicando nos nomes de campos
no lado direito, e Poder consulta irá colocá-los para você. Você vai aprender mais sobre por que elas aparecem quando você ler o capítulo
21.

O resultado é um pouco feio, com alguns números que mostram sem decimais, alguns mostrando um, e outros mostrando uma tonelada. Você pode
arredondar-los muito facilmente:

• Selecione o TS% da coluna Vendas → Transformar → arredondamento → Rodada ... → 2 Certifique-se de retornar à guia Transform para realizar

esta operação. Se não o fizer, Poder consulta criará uma nova coluna para você, e você vai ter que remover a coluna anterior manualmente. Os

resultados são muito bem arredondado para você, mas eles mostram como valores decimais como 1, 0,66, e assim por diante. Eles cer- tainly não

mostram como boas percentagens, mas tudo bem. Você pode carregar a consulta para uma tabela do Excel e aplicar um estilo percentual para a coluna

de lá. Como você pode ver, isso fica ao seu objetivo original:
122 M é para (dados) do macaco

Figura 176 A análise concluída.

estilos de número aplicados para uma estadia coluna da tabela no lugar depois de uma consulta Poder consulta é atualizado.
Capítulo 15 Transposição e Unpivoting dados complexos 123

Capítulo 15 Transposição e Unpivoting dados complexos

Ao trabalhar com dados do mundo real, os profissionais do Excel muitas vezes encontramos dados que precisa ser tratada em uma variedade de maneiras.
Enquanto unpivoting é extremamente comum, de vez em quando você pode precisar de reverter esse processo e os dados pivô antes de fazer transformações
mais complexas. Outra técnica que pode ser extremamente útil é a transposição dados-por exemplo, invertendo dados que é colocado para fora de uma forma
vertical e de modo que é mostrada na horizontal (ou vice-versa). Ambas as funções são, felizmente, construído na interface de usuário de energia de consulta e
pode ajudar na transformação de dados em tabelas úteis.

Unpivoting Tabelas subcategorizados


A primeira questão complexa vamos lidar com neste capítulo é unpivoting uma mesa subcategorizados. Enquanto nós olhamos unpivoting no Capítulo 6,
neste cenário, com base na figura abaixo, acrescenta uma dimensão adicional para a questão.

A Figura 177 um cenário UNPIVOT desafiador

O que torna este problema mais desafiador do que um UNPIVOT padrão? É o nível adicional de ter o mês com o tipo de
medida.
Quando você UNPIVOT, os dados são desagregados, usando os nomes das colunas como pontos de dados. Mas o que deveria os nomes das colunas estar
aqui? Se você promover a segunda linha de cabeçalhos, você perderá algumas informações-chave sobre o mês. Ele só não vai funcionar.

Mas não é certamente uma maneira de UNPIVOT esses dados; você só vai precisar usar um pouco de imaginação e alguns truques mais avançados.

Carregar os dados
Para este exemplo, você vai UNPIVOT a demonstração financeira encontrada em CH15 Exemplos \ UNPIVOT Sub Categories.xlsx:

Figura 178 A Dados desafiantes definidos para UNPIVOT.

Você começa a carregar os dados em poder de consulta. Você pode fazer isso através da criação de um intervalo nomeado, como você realmente não quer
bloquear os cabeçalhos das colunas com uma mesa. Siga esses passos:
124 M é para (dados) do macaco

• Selecione A8: H21 → Fórmulas → nomes definidos → Definir nome

• Digite Declaração no campo Nome → OK

• Criar um novo → consulta Da Tabela

Consulta de energia é aberta, mostrando-lhe uma visão, mas informativa pouco feio dos dados:

Figura 179 O conjunto de dados está cheia com valores nulos.

Existem alguns pontos-chave de aviso neste conjunto de dados:

• Cada célula em branco na tabela de dados original veio em como um nulo

• valor da linha 1 do Column4 é também nulo

Agora você tem que descobrir o que você vai fazer com isso. Você pode começar por olhar para Column1.

Encher verticalmente
Você não pode se livrar de Column1 porque contém informações que indicam se a conta é uma classificação receita ou uma classificação
despesa. O problema é que a classificação conta não existe na mesma linha como a descrição da conta e valores. Isto significa que você precisa
encontrar uma maneira de obter a classificação para preencher para baixo no nulo áreas.

Quando isso acontece, isso é exatamente como Preencher abaixo comando do Poder consulta funciona:

• Selecione Column1 → Transformar → Preencher → baixo agora você tem suas

classificações de cada linha quando necessário:

Figura 180 A classificação conta foi preenchido para baixo.

comando de preenchimento para baixo do poder Consulta preenche o valor acima em qualquer célula que é nulo, mas não substituir quaisquer outros dados. O
comando Fill Up funciona da mesma maneira, mas enche-se em vez de para baixo.

Uma célula em branco não é a mesma como um nulo. Se você precisa preencher em áreas em branco, você deve substituir os dados na coluna,
pedindo para substituir um valor vazio (deixe o campo em branco) com nulo. Poder consulta irá converter o nulo com base em texto para nulo.
Capítulo 15 Transposição e Unpivoting dados complexos 125

Agora você precisa de uma estratégia para lidar com os cabeçalhos das colunas. Eles parecem ter o mesmo problema, com abril de estar em
Coluna3 e faltando Column4 e Column5. Infelizmente, não há comando direito Preencha Poder Query. Então, como você lida com isso?

dados de transposição
Para preencher dados para a direita no poder Query, você deve transpor a mesa, lançando-o em sua orelha:

• Ir para Transformar → Transposição

A vista muda drasticamente, com os cabeçalhos das colunas anteriores agora tornar-se linhas e vice-versa:

Figura 181 resultado de A transposição da mesa.

Isso abre um par de características úteis. Uma das questões que você tinha anteriormente é que você não poderia preencher direita, mas agora você pode
preencher para baixo em Column1. Além disso, o principal desafio com unpivoting dados subcategorizadas é que você tem que UNPIVOT com base nos nomes
das colunas, o que significa que você não pode usar duas linhas de nomes de coluna para executar a tarefa. Mas e se você tivesse que mesclar temporariamente
Column1 e Column2, resultando em um único cabeçalho? Experimente para ver o que acontece:

• Selecione Column1 → Transformar → Preencher → Baixo

• Selecione Column1 → segure Ctrl → selecionar Column2 → Transformar → Mesclar Colunas

• Definir um delimitador personalizado de um | (Pipe) caracteres → OK

A razão de você usar um | personagem é que este personagem é raramente encontrada no conjunto de dados média. Isto significa que você

pode usar este personagem depois, confiante de que você não está indo para escolher acidentalmente um personagem que já existia nos dados.

Você agora tem uma única coluna de rótulos que você pode usar para cabeçalhos:

Figura 182 A fusão das categorias e subcategorias numa única coluna.


126 M é para (dados) do macaco

Agora você pode virar os dados de volta e promover os novos cabeçalhos:

• Ir para Transformar → Transposição

• Ir para Transformar → Use primeira linha como cabeçalhos

• Clique com o botão | coluna → Mudar → Classe

• Clique com o botão | _1 coluna → Renomear → Conta

Figura 183 Você está se aproximando!

Unpivoting Dados
O resto do processo é bastante simples e padrão para um cenário UNPIVOT:
• Filtrar a coluna Conta para remover nulo valores

• Selecione as colunas Classe e Conta

• Botão direito do mouse os cabeçalhos selecionados → Não Dinâmica outras colunas

Agora você tem uma lista não dinamizado:

Figura 184 A lista é finalmente não dinamizado.

Finalmente, é necessário dividir a coluna Atributo de volta para suas respectivas peças e limpar os cabeçalhos das colunas:

• Botão direito do mouse na coluna Atributo → Dividir Coluna → por delimitador → Personalizado → | → OK

• Botão direito do mouse na coluna Attribute.1 → Rename → Mês

• Botão direito do mouse na coluna Attribute.2 → Renomear → Medida

• Selecione o Class, Conta, Mês e Medida colunas → botão direito do mouse → Alterar tipo → Texto

• Botão direito do mouse na coluna Valor → Alterar tipo → número decimal

• Botão direito do mouse na coluna Valor → Rename → Valor


Capítulo 15 Transposição e Unpivoting Dados Complexo A consulta está agora a 127

terminar, não dinamizado, e pronto para carregar:

Figura 185 A lista subcategorizados, totalmente não dinamizado.

método Recap
Como você viu neste capítulo, o processo para unpivoting subcategorias envolve o seguinte processo de oito passos:

1. Carregar os dados.

2. transpor os dados.
3. Encha o título principal em áreas nulos.

4. Unir as principais posições e subtítulos em uma única coluna.


5. Transpor os dados de volta.

6. Promover os títulos consolidadas em linhas de cabeçalho.

7. Não Dinâmica dos dados.

8. Dividir os títulos consolidadas de volta em seus componentes individuais.


Esta técnica não se limita a apenas dois níveis de títulos. O segredo é combinar todos os títulos e subtítulos em uma cadeia de texto que pode
ser promovido a cabeçalhos. Contanto que você tiver feito isso, você pode UN-pivô de uma dúzia de níveis de subtítulos se necessário.

Replicando os dados originais


Com os dados completamente não dinamizado, a tabela de dados original pode rapidamente ser reconstruído usando uma tabela dinâmica com a seguinte
configuração:

• Classe e conta em linhas


• Mês e Medida em Colunas
• Montante em valores

No entanto, a fim de reconstruir a tabela dinâmica, por isso é colocado para fora de forma consistente com os dados originais, você também precisa fazer as
seguintes modificações:

• Vá em Ferramentas de Tabela Dinâmica → Projeto → Subtotais → Mostrar todos os subtotais na parte inferior do Grupo

• Selecione a célula Receita na primeira coluna e arraste-o acima da linha Despesas

• Direito do mouse no cabeçalho da coluna abril → desmarque Subtotal Mês

• Botão direito do mouse em qualquer célula valor → Format Configurações do Campo de Valor → Número

• Escolha Contabilidade → 2 casas decimais → Nenhum símbolo

• Clique em OK (duas vezes) para retornar à planilha


128 M é para (dados) do macaco

Neste ponto, você deve ter replicado o relatório original para que fique como mostrado abaixo:

Figura 186 Os dados originais, reconstruídos por meio de uma tabela dinâmica.

Transpondo Tabelas empilhadas


Outro cenário transformação complicado é aquele em que os detalhes de uma transacção são empilhados verticalmente em cima uns dos outros, com
linhas em branco separando as operações:

A figura 187 de dados, onde repetindo a operação de transposição é necessário.

Neste cenário, você precisa essencialmente de transpor cada bloco de dados, então empilhar os blocos em uma tabela de altura. A questão, porém, é
que o poder de consulta realmente não tem um comando de out-of-the-box para fazer isso. Se você transpor a mesa, você vai ter uma linha de dados e
um grande número de colunas ao invés de ficar cada registro transposta individualmente a maneira que você precisa.

Mais uma vez, obter o resultado que você quer é inteiramente possível, mas requer um pouco de criatividade e alguns truques.

Carregar os dados
Neste exemplo, você irá transpor a lista de transações de cartão de crédito encontrados em CH15 Exemplos \ Transposição Stacked Tables.xlsx:

A Figura 188 uma lista de operações empilhados numa única coluna.


Capítulo 15 Transposição e Unpivoting dados complexos 129

Antes que você possa fazer qualquer outra coisa, você precisa para obter os dados em poder de consulta:

• Selecione A1 → criar um novo → consulta Da tabela

• Estender os limites da tabela para cobrir A1: A17

Os dados está agora pronto para você, e é hora de descobrir como abordá-lo.

Criando uma Coluna Modulo


Ao invés de tentar transpor os registros neste momento, você vai ter uma abordagem diferente. Você vai numerar os registros, e
você vai fazê-lo duas vezes. Para que isso aconteça:

• Ir para Adicionar Coluna → Adicionar Índice Coluna → De 0 Neste ponto, você tem

uma lista numérica das operações, a partir de 0:

Figura 189 Cada linha do arquivo tem agora um número de índice.

Você está atualmente com um número que indica a linha de dados numéricos no arquivo. O que nós realmente queremos é um número que corresponde a cada
linha da transação. Em outras palavras, a data da transação deve ser sempre 0, o fornecedor 1, e assim por diante. Para conseguir isso, você precisa adicionar
uma coluna modulo.

Antes de fazer isso, você precisa de uma peça-chave da informação da tabela: Você precisa saber o valor na primeira linha do
segundo registro. Neste caso, o valor que você está procurando é de 6, como mostrado na coluna Index. (Power consulta começa a
contar a partir de 0, não 1.) Esse número vai ser o fator para o cálculo modulo. O módulo essencialmente converte um valor, subtrai o
múltiplo mais próximo do factor a partir do valor previsto, e retorna o resto. Então, se o valor é 8, o módulo subtrai 6 e devolve o resto,
que é
2. Experimente:

• Selecione a coluna Índice

• Ir para Adicionar Coluna → De Número → Padrão → Modulo → 6 Agora você tem uma

lista dos números de linha transação!

Figura 190 Agora você tem um número de linha da transação para cada item.

Isso parece interessante, mas por configurá-lo em primeiro lugar? A resposta reside na solução para este conjunto de dados.
130 M é para (dados) do macaco

Girando a dados
Quando você tem uma lista de repetir os números de transação como você faz neste exemplo, você pode girar-los. Ele vai olhar um pouco feio no início, mas
você vai ver como incrível este realmente é.

• Selecione a coluna inserida Modulo → Transformar → Coluna Pivot Agora vem a parte

difícil: O pivô precisa ser configurado corretamente.

Por padrão, quando você perguntar para girar uma coluna, os valores dessa coluna será usada como cabeçalhos das colunas. Poder de consulta, em seguida,
pede que valoriza você quer nos valores (ou corpo) Área dos dados articuladas definidos. O truque aqui é que o relacionamento de dados geralmente é feito para
resumir os valores, e você não está interessado em fazer isso. Você quer que os valores originais, por isso siga estes passos:

• Definir a coluna Valores para Transações

• Expandir as opções avançadas

• Definir a função de valor agregado para não se agregam

• Clique OK

A tabela muda de forma e preenche com valores nulos em todos os lugares:

Figura 191 A mesa articulada, cheio de valores nulos.

Esta é realmente incrível.

Preencher os espaços em branco

O próximo passo é para preencher os orifícios no conjunto de dados articulada:

• Selecionar coluna 1 → pressione Shift → selecione coluna 5

• Ir para Transformar → Preencher → Up

As transações agora em cascata para preencher os espaços em branco:

Figura 192 Os dados, encheu-se.

Acredite ou não, você está muito perto de terminar aqui:


Capítulo 15 Transposição e Unpivoting dados complexos 131

• coluna de filtro 0 → desmarcar (null)

• Selecionar colunas 0 a 3 → botão direito do mouse → Retirar outras colunas Agora você tem um conjunto de dados que foi

integralmente transposta a partir de uma única coluna de registros empilhados:

Figura 193 A transformação de tabelas empilhadas para dados úteis é quase completa.

A última coisa a fazer para esta consulta é oferecer melhores nomes de coluna e definir os tipos de dados. Assim que isso é feito, você está acabado!

• Renomeie a coluna 0 Datas e formatá-lo como data

• Renomear coluna 1 Vendor e formatá-lo como texto

• Renomear coluna 2 TransactionID e formatá-lo como Número inteiro

• Renomear coluna 3 Quantidade e formatá-lo como número decimal

• Renomear as transações de consulta

• Vá até Home → Close & carregar os dados

é finalmente transformados:

Figura 194 O conjunto de dados transformado.

método Recap
Este é o processo de transposição e girando uma única coluna de dados:

1. Carregar os dados.

2. Adicionar uma coluna de índice de 0.

3. Adicionar um módulo coluna, utilizando o valor que indica o primeiro valor no segundo conjunto de dados.

4. Gire a coluna modulo usando o texto como valores com agregação.


5. Encha o backup de dados para cada coluna após a inicial.

6. Filtre linhas nulos na primeira coluna de dados.

7. Faça a limpeza final.


Com a prática, este processo torna-se realmente muito rápido, o que é uma coisa boa. Você ficará surpreso quantas vezes você precisa fazer
isso no mundo real.
132 M é para (dados) do macaco
Capítulo 16 Automatizando Refrescante 133

Capítulo 16 Automatizando Refrescante


Como você construir mais e mais soluções que consulta alavancagem de energia, e como você percebe quanto tempo você economiza, você é obrigado a
tornar-se faminto por mais automação em sua vida. Sim, você pode simplesmente botão direito do mouse uma tabela que vem do Poder Query, mas mesmo
isso vai começar a sentir-lo. . . manual. Não seria melhor se você pudesse apenas agendar uma atualização, ou talvez controlar a ordem em que as coisas
atualizar?

Opções para Automatizar Refrescante


Você pode realmente usar alguns métodos diferentes de automatizar o refrescante de soluções de energia consulta:

• Refrescar quando o livro é aberto


• atualizar a cada X minutos

• Atualizar uma conexão sob demanda via VBA

• Atualizar todas as conexões sob demanda via VBA

• Agenda é atualizada via um terceiro add-in

Cada um trabalha de forma diferente e tem suas próprias vantagens e desvantagens, como você verá neste capítulo.

Agendamento refresca sem código


Os dois primeiros métodos para automatizar refrescante que vamos explorar são ajustados através da interface do usuário e não requerem qualquer
código VBA qualquer. Eles podem ser configurados em uma base de conexão-por-conexão, e você ainda pode automatizar a atualização para poder
Pivot se desejado. Cada uma dessas ligações é controlado ao navegar para o diálogo Conexões de pasta de trabalho no Excel (não poder consulta):

• Ir para Dados → Ligações → selecionar sua consulta → Propriedades

Isso inicia o seguinte diálogo, onde você pode marcar a caixa para atualizar a consulta quando o arquivo é aberto:

Figura 195 opções de conexão Setting.

fundo Refrescante
Na caixa de diálogo Propriedades de conexão, observe que a caixa de seleção Ativar actualização em segundo plano é selecionada por culpa de-. Esta

configuração permite que você especifique se você gostaria de continuar a trabalhar no Excel enquanto os dados refresca. Se você desmarcar esta caixa, você

pode diminuir potencialmente a quantidade de tempo que leva para atualizar sua solução, mas você também vai bloquear a interface do usuário, o que significa que

você não será capaz de fazer outras coisas até que esteja completo. Se você quiser impedir que os usuários trabalhar com os dados até que esteja totalmente

atualizado, você quer desabilitar essa configuração. Se você precisa fazer outras coisas enquanto você espera, no entanto, essa configuração é melhor deixar

sozinho.
134 M é para (dados) do macaco

Refrescante cada X minutos


A próxima configuração disponível na conexão de diálogo Propriedades permite dizer Excel para atualizar a consulta Poder consulta cada X minutos. Quando você
marcar a caixa, você pode definir quantas vezes você gostaria que os dados sejam atualizados. Esta definição é fantástico se você está puxando dados de uma
fonte da Web que está mudando constantemente ou se você é tar- geting um banco de dados que está sendo atualizado regularmente, uma vez que garante que
os seus dados são mantidos sempre up-to-date, enquanto você 're no arquivo.

Tenha em mente que a pasta de trabalho precisa ser aberto para que essa atualização para ocorrer. E se você estiver indo para ser agendar atualizações
freqüentes, enquanto você está trabalhando ativamente na pasta de trabalho, você vai querer certificar-se da configuração Habilitar Atualização fundo está
marcada.

Os valores válidos para essa configuração executado a partir de 1 a 32.767, o que significa que você pode atualizar uma vez a cada minuto até uma
vez a cada 22,75 dias.

Refrescante quando o livro é aberto


Esta seleção na conexão de diálogo Propriedades, na verdade, permite que você especifique dois componentes:

• Atualizar os dados ao abrir o arquivo


• Removendo os dados antes de salvar

O primeiro é bastante auto-explicativo, e marcando a caixa para isso vai mudar o comportamento da pasta de trabalho para fazer exatamente o que diz:
atualizar os dados cada vez que você abrir o arquivo. Isso ajuda a garantir que seus dados é sempre up-to-date, quando você começar a trabalhar com o
arquivo.

Se você tem um número significativo de fontes de dados, ou se os dados leva uma quantidade significativa de tempo para refrescar, então ele pode ser uma boa
idéia para deixar a configuração de atualização Background Ativar habilitado para que você possa usar a pasta de trabalho enquanto a atualização está ocorrendo .

A segunda opção nesta seção controla se para salvar os dados na pasta de trabalho, ou apenas a consulta defini- ção. Esta configuração é realmente
uma configuração de segurança, uma vez que assegura que os usuários tenham acesso à fonte de dados quando abre o livro. Se não o fizerem, eles
serão recebidos por uma tabela em branco, como a conexão não pode ser atualizado. Se eles têm acesso, a consulta será executada e trazer os dados.

Há atualmente um bug em todas as versões do Excel que afeta a última opção. Se você abrir o Excel e abra a pasta de trabalho, a
consulta será atualizada, e os dados serão carregados. Se você, em seguida, fechar o livro e reabri-lo (sem fechar Excel), os dados
não será atualizada automaticamente. Fechando Excel corrige o problema.

Automatizando consulta refrescante, com VBA


As opções descritas até agora neste capítulo permitem que você atualizar Poder de consulta consulta com nenhum aviso de segurança de macro em tudo. Além
disso, pastas de trabalho usando as opções descritas acima são mais fáceis de porta para poder BI, como eles não causam quaisquer problemas de bloqueio.

Se você estiver trabalhando puramente em uma instância área de trabalho Excel, no entanto, há momentos em que você pode querer dar um usuário uma maneira
fácil de usar e óbvia para atualizar suas soluções de consultas de energia. Isso pode ser feito através de gravação de macros VBA.

Atualização de uma Conexão Única


Você pode construir uma macro para atualizar uma única conexão de energia Query. Para ver como isso funciona, aberto Ch16 exem- plos \
Automatizando Refresh.xlsx e navegue até a planilha Transações.

Nesta planilha que você vai encontrar uma mesa de Transações, bem como uma tabela dinâmica. Diga que você gostaria de criar uma macro para atualizar a

tabela de transações e, em seguida, a tabela dinâmica. Para fazer isso, você pode gravar uma macro simples, utilizando os seguintes passos:

• Navegue até a guia desenvolvedor

Se você não vê a guia Desenvolvedor, clique direito em qualquer guia na fita e escolha Personalizar Ribbon. Marque a caixa no
lado direito, ao lado do desenvolvedor, e clique em OK.

• No canto superior esquerdo, clique em Gravar Macro


Capítulo 16 Automatizando Refrescante 135

Figura 196 Iniciar gravação de uma macro.

Depois de clicar neste botão, Excel começa a gravar cada planilha clique, todas as teclas, e cada erro que você faz. Siga
os passos abaixo com precisão para ter certeza de obter uma macro limpo!

• Nome Refresh Macro e armazená-lo nesta pasta de trabalho → OK

• Ir para Data Query → Conexões → Power - Transações → Atualizar


• Clique em Fechar

• Botão direito do mouse a tabela dinâmica → Atualizar

• Ir para desenvolvedor → parar a gravação da macro está agora

gravado e pronto para usar. Para testá-lo:

• Ir para o desenvolvedor → Macros

agora você vê a caixa de diálogo Macro, que permite que você veja o que macros estão em seu arquivo e executar qualquer um deles. Seleccione a macro-lo pode
ser a única atualização que você tem e clique em Executar:

Figura 197 Executando o seu macro.

Quando você executar a macro, você pode ver que as atualizações da tabela Transações, seguido pela tabela dinâmica. (Claro, isso seria mais óbvio se os

dados foram alterados, mas a fonte de dados é estático.) Tão grande como este é, o envio de seus usuários de volta para o guia do desenvolvedor para

executar a macro em uma base regular é um pouco assustador. Ao invés de fazer isso, por que não dar-lhes um botão para atualizar a macro? Siga esses

passos:

• Ir para desenvolvedor → Inserir → escolha o ícone superior esquerdo

• Encontrar um espaço vazio na folha de trabalho

• Mantenha pressionado o botão esquerdo do mouse → arraste para baixo e para a direita → soltou o rato O diálogo Assign

Macro aparece com a sua macro na mesma.

• Seleccione a macro Atualizar → OK


136 M é para (dados) do macaco

• Botão direito do mouse no botão → Editar texto

• Renomeá-lo Atualizar

• Clique em qualquer célula na planilha

Agora você tem um, novo botão agradável, brilhante, tudo pronto para usar:

Figura 198 botão Iniciar, pronto para ativar!

Vá em frente e clique no botão Atualizar e deleitar-se com o fato de que qualquer usuário pode agora atualizar sua consulta.

Se você precisar editar o botão, clique com o botão direito do mouse. Quando as pequenas bolhas brancas cercá-lo, é no modo de design e
pode ser modificado. Selecione uma célula na planilha para remover as alças de seleção e colocá-lo de volta no modo ativo.

Refrescantes Várias conexões


A próxima preocupação que você pode querer enfrentar é a adição de mais consultas para a macro e controlar a ordem em que eles se refrescar. Você
pode facilmente fazer essas coisas, modificando a macro.

• Ir para desenvolvedor → Macros → Atualizar → Editar. Neste ponto

você vê um código como este:

Sub Refresh () '' Macro

Atualizar
'' ActiveWorkbook.Connections ( "Consulta de Força - Transactions") Atualizar.

Range ( "G6"). Selecione


ActiveSheet.PivotTables ( "PivotTable1"). PivotCache.Refresh End Sub

Aqui é o que este código de macro faz:

• As primeiras quatro linhas após a linha Sub Refresh () são simplesmente observações, para que você realmente não precisa para mantê-los.

• A linha que começa com ActiveWorkbook refresca a conexão.


• A linha seguinte selecciona um intervalo na folha de cálculo activa.

• A linha final refresca a tabela dinâmica na planilha ativa.


Você pode fazer algumas modificações para esta macro, não só para controlar a ordem em que todas as conexões refrescar, mas também tornar o código um
pouco mais à prova de balas. (Neste momento, seria um fracasso se alguém tentou executá-lo a partir de uma folha de cálculo diferente, uma vez que não teria a
tabela dinâmica sobre ele.) Aqui está o que o código deve ser semelhante depois de revisá-lo:
Capítulo 16 Automatizando Refrescante 137

Sub Refresh ()
ActiveWorkbook.Connections ( "Power query - Jan2008"). Refresque ActiveWorkbook.Connections ( "Power
query - Feb2008"). Refresque ActiveWorkbook.Connections ( "Consulta Power - Mar2008"). Refresque
ActiveWorkbook.Connections ( "Poder de consulta - Transactions") .Refresh Worksheets ( "Transações").
Tabelas Dinâmicas ( "PivotTable1"). _

PivotCache.Refresh End Sub

O espaço e caracteres de sublinhado são os caracteres que você usa para indicar uma quebra de linha no código VBA. O código será
executado igualmente bem se a linha PivotCache.Refresh permanece na mesma linha como folhas de cálculo ( “Transacções”). Tabelas
Dinâmicas ( “PivotTable1”). Apenas certifique-se de que não há espaço entre o ponto no final da primeira linha e PivotCache.Refresh.

Você pode ver que você precisa remover os comentários do código desnecessários em primeiro lugar. Depois que você simplesmente injetar novas
linhas, a fim de atualizar as conexões específicas na ordem em que você quer que eles refrescado. Além disso, especificando Worksheets (
“Transacções”) no lugar de ActiveSheet, você elimina a necessidade de selecionar a tabela dinâmica, e você também garantir que você está sempre
atualizando a tabela dinâmica na planilha Transações.

Esteja ciente de que as conexões podem ou não incluir o nome Consulta poder. Estes nomes devem corresponder aos nomes que são mostrados na caixa de
diálogo Conexões de pasta de trabalho, como mostrado abaixo:

Figura 199 Determinar os nomes de suas conexões de consulta.

No meio do verão 2015 Microsoft decidiu rebrand (ou DeBrand) Fonte de consulta, devido à preocupação de que o termo Poder usuários
medo de distância do conjunto de recursos. Para este fim, as consultas que você criar, hoje, não são prefixados com “Consulta Power -”
como elas são no diálogo acima.

Quando você clica no botão Atualizar agora, cada atualização consulta é expulso por sua vez, e a tabela dinâmica é atualizada.

Uma coisa a ter em conta é que você não podes guardar o livro no formato XLSX uma vez que você tem uma macro dentro dela. Em vez
disso, você precisa guardar o livro no formato XLSMor xlsb para preservar as macros. Desta forma, os usuários obtêm uma mensagem de
aviso de segurança de macros quando abre o livro antes que eles possam usar o botão para atualizar os dados.
138 M é para (dados) do macaco

Refrescante Todo o poder de consulta consulta


A fim de atualizar todas as consultas Poder consulta em uma pasta de trabalho, você precisa usar um bloco ligeiramente diferente do código. A macro a
seguir vai olhar através de todas as conexões na pasta de trabalho e identificar se eles são criados por Poder consulta (e ignora todos os outros):

Sub pública UpdatePowerQueriesOnly ()


Dim Ltest As Long, cn As WorkbookConnection On Error Resume Next

Para cada cn Em ThisWorkbook.Connections


Ltest = EmCad '(1, cn.OLEDBConnection.Connection, _
"Provider = Microsoft.Mashup.OleDb.1") Se Err.Number <> 0
Then
Err.Clear Exit
For End If

Se Ltest> 0 Then cn.Refresh Próxima cn End


Sub

Esta macro pode ser armazenado na mesma pasta de trabalho como o que foi criado na seção anterior, ou pode substituir o código anterior (embora você
precisa para voltar a ligar o seu botão para a nova macro em vez disso).

Esteja ciente de que o código acima não vai necessariamente atualizar as consultas na ordem em que eles precisam ser atualizados,
como Excel refresca consultas em ordem alfabética. Felizmente, você pode alterar o nome das consultas indo até Dados → Conexões →
Propriedades e modificar o nome da conexão. Você pode renomear cada consulta em uma ordem, tais como 01-Jan2008, 02-Feb2008,
03-Mar2008, 99-Transações. Ao fazer isso, você pode garantir que uma consulta de alimentação funciona de atualização na ordem
correta.

Automatizando refrescante e muito mais através de terceiros Add-ins

Enquanto VBA funciona bem em soluções de desktop, é uma impossibilidade total, se você quer soluções portuária à web, seja para o SharePoint, Office 365,
ou Power BI. Por esta razão, a equipe da power-planner.com construiu um add-in chamado Atualização de energia para ajudar a resolver esses problemas.

Veja como a empresa descreve o produto em suas próprias palavras:

Atualização de poder é um utilitário de software totalmente novo projetado da terra-up como um “companheiro” para poder Pivot, poder Query, e toda a
pilha de BI poder.

Ele permite que você agendar qualquer livro Poder Pivot / Power BI para atualização, independentemente das fontes de dados utilizadas, e implanta
automaticamente / publica o livro resultante para um destino à sua escolha: SharePoint (ambos local ea nuvem), onedrive, BI Poder on-line, pastas de
arquivos e compartilhamentos de rede, e até mesmo servidores tabular SSAS.

Mesmo quando emparelhado com O365, Poder BI ou outro servidor de nuvem, atualização de poder não exigem a configu- ração de gateways, VPN, ou
portas de firewall. Além disso, Atualização Poder suporta auto-refresh do Poder consulta workbooks, bem como o carregamento de energia e Consulta de
dados do PowerPivot em SQL Server, finalmente permitindo que a indústria de utilizar PQ em ambientes de produção “no local”.

Finalmente, atualize o poder não é restrito a “uma vez por dia” atualização, nem é sujeito a “estrangulamento conjunto de linhas” pelo Poder BI versão 2 de linhas
10k / h (versão gratuita) ou linhas 1mm / hr (Pro) limitações.

Se este produto soa interessante para você, ou se você gostaria de ler mais sobre os recursos de atualização de energia, consulte os seguintes
posts por Rob Collie de PowerPivotPro.com:

http://mrx.cl/intropowerupdate, http://mrx.cl/freepowerupdate, http://mrx.cl/ssisalternative,


http://mrx.cl/buildingdatazen
A versão gratuita da ferramenta de atualização pode ser baixado diretamente do:

http://www.power-planner.com/Products/ProdID/10
Capítulo 17 Poder consulta Fórmulas 139

Capítulo 17 Poder consulta Fórmulas


interface de usuário do poder de consulta é incrível, e muitas das coisas que você precisa fazer já são construídos em. Dito isto, há a certeza de haver
momentos em que você precisa fazer coisas que não são construídos na interface do usuário. Mesmo sem botões de fácil clique, existem maneiras de se
esses postos de trabalho feito. Você apenas tem que chegar na linguagem de programação do Poder Inquérito: M.

Começando com M
Enquanto aspectos de M pode ficar muito técnico, a maneira mais fácil de obter alguma exposição à língua é começar com colunas personalizadas e
adicionar fórmulas para eles.

Porque o poder de consulta foi construído para profissionais do Excel, você pode esperar que a sua linguagem de fórmula seria como Excel's-bem
como fórmulas DAX Power Pivot são idênticos em nome àqueles de Excel. Infelizmente, este não é o caso, como você verá, e você vai ter que moderar
seus instintos iniciais para usar essas fórmulas como você aprender uma nova sintaxe fórmula.

Criação de colunas personalizadas


É relativamente simples para criar uma coluna personalizada. Enquanto dentro de sua consulta:

• Ir para Adicionar Coluna → Adicionar coluna personalizada Você vê essa caixa de

diálogo, que permite que você crie uma nova fórmula:

Figura 200 A caixa de diálogo Adicionar coluna personalizada.

Três porções para este diálogo que são importantes:

• Novo nome da coluna -Tanto faz você digitar aqui será usado como o nome da coluna que são ating cria- quando você clica em OK.

• Colunas disponíveis -Esta caixa lista os nomes de todas as colunas em sua consulta. Clicando duas vezes em qualquer item na caixa de
coloca-o na área a fórmula com a sintaxe correta para se referir ao campo.

• Fórmula coluna personalizada -Este é o lugar onde você realmente criar a fórmula que será utilizada.
140 M é para (dados) do macaco

Você pode facilmente fazer agregações simples na área da fórmula, usando a sintaxe que você está acostumado em Excel. Por exem- plo, para juntar os dois
campos listados acima como texto, você iria construir uma fórmula da seguinte maneira:

• Clique duas vezes Column1 na lista Colunas Disponíveis

• Digite o caractere &


• Clique duas vezes em coluna # 2 na lista Colunas Disponíveis A partir

disso, poder consulta iria construir a seguinte fórmula:

= [Column1] e [# "coluna # 2"]


A grande coisa sobre o uso da interface de clique duplo é que, neste momento, não importa a você que a sintaxe de Column1 e Coluna #
2 deve ser tratado de forma diferente. A interface vai acertar, e você pode obter com a conclusão do trabalho.

Esta sintaxe específica é explicada nos capítulos 19 e 20.

Como você poderia esperar, você pode realizar equações matemáticas regulares, bem como, incluindo o seguinte: Operação

Poder Consulta Formula Equivalent

Adição = [Column1] + [# "coluna # 2"]

Subtração = [Column1] - [# "coluna # 2"]

Multiplicação = [Column1] * [# "coluna # 2"]

Divisão = [Column1] / [# "coluna # 2"]

Curiosamente, no entanto, o operador expoente ^ que são usados ​no Excel não vai funcionar. Exponenciação requer uma fórmula personalizada:

= Number.Power ([Column1], [# "coluna # 2"])

Descobrir novas fórmulas


Atualmente, Poder consulta não tem qualquer IntelliSense, por isso pode ser difícil determinar qual existem fórmulas. Enquanto isso é algo que
esperamos que venha a mudar no futuro, deixa-nos caça quando precisamos descobrir qual existem fórmulas.

Por esta razão, na caixa de diálogo Adicionar coluna personalizada, há um hyperlink apenas abaixo da caixa Coluna Fórmula personalizada.
Capítulo 17 Poder consulta Fórmulas 141

Figura 201 Como encontrar mais fórmulas da consulta Poder.

Clique neste link para ir para uma página web que promete ajudá-lo a aprender sobre fórmulas de alimentação de consulta. Se você rolar a página, você
encontrará um link para poder Pesquisar Fórmula categorias, que, em seguida, liga-lo através de site de documentação do MSDN. Este site lista todas as
categorias fórmula e permite que você navegue e descubra o que você precisa.

Recomendamos marcando a página de destino para o site do MSDN. Isto irá impedi-lo de ter que abrir o diálogo
Column Adicionar personalizado para ter acesso a esta documentação.

Gotchas Fórmula
Poder de consulta e Excel têm algumas diferenças significativas em termos de como eles lidam com as entradas. A tabela a seguir resume

algumas das questões que certamente vai frustrá-lo no início: Excel

consulta de energia

As fórmulas são não maiúsculas e minúsculas fórmulas estamos maiúsculas e minúsculas

Contagens utilizando uma base de Contagens de base usando 0

conversões tipo de dados estão implícitas Observa estrita de tipos de dados

caso Sensibilidade
O aspecto sensibilidade caso é uma dor de cabeça, mas algo que você se acostumar. O truque para lembrar aqui é que em 99% dos casos, a primeira letra
de cada palavra em uma fórmula de energia consulta é capitalizado, e os restantes são em minúsculas. Considerando Excel não se importa que caso de
você usar e converte fórmulas para maiúscula por padrão, Poder consulta retorna apenas um erro.

Base de Dados de 0 contra uma base de dados

A diferença entre a base e a base 1 0 é onde a linha número começa. Considere a seguinte palavra:
Excel. Se você fosse perguntar a si mesmo a posição do caractere x, você provavelmente diria 2. Caráter E é 1, e x é 2. Diz que o som
correto?

Contando desta forma segue uma regra de base 1, onde o primeiro caracter tem uma posição de índice de 1, o segundo carácter 2, e assim por diante. É
a maneira de contar, e é a maneira como o Excel conta.
142 M é para (dados) do macaco

Se você fosse perguntar Poder Consulta a mesma pergunta, seria retornar uma resposta de 1. Isso é um pouco de er cabeça do risco em primeiro lugar,
especialmente desde que a contagem do Excel em uma base de 1 moda. Você iria tipo de esperar Poder consulta a seguir as mesmas regras, mas isso não
acontece. Poder consulta começa a contar a 0, não 1. Então, na palavra Excel, o E é o caráter
0, eo x é o personagem 1.

Em última análise, isso não gera problemas que não podem ser tratadas, mas isso não significa que quando você está construindo fórmulas em Power Query,
você pode acabar fora por uma posição muito facilmente.

Conversões Tipo de dados


fórmulas do Excel são muito indulgente com tipos de dados, usando conversão implícita, ao contrário Poder Query versão Con- explícito. Para entender
o que isso significa, considere os seguintes cenários.

No Excel você pode adicionar um valor para uma data e incrementá-lo para o dia seguinte. Porque todas as datas são números realmente apenas de série de
qualquer maneira, adicionando 1 à data irá funcionar perfeitamente.

Em Poder Query, se a data é formatada como um tipo de data, você deve usar uma fórmula específica para adicionar dias a ele. E se você tentar usar a
mesma fórmula para adicionar dias a um número, Poder consulta lhe dará um erro, pois não é um encontro. Isso significa que você precisa para converter
explicitamente os seus campos para o tipo de dados antes de usá-los em fórmulas. No Excel você pode juntar duas células em conjunto, utilizando o &
função. Se as células contêm valores de texto ou é completamente irrelevante. Excel irá converter implicitamente a ambos ao texto e, em seguida, juntá-las:

Figura 202 Conversão implícita em ação: Número e texto convertido em texto.

Observe o que acontece quando você puxa esses dados em poder de consulta e criar uma nova coluna usando a fórmula se- guinte:

= [Column1] & [Coluna2]


Como você pode ver, você obter um resultado completamente diferente:

Figura 203 Poder consulta não pode juntar-se números e texto juntos.

A fim de corrigir esse problema, você tem que dizer Poder Consulta explicitamente converter o número em texto antes de tentar juntar as duas cadeias de texto
juntos. Você faz isso por envolvimento entrada de Column1 em uma função de conversão:

= Text.From ([ Column1]) & [Column2]


Quando você converter explicitamente os dados em Column1 a um valor de texto, a concatenação irá funcionar como pretendido originalmente:
Capítulo 17 Poder consulta Fórmulas 143

Figura 204 conversão explícita de tipos de dados assegura que funciona a fórmula.

Na verdade, existem duas maneiras de lidar com tipos de dados em poder de consulta:

• Defina o tipo de dados para a coluna que você está se referindo a antes usá-lo em uma função personalizada.

• Usar um tipo de função de conversão de dados para forçar a entrada para converter para o tipo de dados requerida.

Funções de conversão útil tipo de dados


Existem várias funções de conversão de tipo de dados em poder de consulta. Alguns dos mais importantes deles são descritos nas seções
seguintes.

Convertendo para Texto


Para a maior parte, se você precisa converter os valores em uma coluna de texto, basta usar a função Text.From (). Há também algumas funções

adicionais, no entanto, você pode usar para manter seus dados digitando ainda mais explícito. A tabela a seguir mostra como converter tipos de dados

diferentes em um tipo de dados de texto: Para converter

Fórmula Exemplo

Qualquer coisa Text.From () Text.From ([Column1])

Um encontro Date.ToText () Date.ToText ([Column1])

Um tempo Time.ToText () Time.ToText ([Column1])

Um número Number.ToText () Number.ToText ([Column1])

Tenha em mente que Text.From () irá fazer o trabalho de todos os outros, enquanto Time.ToText () não irá converter um ber nú- a um valor de texto.

datas
Existem dois tipos de datas que você precisa se preocupar com: aqueles que são baseados em números, e aqueles que vêm como datas textuais.

funções de conversão diferentes são fornecidos para cada tipo de dados, a fim de transformá-los em um tipo de dados Data: converter

Fórmula Exemplo

datas numéricas Date.From () Date.From ([Column1])

Date.From (42986)

datas de texto Date.FromText () Date.FromText ([Column1]) Date.FromText (

“31 de janeiro de 2015”)

Mais uma vez, Date.From () efectua de facto a função de Date.FromText, embora o caso inverso não é verdadeiro.
144 M é para (dados) do macaco

vezes
Como datas, valores de tempo pode chegar tanto como valores de tempo numéricas ou aqueles textuais. Mais uma vez, há duas fun- ções para estes: converter

Fórmula Exemplo

vezes numéricos Time.From () Time.From ([Column1])

Time.From (0,586)

tempos de texto Time.FromText () Time.FromText ([Column1])

Time.FromText ( “2:03 PM”)

E, tal como com datas, Time.From () executa a função de Time.FromText (), mas novamente, o caso inverso não é verdadeiro.

durações
A duração é a diferença entre dois valores de data / hora, e permite que você trabalhe os dias, horas, minutos e segundos para
completar uma tarefa. Existem duas funções, onde o .De () variante pode executar o trabalho do outro: converter

Fórmula Exemplo

durações numéricos Duration.From () Duration.From ([Column1])

Duration.From (2,525)

durações de texto Duration.FromText () Duration.FromText ([Column1])

Duration.FromText ( “15:35”)

valores
Há realmente uma grande variedade de funções de conversão numéricas. Mais uma vez, enquanto Number.From () irá realizar o trabalho de todos eles, há

outros incluídos, bem como, no caso de você querer forçar seus números para um tipo numérico específico: converter o valor Para

Fórmula Exemplo

Número decimal Number.From () Decimal.From ([Column1])

Number.From (2,525)

número decimal (de texto) Number.FromText () Number.FromText ([Column1])

Number.FromText ( “15.35”)

Número decimal Decimal.From () Number.From ([Column1])

Decimal.From (15)

Número inteiro Int64.From () Int64.From ([Column1])

Int64.From (2)

Moeda Currency.From () Currency.From ([Column1])

Currency.From (2,52)

Comparando Funções de texto Excel e Power da consulta


Quando Nós primamos prós estão tentando dados terrestres e limpo, que muitas vezes precisam de limpar e texto de divisão. Se você já trabalhou com funções

de texto do Excel por um longo tempo, você vai achar que você é naturalmente inclinado a tentar usá-los para extrair componentes de seus dados. E você verá

que eles simplesmente não funcionam. Por essa razão, nesta seção você vai explorar como replicar cinco funções de texto mais comumente usados ​do Excel.

Cada um dos exemplos nesta secção pode ser encontrado em CH17 Exemplos \ 5 texto útil Functions.xlsx. Cada um dos exemplos nesta secção começa com

um conjunto de dados, como a mostrada abaixo:


Capítulo 17 Poder consulta Fórmulas 145

Figura 205 Uma amostra dos dados que você vai trabalhar.

Há um conjunto de palavras para baixo da coluna da esquerda, e há algumas extrações na coluna da direita. Cada uma destas extracções foi
realizada com fórmulas do Excel, utilizando a função listada no cabeçalho da segunda coluna. As seções a seguir comparar como para obter o poder
de consulta para realizar a mesma coisa usando diferentes fun- ções.

Em agosto de 2015, a equipe Poder consulta adicionou a capacidade de extrair o primeiro caractere, o último caractere, e uma gama de
personagens para a guia Transform. Apesar disso, as seguintes seções percorrer o processo de replicar e comparando estas fórmulas
para aqueles de Excel como este não só proporciona uma compreensão de como trabalhar com as fórmulas de código M, mas também
permite que você construa soluções mais robustas do que você pode com o comandos de interface de utilizador sozinho.

Replicando esquerda do Excel () função


Siga estes passos para puxar os dados em poder de consulta:

• Selecione uma célula na tabela de dados na planilha ESQUERDA → criar um novo → consulta Da Tabela

• Renomeie o pqLeft consulta

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Chamar nova coluna pqLeft (x, 4) e introduzir a seguinte fórmula:


= ESQUERDA ([Palavra], 4)

Isso deve funcionar, não deveria? Poder Consulta certamente não está indicando que não irá:

Figura 206 Poder consulta parece confortável com a fórmula.


146 M é para (dados) do macaco

Clique OK, e apesar do sinal verde, as coisas não são tão bons quanto você esperava:

Figura 207 Você tem certeza de que você digitou deixou corretamente.

Portanto, apesar da ferramenta que está sendo construído para profissionais do Excel, a equipe de design eleito para usar um termo fórmula completamente
diferente para se referir aos personagens x esquerda de uma célula. Aqui está uma comparação direta da sintaxe entre os dois programas:

Sintaxe Exemplo Resultado

sobressair = LEFT (texto, num_chars) = ESQUERDA ( “Excel”, 2) Ex

consulta de energia = Text.Start (texto, num_chars) = Text.Start ( “Excel”, 2) Ex

Isso significa que você precisa para editar a fórmula:

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado

• Modificar a fórmula como segue:


= Text.Start ([Palavra], 4)
• Clique OK

Não se esqueça que a fórmula é sensível a maiúsculas. Text.start, TEXT.START, e outras variantes irá retornar erros!

Isso funciona, e melhor ainda, ele oferece resultados consistentes com a fórmula definida Excel:

Figura função 208 de replicar Excel ESQUERDA () com Text.Start ().

Agora você pode finalizar a consulta:

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Nunca use o nome de uma função existente como seu nome de tabela Poder Query. Se você tinha chamado este deixou a mesa, você iria
ocorrer erros # N / A em fórmulas do Excel da tabela do original, como nomes de tabela são avaliadas antes das funções.

Replicando o direito de Excel () função


Com base no que você sabe sobre LEFT (), você já deve ter adivinhado que o uso = RIGHT () não funcionará no Poder Query, e você está correto.
Novamente, a equipe Poder consulta escolheu um nome de função diferente, como mostrado abaixo:

Sintaxe Exemplo Resultado

sobressair = RIGHT (texto, num_chars) = DIREITA ( “Excel”, 2) el


consulta de energia = Text.End (texto, num_chars) = Text.End ( “Excel”, 2) el

Siga estes passos para ver como os resultados se comparam:

• Selecione uma célula na tabela de dados na planilha DIREITO → criar um novo → consulta Da Tabela

• Renomeie o pqRight consulta

• Ir para Adicionar Coluna → Adicionar coluna personalizada


Capítulo 17 Poder consulta Fórmulas 147

• Chamar o novo pqRight coluna (x, 4) e introduzir a seguinte fórmula:

= Text.End ([Palavra], 4)
• Clique OK

Os resultados são mostrados abaixo:

Figura função 209 de replicar Excel DIREITA () com Text.End ().

Mais uma vez, os resultados são consistentes com o Excel da, que é uma coisa boa. Agora você pode finalizar esta consulta, bem como:

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Replicando LEN do Excel () função


Isso não está olhando difícil até agora, não é? Agora tente a função LEN (), cuja sintaxe é listado abaixo:

Sintaxe Exemplo Resultado

sobressair = LEN (texto) = LEN ( “Excel”) 5

Poder consulta = Text.Length (texto) = Text.Length ( “Excel”) 5

Com base nisso, os resultados devem ser exatamente o mesmo que o Excel de. Siga estes passos para ver o que acontece:

• Selecione uma célula na tabela de dados na planilha LEN → criar um novo → consulta Da Tabela

• Renomeie a consulta pqLen

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Chamar nova coluna pqLen (x) e introduzir a seguinte fórmula:


= Text.Length ([Palavra])
• Clique OK

Os resultados são mostrados abaixo:

Figura função 210 de replicar Excel LEN () com Text.Length ().

Os resultados se alinham perfeitamente novamente. Você está pronto para carregá-los para uma conexão bem:

• Vá até Home → Close & Carga Para ... → Só Criar Conexão


148 M é para (dados) do macaco

Replicando encontrar a função do Excel ()


Até agora você está se perguntando o que é o grande problema. É óbvio que a equipe Poder consulta apenas mudou a forma como referência fórmulas. Na
verdade, a equipe ainda injetado alguma lógica para agrupar todas as fórmulas de texto em conjunto, como todos eles começam com Text.FunctionName.

Mas as mudanças são realmente um pouco maior. Vamos dar uma olhada, replicando função do Excel find (). A tabela de base seguinte está a utilizar a

função FIND () para encontrar um o minúsculo nas palavras. Naturalmente, que funciona em alguns casos, e ele retorna erros no caso de palavras que

não contêm o caractere especificado.

Figura 211 O find () função que deseja replicar.

Siga estes passos para ver como Poder consulta lida com isso:

• Selecione uma célula na tabela de dados → criar um novo → consulta Da Tabela

• Alterar o nome consulta para pqFind

Antes de adicionar a coluna personalizada, você deve saber que o novo nome para encontrar em poder de consulta é Texto. Posição de(). Com
base na sintaxe da função find (), isso significa que você deve ser capaz de ir com este:

= Text.PositionOf ( "o", [Palavra])


Tente:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome do novo pfFind coluna ( “o”, x) e introduzir a fórmula acima

• Clique OK

Os resultados estão longe de ser o que você prever:

Figura 212 O que diabos está acontecendo aqui?

Em Poder Query, a -1 resultado para a função informa que Text.PositionOf () encontrada nenhuma correspondência. Mas como isso é possível? A carta o claramente

aparece em um monte dessas palavras. Para encontrar a resposta, examinar a sintaxe completa para essa função, em comparação com Excel de:

Sintaxe Exemplo Resultado

sobressair = FIND (localizar_texto, dentro_) = FIND ( “xc”,”Excel”) 2

consulta de energia = Text.PositionOf (texto, localizar_texto) = Text.PositionOf ( “Excel”,”xc”) 1

Você vê a grande diferença? Não só é a função find () mascarada sob um novo nome, mas a ordem dos parâmetros tem capotou!
Isso certamente vai causar um problema. Agora você precisa seguir estes passos:
Capítulo 17 Poder consulta Fórmulas 149

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado

• Modificar a fórmula para inverter a ordem dos parâmetros:

= Text.PositionOf ([Palavra], "o")


• Clique OK

Os resultados são melhores, mas ainda não completamente consistente com Excel:

Figura 213 Cada resultado é desligado por um.

Parece que os valores devolvidos daqui siga a base 0 regra. (Contando F como 0, o primeiro o no futebol seria caráter 1, não caráter
2.)

Este não é um grande problema; isso significa apenas que você precisa para modificar a fórmula e adicionar 1 ao resultado, a fim de torná-lo compatível com o
Excel. Siga estes passos para fazer isso:

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado

• Modificar a fórmula como se segue:

= Text.PositionOf ([Palavra], "o") + 1


• Clique OK

E agora as coisas estão melhorando. . . quase o mesmo:

Figura 214 Os resultados numéricos alinhar muito bem, mas os erros não.

Este caso é realmente interessante, como o poder de consulta realmente dá um resultado mais agradável do Excel quando um valor não for encontrado. Não
seria ótimo se você não tem que envolver sua função find () em um manipulador de erro no caso do personagem não foi localizado? Agora você pode finalizar
esta consulta:

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Uma coisa que você não pode fazer é replicar o erro # valor! erro. Tentando substituir 0 com #VALOR! falhará a menos que você converter a coluna
de texto em primeiro lugar. Mesmo se você fez isso, você teria, então pousar uma coluna de números textuais para o Excel, o que, obviamente, ter
impacto na sua capacidade de usar os valores em fórmulas.

Replicando MID do Excel () função


A última função que tentará replicar é função do Excel MID (). Este é um assunto delicado, pois, na verdade, lança uma ruga adicional na
mistura também.

A fim de replicar a função MID (), você precisa usar a função Text.Range do Poder Consulta (), que tem a seguinte sintaxe:
150 M é para (dados) do macaco

Sintaxe Exemplo Resultado

sobressair = MID (texto, começo, num_chars) = MID ( “Excel”, 2,2) ex

consulta de energia = Text.Range (texto, começo, num_chars) = Text.Range ( “Excel”, 2,2) ce

Como você pode ver, a função tem um nome diferente, mas os parâmetros são listados na mesma ordem como o equivalente Excel. Isso é uma boa
notícia, pelo menos. E, no entanto, como você pode ver, o resultado final parece ser um personagem off. Isto é devido ao fato de que o Poder Consulta
conta letras utilizando-base 0, em vez de base 1, como Excel faz. Mas armado com esta informação, você deve ser capaz de fazer este trabalho. Para
iniciar o processo:

• Selecione uma célula na tabela de dados na planilha MID → criar um novo → consulta Da Tabela

• Renomeie a consulta pqMid

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome da nova coluna pqMid (x, 5,4) e introduzir a seguinte fórmula:


= Text.Range ([Palavra], 5,4)
• Clique OK

Os resultados são, mais uma vez, underwhelming:

Figura 215 A par destes funcionou, mas por que não todos?

Isto é um pouco de um choque. Você estava esperando a palavra de ser desligado por um personagem, mas para não ter erros em todos os lugares. O que
aconteceu?

Antes de lidar com os erros, você precisa corrigir a posição do caractere inicial. Você pode ver que guarda-livros deve estar retornando
“manter”, e ele está vindo no final de uma letra, retornando Isso não requer uma grande correção “eepe.”; você só precisa ajustar a fórmula
para subtrair 1 a partir do parâmetro começando:

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado

• Modificar a fórmula como se segue:

= Text.Range ([Palavra], 5- 1, 4)
• Clique OK

Curiosamente, os resultados parecem muito melhor:

Figura 216 Por que estas fórmulas agora retornar resultados consistentes?
Capítulo 17 Poder consulta Fórmulas 151

Uma das grandes características da função do Excel MID () é que você nunca tem que se preocupar com quantos caracteres estão permanecendo na
cadeia de texto. Se o parâmetro final que você fornece é maior do que o número de caracteres restantes, ele vai simplesmente devolver todos os
caracteres restantes sem disparar um erro. Não é assim no Poder Query. Para corrigir isso, você obviamente tem que fazer uma modificação para
quantos caracteres estão sendo devolvidos, como você não quer fornecer um número maior do que o número de caracteres restantes. Em outras
palavras, você quer retornar o mínimo de quatro caracteres, ou o número de caracteres que ainda permanecem na cadeia de texto. Você vai aprender
muito mais sobre as funções necessárias no capítulo 20. Agora, no entanto, só sei que você precisa usar uma função de lista para fazer isso,
especificamente List.Min ().

Ao invés de apenas tentar construir esta em sua função, siga estes passos para ver se você pode construir isso em uma coluna separada:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Introduza a seguinte fórmula

= List.Min ({Text.Length ([Palavra]) - (5-1), 4})


• Clique OK

Você pode ver que você tem uma tabela que indica claramente que Truck tem apenas um carácter adicional:

Figura 217 ter determinado o número de caracteres restantes.

Você vai ficar muito mais exposição a listas no capítulo 19, mas aqui está uma análise rápida da fórmula:

• Text.Length ([Palavra]) - (5-1) simplesmente converte o comprimento da palavra na coluna Palavra e subtrai a posição de partida. Você usou
(5-1) como você queria o quinto personagem, mas você precisa corrigi-lo para a base
0. (Pode-se simplificar esta a 4, se desejado).

• A final 4 representa o número máximo de caracteres que você deseja retornar

• A fim de usá-los na função List.Min (), eles precisam ser cercada por chaves e Se- arated por vírgulas.

Com este trabalho, você pode simplesmente editar o seu coluna original para usar esta fórmula no lugar da final 4:

• Clique no ícone de engrenagem próximo ao passo Adicionado Custom 1

• Copiar a fórmula que você acabou de escrever

• Clique OK

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado

• Modificar a fórmula e aninhar a fórmula copiada no local da final 4:


= Text.Range ([Palavra], 5-1, List.Min ({Text.Length ([Palavra]) - (5-1), 4}))
• Clique OK

Quando você visualiza o passo Adicionado personalizada, a sua função MID equivalente deve agora estar trabalhando:
152 M é para (dados) do macaco

Figura 218 A consulta está trabalhando para todos, mas a última linha.

Quando você estiver confortável que a consulta está funcionando, você pode tomar as seguintes medidas:

• Remover o passo Adicionado Custom 1

• Vá até Home → Close & Carga

Apesar do erro, você pode chamar este feito e carregar a consulta para uma tabela do Excel. Por quê? Porque os erros apenas mostrar-se como células vazias de
qualquer maneira:

Figura 219 Erros desaparecem quando carregado a uma tabela, dando saída a uma sensação consistente.

observações
É uma verdadeira vergonha que nem todas as funções no Poder consulta tem equivalência completa com aqueles em Excel, especialmente desde que o poder de
consulta é uma ferramenta para usuários do Excel. Esperemos que isto irá mudar em versões futuras; nós gostaríamos de ver uma nova biblioteca de funções
adicionais que permitem que você portar seu conhecimento existente fórmula Excel diretamente no Poder consulta sem a necessidade de aprender novos nomes
de fórmulas e sintaxes. Até essa altura, no entanto, é importante que você teste os resultados das funções de alimentação de consulta que parecem ser
equivalentes do Excel e verifique se eles correspondem ao que você espera, como você vai ocasionalmente têm de mexer com a saída para obtê-lo para alinhar
corretamente.
Capítulo 18 lógica condicional em Power consulta 153

Capítulo 18 lógica condicional em Power consulta


Como você construir mais soluções usando energia Query, você é obrigado a se deparar com um cenário em que você precisa para realizar algum tipo de lógica
em uma coluna. E enquanto o poder de consulta tem um método para fazer isso, não é consistente com a forma como um Excel Pro iria abordar esta questão.

IF Cenários em poder de consulta


Este exemplo analisa as questões que aparecem quando você importar o seguinte quadro de horários de um arquivo texto:

Figura 220 Um arquivo de texto com alguns desafios.

Os dados não parece tão ruim à primeira vista. E parece que, mesmo menos de um problema quando você perceber que você realmente não precisa os
quatro principais linhas, como as datas estão incluídas em cada linha da tabela de dados. Mas então você percebe um problema: O nome do funcionário
não está incluído no linhas, mas sim está enterrado no meio dos dados. Como você tirá-lo de lá?

O desafio neste cenário é descobrir como obter o nome do funcionário associado a cada linha de dados e que não vai ser
possível sem alguma lógica condicional.

Conectando-se a Dados
Você precisa se conectar aos dados para ver como fica no Poder Query, pois isso pode lhe dar algumas idéias sobre como proceder:

• A partir de um novo livro, crie uma nova consulta → De → Arquivo de Texto

• Navegue até CH18 Exemplos \ 2015-03-14.txt

• Vá até Home → Reduzir linhas → remover linhas → Remover linhas superiores → 4 → OK

• Transformar → Use primeira linha como cabeçalhos E o

problema está agora totalmente exposta:

Figura 221 John Thompson, sair na coluna Out.


154 M é para (dados) do macaco

À primeira vista, você pode ser tentado a transpor esses dados e preencher o nome de John Thompson para baixo. Mas há outras linhas também, e você não
tem idéia de quantos. A construção de uma solução para usar essa abordagem pode ser muito difícil de manter, então você precisa encontrar uma maneira
melhor.

Uma abordagem mais sensata, neste caso, seria adicionar uma nova coluna e colocar uma fórmula na it-uma fórmula que verifica se a coluna
para fora um tempo e puxa os dados nessa coluna se o teste falhar. Mas como você faz isso?

Replicando IFERROR do Excel () função


Faça uma experiência aqui:

• Botão direito do mouse na coluna Out → Alterar tipo → Tempo

Como seria de esperar, os tempos de todas converter muito bem, mas o nome do funcionário retorna um erro:

O Figura 222 John Thompson não tem tempo.

Isto é inteiramente de se esperar, mas você pode usar seu conhecimento deste comportamento para resolver o problema? E se você testou para ver se
convertendo esta coluna para um tipo de dados em tempo retorna um erro? Se assim fosse, então você pode voltar nulo, e se ele não o fez, você poderia voltar o
tempo.

Você pode usar a função do Poder consulta Time.From () para tentar converter os dados para um tempo válido. E com base no seu conhecimento Excel,
você tipo de esperar que isso funcione:

= SEERRO (Time.From ([out]), null)


Infelizmente, isso vai te nada, mas um erro, como o poder de consulta não reconhece a função IFERROR. Nem tudo está perdido, no entanto, como o
poder de consulta faz tem uma função para fazer isso, embora a sintaxe é muito diferente:

= Tente < operation> caso contrário < resultado alternativo>


Assim como IFERROR do Excel (), Poder consulta do experimentar declaração tenta executar a operação fornecido. Se for bem sucedido, esse resultado
será devolvido. Se, no entanto, o resultado é um erro, então ele irá retornar o valor (ou outra lógica) especificado no de outra forma cláusula.

Isto significa que IFERROR () pode ser escrita em Power consulta da seguinte maneira:

= Tentar Time.From ([out]) em contrário nulo


Ele deve retornar nulo para qualquer linha que contém um nome empregado na coluna Out e o tempo para qualquer linha que tem uma hora válida nele. De
uma chance:

• Remova a passo tipo alterado


• Adicionar Coluna → Adicionar coluna personalizada

• Deixe o nome como é, mas entrar na fórmula acima

• Clique OK

A nova coluna é adicionada, e ele funciona muito bem para cumprir a meta atual:

Figura 223 Voltando nulo em vez de um erro.


Capítulo 18 lógica condicional em Power consulta 155

Você pode obter um formato de hora diferente, como 18:00:00 em vez de 6:00:00 PM, dependendo das configurações gional re em seu
computador.

Isso é fantástico, uma vez que significa que agora você pode fazer alguns outros testes para descobrir o que você realmente quer saber.

Replicando SE do Excel () função


Agora você tem algo que você pode testar usando a lógica simples: Se a coluna personalizada contém nulo, em seguida, dar-nos o valor na coluna Out. Se isso
não acontecer, retornar nulo.

Este deve ser bastante fácil de apenas criar uma coluna personalizada e utilizar a seguinte função, certo?

= IF ([Custom] = null, [Out], null)


Não tão rápido! Isso não vai funcionar.
O poder de consulta não usar a mesma sintaxe que Excel faz para a sua função IF (), qualquer um. Em vez disso, a sintaxe Poder consulta é a seguinte:

= If < teste_lógico> então < result> outra < alternate_result>


Sim, você está lendo isso corretamente. Você realmente tem que soletrar a coisa toda para fora para poder consulta. Tente:

• Adicionar Coluna → Adicionar coluna personalizada

• Definir o novo nome da coluna para Employee

• Insira a seguinte fórmula:


= If [Custom] = null, em seguida, [Out] outra nula
• Clique OK

A coluna é adicionada aos dados, e você pode ver algum potencial real aqui:

Figura 224 John Thompson finalmente tem sua própria coluna.

Naturalmente, com este no lugar, você pode preencher o nome do funcionário para as áreas nulos:

• Direito do mouse no Employee coluna → Preencher → Baixo

Mesmo melhor, porque o poder de consulta processa os passos na caixa de Passos Aplicadas como passos completamente auto-suficiente em
ordem sequencial, você não precisa manter a informação precedente ao redor. Você pode remover essa coluna e limpar o resto dos dados, como
este:

• Clique com o botão personalizado coluna → Remove

• Direito do mouse na coluna Trabalho Data → Alterar tipo → Data

• Selecione a coluna Work Data → Início → Reduzir linhas → remover erros

• Botão direito do mouse na coluna Out → Alterar tipo → Tempo

• Selecione o Reg Hrs através de colunas de Despesas → Transformar → Tipo de dados → número decimal

• Botão direito do mouse na coluna Employee → Alterar tipo → Texto

• Mudar o nome da consulta para TimeSheet A consulta é

agora final e pronta para ser carregado:


156 M é para (dados) do macaco

Figura 225 O quadro de horários com os funcionários preenchido abaixo da última coluna.

A chave para trabalhar com funções lógicas do Poder consulta é lembrar-se de explicá-las na íntegra e certifique-se de manter os nomes
das funções em todas as letras minúsculas.
Capítulo 19 Poder consultar objetos 157

Capítulo 19 Poder consultar objetos


Antes de dar uma olhada em programação com a linguagem M do Poder Query, primeiro precisamos dar uma olhada detalhada para os
diferentes objetos e funções que estão disponíveis. Ter uma boa compreensão de como criar esses objetos, às vezes uns com os outros, será
útil quando se trabalha com conceitos mais avançados de programação.

Esteja ciente de que o foco sobre este capítulo não é como usar essas recém-descobertas poderes em qualquer coisa extremamente prático. Este capítulo se
concentra em como realmente falar com esses objetos, fornecendo uma referência para você voltar para quando você precisa falar com esses objetos (ou
partes dele) quando se trabalha em cenários mais complexos. Se você estiver acompanhando em seu próprio computador, você notará que todos os
objetos-chave neste capítulo (tabelas, listas, registros, valores binários e erros) aparecem em uma pia batismal verde quando incluídos em uma coluna. Além
disso, cada um pode ser visualizado clicando no espaço em branco ao lado dessa palavra-chave.

tabelas
Objetos de tabela pode aparecer em vários lugares no Poder Query, e nós sempre apreciá-lo quando o fazem, como eles são muito fáceis de
trabalhar. Siga estes passos para ver por si mesmo:

• Abertas Exemplos CH19 \ Poder consulta Objects.xlsx

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Digite a seguinte fórmula na barra de fórmulas:

= Excel.CurrentWorkbook ()
Você pode ver que há uma tabela na pasta de trabalho:

Figura 226. A sola tabela na pasta de trabalho a ser visualizado.

Os benefícios de tabelas são numerosos em Power Inquérito:

• Você pode visualizar os dados em uma tabela.

• Os dados contidos em uma tabela tem linhas e colunas (mesmo que você não pode garantir que uma linha de cabeçalho já estará em
vigor).

• Você pode perfurar em tabelas específicas listadas na coluna ou expandi-los todos.

• Uma vez que você expandiu uma mesa, você tem um conjunto completo de guias da faixa de transformação disponíveis para você, e você pode
usá-los para transformar mais e manipular os dados.

Tabelas não, é claro, significa apenas mesas-far trabalho do Excel a partir dele, na verdade. Você pode encontrar mesas em várias fontes de dados, incluindo

aqueles extraídos utilizando fórmulas como Excel.CurrentWorkbook (), Csv.Document (), data- tabelas de base, e mais, como você viu em capítulos

anteriores. Você deve finalizar esta consulta antes de seguir em frente:

• Mudar o nome da tabela de consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão


158 M é para (dados) do macaco

listas
listas de consultas de energia são incrivelmente robusto e útil, e em muitos casos eles são necessários, a fim de usar algumas das fórmulas mais poderosas do
poder de consulta.

A principal forma que as listas são diferentes das tabelas é que, quando visto, uma lista sempre apenas tem uma única coluna de dados. Se você imaginar uma
lista como sendo equivalente à sua lista de compras, você poderia simplesmente listar os nomes dos itens que você deseja comprar. Assim que você começar a
adicionar as comparações de preços entre diferentes lojas, de ter movido a partir de uma lista para uma mesa.

Sintaxe
Ao trabalhar com Power Query, uma lista podem ser identificados pela presença de chaves, com os itens da lista, separados por vírgulas.
Além disso, itens textuais deve estar entre aspas, assim como eles precisam estar em uma fórmula de Excel. Aqui estão dois exemplos de
listas:

• Uma lista de números:

= {} 1,2,3,4,5,6,7,8,9,10
• Uma lista de valores de texto:

= { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}
Listas não estão restritos a, contendo apenas valores numéricos, no entanto. Eles podem misturar todos os tipos de dados em tudo, in- cluindo outras listas:

= {1465, "M", "macaco de Dados", {999234}}


Os principais itens a recordar aqui é que os itens de lista individuais são separados por vírgulas, e cada lista individual é cercado
por chaves.

Criação de listas a partir do zero


Agora você irá criar algumas listas a partir do zero para ver como eles funcionam, começando com uma lista de números individuais:

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Na barra de fórmula, tipo a seguinte fórmula:


= {1,2,3}
• pressione Enter

Agora você tem uma boa lista de números de 1 a 3:

Figura 227 Criar uma lista a partir do zero.

Além do fato de que você criou uma lista de valores, você também vai perceber que você está trabalhando agora com a lista Ferramentas → Transform guia
contextual ativo. Praticamente todos os comandos nas outras guias ficará inativo neste momento, tornando este se sente como uma experiência muito
limitada. Apesar disso, você vai ver que você ainda tem acesso a manutenção / remoção de linhas, a triagem, de-duplicação, e até mesmo executar
algumas operações estatísticas básicas sobre seus dados.
Capítulo 19 Poder consultar objetos 159

Agora, tão grande como é ser capaz de criar uma lista a partir do zero assim, criar uma lista de números de 1 a 365 seria um pouco de dor. Por esta
razão, você também tem a capacidade de usar um atalho de codificação para criar uma lista consecutivas con- de um número através de um outro.
Alterar a fórmula na barra de fórmulas para ler o seguinte:

= {} 1..365
Obter um nice lista consecutiva 1-365:

Figura 228 Usando os .. caracteres para criar uma lista consecutiva.

Você pode criar listas alfabéticas consecutivos desta forma, bem, desde que você envolve os personagens entre aspas e
utilizar apenas um único personagem. Por exemplo, = { “A” ..”J”} vai funcionar, mas = { ‘AA’ ..”ZZ”} não.

Você também pode usar vírgulas dentro listas, desde que sejam dentro das aspas. Substituir a fórmula na barra de fórmulas com a
seguinte:

= { "Puls, Ken", "Escobar, Miguel"}


Após a cometê-lo, você tem dois itens da lista, mostrando os nomes dos autores deste livro:

Figura 229 Você ainda pode usar vírgulas na saída da lista.

Convertendo em listas Tabelas


Diga que você realmente quer dividir seus dados em duas colunas, mas isso não é possível com uma lista como listas estão restritos a uma única coluna de dados.
Neste caso, você realmente precisa do conjunto de ferramentas de transformação mais rica que as tabelas oferecer.

Não se preocupe: É super fácil de transformar uma lista em uma tabela. Basta clicar no grande botão Para tabela no canto superior esquerdo da guia contextual
Ferramentas de Lista. Este diálogo interessante aparece:

Figura 230 Que história é essa delimitadores?


160 M é para (dados) do macaco

Você pode definir a configuração delimitador de vírgula e clique em OK, e seus dados irá carregar muito bem em uma tabela com duas colunas:

Figura 231 de dados carregados a partir de uma lista separada por vírgulas.

Esta caixa de diálogo aparece se há delimitadores em seus dados ou não. Se você não tem delimitadores, basta clicar em OK, ea caixa de

diálogo vai desaparecer. Finalize esta consulta:

• Alterar o nome consulta para List_Authors

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Criação de listas de Mesa Colunas


Às vezes, você deseja extrair os dados de uma única coluna de uma consulta em uma lista. Para ver como isso funciona, conecte-se a tabela de vendas:

• Ir para a planilha de vendas e selecione qualquer célula na tabela de vendas

• Criar um novo → consulta Da Tabela Você tem

agora a exibição de tabela completa:

Figura 232 A tabela de dados em bruto.

Agora, o que você faria se você quisesse obter uma lista única dos itens de estoque? Se você fosse confortável deixando-o na forma de uma tabela, você
pode simplesmente remover todas as outras colunas e, em seguida, vá para a aba Transformar e remover duplicatas. O desafio aqui é que ele ainda
estaria em forma de tabela, e você não seria capaz de alimentá-lo em uma função se for necessário para. Em vez disso, você gostaria de obter esses
itens exclusivos, mas como uma lista, o que lhe dá essa flexibilidade. Siga esses passos:

• Remova a passo tipo alterado a partir da caixa Passos Aplicadas

• Botão direito do mouse na coluna Componentes Item → Drill Down Agora você

verá uma lista de todos os itens de estoque:


Capítulo 19 Poder consultar objetos 161

Figura 233 A coluna extraído para uma lista.

Antes de seguir em frente, olhar para a barra de fórmulas. De lá, você vê esta linha de código:

= Fonte [Inventory Item]


Esta linha de código refere-se à coluna Inventory Item, como foi calculada durante a etapa Fonte desta consulta. Isto dá-lhe o atalho código M
para extrair todos os valores da coluna em uma lista sem usar a interface do usuário comandos de algo que você vai encontrar muito útil mais tarde.

Com o conteúdo da coluna extraídos para uma lista, você é capaz de realizar mais operações de lista sobre ele, como de-duplicação de dados,
como este:

• Ir para a lista de Ferramentas → Transformar → Remover Duplicatas

Agora você tem uma lista de itens exclusivos que você pode alimentar em uma função diferente. É hora de finalizar

esta consulta:

• Renomeie o List_FromColumn consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Criação de listas de listas


Mencionamos anteriormente que é possível criar listas de listas. Isto pode parecer um conceito estranho, por isso vamos explorar esse cenário.

Digamos que você tem quatro IDs de funcionários (de 1 a 4) envolvidas na sua tabela de vendas. Estes valores representam Fred, John, Jane, e
Maria, nessa ordem. Não seria bom para ser capaz de converter esses valores para seus nomes, sem ter que criar uma tabela separada? Siga estes
passos para ver se você pode usar uma lista para fazer isso:

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Criar uma nova lista na barra de fórmulas como segue:

= {{1, "Fred"}, {2, "John"}, {3, "Jane"}, {4, "Mary"}}


Observe que aqui você tem quatro listas separadas, cada um rodeado por chaves e separados por vírgulas. Estes quatro listas são, por sua vez cercado
por um único conjunto de mestre chaves, definindo uma lista mestra composto por quatro sub-listas. Quando você cometer esta fórmula para a barra de
fórmulas, Poder consulta dá-lhe uma lista contendo quatro listas:

Figura 234. A lista de listas.


162 M é para (dados) do macaco

Como você pode ver, visualizar a primeira lista mostra que é uma lista que contém os valores 1 e Fred. Esta é esting inter-, mas você pode usar
isso?

Convertendo esta lista a uma tabela retorna uma única coluna que ainda contém listas, mas tem uma seta de expansão no canto superior esquerdo. Clique que e
olhar para os resultados:

Figura 235 As listas têm expandido vertical, não na horizontal!

Claramente, agregando as listas combina-los empilhando as linhas, não tratar cada um como uma linha individual. Enquanto você pode
transformar isso usando a abordagem index / módulo / pivô do capítulo 15, é um monte de trabalho extra que você deve ser capaz de evitar.

A fim de fazer este trabalho, você teria necessário para definir a sua lista, como é feito no exemplo acima do autor e não como uma

lista de listas, mas sim como uma lista de itens com as vírgulas dentro das aspas. Terminar este exemplo, com os seguintes passos:

• Renomeie os List_of_Lists consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão Há duas coisas

principais para reconhecer aqui quando se trabalha com listas:

• listas posso conter outras listas

• Expandir listas de listas não muda olhar sua orientação Vamos a

uma alternativa.

registros
Embora uma lista pode ser descrita como uma única coluna vertical de dados, uma ficha é uma lista horizontal, homólogo de várias colunas. Um registro
pode ser visualizado como uma linha de um banco de dados, contendo todas as informações pertinentes relativas a um cliente ou transação particular.

Em Poder consulta, os registros podem aparecer em colunas de tabela ou em listas como você recuperar dados. Eles também podem ser criados on-the-fly, se
necessário.

Sintaxe
Os registros são um pouco mais complexo do que as listas em que eles precisam para ter um valor de algum tipo, e você também deve definir os nomes das
colunas, como este:

= [Name = "Ken Puls", País = "Canadá", Línguas faladas = 2]


Observar esses pontos de sintaxe-chave:

• Cada registro completo é cercado por colchetes.


• Cada campo de registro (coluna) precisa de um nome definido, seguido pelo caractere =.

• Os dados para o campo é então fornecido, entre aspas para dados textuais.

• O nome de cada campo e de dados par é, em seguida, separados por vírgulas.

Field (coluna) nomes não precisa de qualquer pontuação em torno deles, se eles incluem espaços ou não.

O que acontece quando você precisa criar vários registros de uma vez? A resposta é que você chegar a uma lista:
Capítulo 19 Poder consultar objetos 163

= {[Name = "Ken Puls", País = "Canadá", Línguas faladas = 2], [Name = "Miguel Escobar", País =
"Panamá", Línguas faladas = 2]}

Criar um registo a partir do zero


É hora de circular de volta à sua tentativa anterior para a construção de registros para uma tabela de identificação do funcionário:

• Criar um novo → consulta De Outras Fontes → consulta em branco Aqui você

precisa criar um único registro:

• Na barra de fórmula, introduzir a seguinte fórmula:

= [EmployeeID = 1, EmployeeName = "Fred"]


• pressione Enter

Poder consulta retorna seu registro:

Figura 236 Seu primeiro registro.

Como você pode ver, nomes de campos do registro são listados pela esquerda, com os dados correspondentes jogada pela direita. Curiosamente, os dados são
organizados verticalmente, não horizontalmente, como seria de esperar. Este não é um problema, apenas algo para se acostumar.

Note também que você tem um novo Ferramentas gravar → Converter guia contextual e, se você explorar o resto das guias da faixa, você vai descobrir
que todos eles estão em cinza.

Convertendo um registro em uma tabela


Desde lá, obviamente, não há muita coisa que você pode fazer com os registros, você pode ir em frente e transformar este em uma tabela para ver o que
acontece:

• Vá em Ferramentas Grave → Converter → na tabela de resultado

provavelmente não é exatamente o que você espera:

A Figura 237 um único registo convertido para uma mesa.

Você pode ter esperado que este iria aparecer com os nomes dos campos na parte superior e os valores na primeira linha. Embora ele não funciona
desta forma, é fácil de corrigir uma vez que é agora uma tabela:

• Ir para Transformar → Transposição

• Transformar → primeira linha como cabeçalhos


164 M é para (dados) do macaco

O resultado se parece mais com o que você teria inicialmente esperado:

Figura 238 O registro agora se parece com uma mesa adequada.

Neste caso, isso é bom, mas o que vai acontecer se você tem um monte de registros que você precisa para converter em uma tabela? Finalizar a consulta
para que você possa passar para a próxima seção e descubra:

• Renomeie o Record_Single consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Criando vários registros a partir do zero


Agora dizer que você quer construir sua mesa fora para que ele abrange todos os funcionários. Você precisa construir uma lista de registros para fazer isso:

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Digite o seguinte na barra de fórmulas:

= {[EmployeeID = 1, EmployeeName = "Fred"], [EmployeeID = 2, EmployeeName = "- John"],

[EmployeeID = 3, EmployeeName = "Jane"], [EmployeeID =


4, EmployeeName = "Maria"]}
Observe que você ainda está usando o mesmo formato que você usa para um único registro, mas você separou os registros com vírgulas e

cercado-los nas chaves necessários para indicar que eles são parte de uma lista. Quando você se compromete a fórmula acima, ele retorna uma lista

de registros:

Figura 239 A lista de registros, com a visualização mostrando que você acertou.

A seta no canto superior direito da barra de fórmulas permite expandir isso para mostrar várias linhas ao mesmo tempo.

Converter vários registros em uma tabela


Agora você pode converter esta lista de registros a uma tabela e ver que tipo de desastre que você tem em suas mãos:

• Ir para a lista de Ferramentas → Transformar → Para Tabela → OK

O resultado é uma coluna de registros que podem ser expandidos. Curiosamente, clicando que expandir ícone indica que há colunas a serem
expandidos:
Capítulo 19 Poder consultar objetos 165

Figura 240 Isto está olhando melhor!

Ao clicar OK retorna um bom conjunto de colunas e linhas, exatamente como você estava procurando com o único registro!

Figura 241 Você acabou de construir uma tabela a partir do zero!

Isso vai contra a sabedoria convencional, mas a criação de vários registros realmente se sente como se desenrola em uma tabela mais logicamente que um
único registro. A verdadeira diferença é que você converter um Lista de registos numa tabela no segundo exemplo, e não um único registo numa tabela. Com
os registros em uma coluna da tabela, Poder consulta, em seguida, lê as informações do registro corretamente, a fim de expandi-lo para a coluna necessária
e linhas. Você está agora numa fase em que esta tabela pode ser salva-e até mesmo fundidos em outras consultas, se quiser. Guardá-lo como este:

• Renomeie os Table_From_Records consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Criar um registo a partir de uma linha da tabela


Quando você estava trabalhando com listas, você viu como você pode converter uma coluna em uma lista, se você precisar fazer isso por qualquer motivo. Você
também pode converter uma linha em um registro. Para fazer isso, você pode começar com uma nova consulta:

• Ir para a planilha de vendas e selecione qualquer célula na tabela de vendas

• Criar um novo → consulta Da Tabela

Tal como acontece com exemplos anteriores, agora você tem a exibição completa da tabela. Para extrair o primeiro registro, você precisa criar uma etapa de
consulta em branco. Para fazer isso:

• Clique na etapa fonte nos passos Aplicadas → OK

• Clique no botão fx próximo à barra de fórmula


166 M é para (dados) do macaco

Figura 242 Criando um passo de consulta em branco.

Agora você começa uma nova etapa com a seguinte fórmula na barra de fórmulas:

= Fonte
• Modificar esta fórmula para adicionar {0} a ele:

= Fonte {0}
O resultado é o seu primeiro disco:

Figura 243 {0} = Registro 1?

O que aconteceu aqui?


Quando tratados desta forma, o passo Fonte retorna uma lista de registros. Porque o poder de consulta é a base 0, ficha 0 retorna o primeiro
valor na lista. (Se você tivesse feito isso = Fonte {1}, você teria recuperado o recorde de Falador Parrot.)

Ainda mais interessante, você pode perfurar em ainda mais, acrescentando o nome do campo entre colchetes. Tente modificar a consulta para
o seguinte:

= Fonte {0} [Preço]


Como você pode ver, você acabou perfurado na direita e extraiu o preço para o primeiro registro na tabela:

Figura 244 Drilling em preço recorde 0 do.

Para entender a relevância deste, considere uma situação onde você precisa para perfurar um registro específico, a fim de controlar filtros. No Capítulo

20 você vai ver onde esta técnica permite que você faça exatamente isso. Agora você pode finalizar a consulta:

• Renomeie o Record_From_Table consulta

• Vá até Home → Close & Carga Para ... → Só Criar Conexão


Capítulo 19 Poder consultar objetos 167

Criação de registros de cada tabela Row


Para converter cada linha em uma tabela em registros, você precisa usar um pequeno truque. Comece assim:

• Ir para a planilha de vendas e selecione qualquer célula na tabela de vendas

• Criar um novo → consulta Da Tabela

Em seguida, você deseja converter cada linha na tabela para um registro. O desafio é que você precisa o número de índice de cada linha para fazer isso.
Então você pode chegar à coluna Index:

• Ir para Adicionar Coluna → Adicionar Coluna Índice → De 0 Agora você está indo para mudar o nome deste degrau

( não a coluna) na caixa de Passos Aplicadas:

• Direito do mouse na etapa Index Adicionado → Rename → AddedIndex (sem espaço)

A consulta agora é o seguinte:

Figura 245 A coluna Índice foi adicionado, e a etapa tiver sido mudado sem o espaço.

Agora você pode chegar a uma coluna personalizada para converter suas linhas de registros. O truque para isso é criar uma coluna de índice, como
você agora tem o valor que você precisa para extrair seus registros. Por que você precisa este truque? Você não está indo para operar na linha atual,
mas sim na saída da etapa AddedIndex. Dessa forma, ao invés de receber um valor específico (como a primeira linha), você pode dinamicamente
alimentá-lo na consulta para obter cada linha. Siga esses passos:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nomear os registros de coluna

• Utilizar a seguinte fórmula:


= AddedIndex {[Índice]}
O resultado é que uma nova coluna é criada, e que contém as linhas como registros:

A Figura 246 uma coluna de registos.

Estritamente falando, você não precisa mudar o nome da coluna Índice Adicionado para remover o espaço. Fazer isso só torna as coisas
muito mais fácil na interface do usuário.
168 M é para (dados) do macaco

Neste ponto, você pode remover todas as outras colunas, e você simplesmente tem uma coluna de registros:

• Botão direito do mouse na coluna Registros → Retirar outras colunas

• Renomeie o Records_From_Table consulta

• Apenas vá até Home → Close & Carga Para ... → Connection

valores
Se você estiver trabalhando com bancos de dados, você ocasionalmente verá colunas contendo valores:

Figura 247 O objeto valor evasivo.

Este objeto em particular mostra-se apenas em determinados casos. Em ordem para que ele apareça, você deve estar trabalhando com um banco de dados que
tem uma chave primária e relação de chave estrangeira estabelecida entre as mesas. O que é realmente estranho é que um valor é apenas a forma como um
banco de dados retorna um registro.

Esta tabela particular pode ser localizado no banco de dados AdvertureWorks2012 que você conectado a no Capítulo 8. Use o
mesmo método para conectar conforme descrito no Capítulo 8, conecte-se as vendas. SalesTerritory mesa, e remover os outros do
que os mostrados colunas.

Depois de saber quais os valores que você tem, trabalhar com eles é o mesmo que trabalhar com os outros tipos de dados que estão relacionadas com.

A direção da relação determina o que é retornado a uma coluna relacionada quando você está trabalhando com um banco de dados. Se
você estiver em uma tabela de fatos, e o link está indo à tabela de dimensão, você receberá um valor (registro). Se você estiver em uma
tabela de dimensões eo link vai para uma tabela verdade, você vai receber uma mesa.

binários
Binários são essencialmente arquivos. Alguns podem ser combinados e ler usando funções como Csv.Document (), ao passo que outros, como pastas
de Excel, não podem ser combinados e deve ser lido usando a função Excel.Workbook (). O processo de extração de dados a partir desses livros é
coberto extensivamente nos capítulos 3 e 4, de modo que não explorá-los ainda mais aqui, além de mencionar que eles são um objeto de Energia
Consulta que você vai encontrar.

erros
Existem dois tipos de mensagens de erro que você pode encontrar em Power consulta: erros de nível de etapa e erros de nível de linha.
Capítulo 19 Poder consultar objetos 169

Erros de nível de linha


erros de nível de linha normalmente ocorrem quando você está tentando converter dados para o tipo de dados errado ou tentando opera- comeu em
dados antes de ter sido convertido para o tipo correto. Você já viu vários exemplos desses tipos de erros ao longo deste livro. Aqui está um:

Figura 248 Um erro de nível de linha desencadeada por tentar converter os países para um tipo de dados Data.

Esses erros não são geralmente mostram-rolhas, e eles podem até mesmo ser muito útil quando você está limpando os dados, como eles podem ser tratados de
duas maneiras:

• Usados ​como filtros para manter / remover linhas

• Substituídos com outros dados utilizando a Transformada → Substitua comando Erros

Apesar do fato de que não há nenhum mecanismo de depuração no Poder Query, esses erros são geralmente identificável e muitas vezes (embora nem sempre)
estão relacionados com os tipos de dados incorretos.

Erros de nível Passo


erros de nível de etapa são um pouco mais grave do que lidar com erros de nível de linha. Estas mensagens bloco de poder Consulta de mostrar qualquer
coisa na janela de saída, exceto o erro, como nestes exemplos:

A Figura 249 um erro sintaxe de expressão, desencadeada por uma falta) no final da linha.

Figura 250 Um erro de expressão geral, desencadeada por referindo-SQL em vez de SQL.

Infelizmente, ferramentas de depuração do Poder de consulta são particularmente fracas, como você pode ver com o seguinte problema:

Figura 251 Um erro de sintaxe causada por um} personagem ausente, mas com a mensagem de erro pedindo uma vírgula.
170 M é para (dados) do macaco

A oferta de depuração mensagem de erro é apresentada em uma única linha (embora ele teve que ser cortado e moldado para esta imagem). No
final da cadeia é um útil caracter ^ que indica onde o poder consulta pensa que você precisa colocar o seu vírgula. A questão, todavia, é que uma
chaveta não foi fornecida para fechar a lista Acumulado de vendas, como indicado pela seta vermelha apontando para cima.

Estas questões são hoje desafios. É uma pena que não temos penetrador embutido na fórmula, coloração, ou Intelli Sense hoje para ajudar com essas
questões. Consulta poder é frequentemente sendo atualizado, porém, e esperamos ver mudanças nesta área no futuro. Até que isso aconteça, no
entanto, a depuração deve ser feito da maneira dolorosa: a revisão da linha e assistindo para a abertura de chave e fechamento de marcas de sintaxe,
vírgulas e similares.

Funções
O último tipo de objeto que você vai encontrar em Power consulta é uma função. As funções podem ocorrer em dois lugares:

1. Eles podem estar dentro de um banco de dados, onde eles indicam um procedimento armazenado.

2. Eles podem ser devolvidos em uma lista de Energia Consulta.

Você vai aprender mais sobre como usar e invocando funções mais tarde no livro, mas aqui você vai aprender um truque que você pode usar para ver como
funções manifestas e também para descobrir a lista de funções de Energia Consulta. Tente isto:

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Na barra de fórmula inserir a seguinte fórmula:


= # Compartilhada

• Vá em Ferramentas Grave → Converter → na tabela

Consulta de energia gera uma tabela de todas as tabelas poder de consulta na pasta de trabalho atual, mas mais importante, segue-se a lista de tabelas
com uma lista de todas as funções incluídas no produto. Você pode acessar a documentação para qualquer função nesta lista:

A Figura 252 uma mesa de funções.

Como você usa isso? Para ver, filtrar a primeira coluna para Max (com uma letra maiúscula H):

• Filtrar os filtros de nome de coluna → texto → Contém → Max A busca

transforma-se quatro ofertas:

Figura 253 Todas as funções contendo Max.

Se você clicar em função ao lado Table.Max, você vê duas coisas acontecem-documentação aparece atrás e um diálogo invocação aparece
na frente:
Capítulo 19 Poder consultar objetos 171

Figura 254 Uma caixa de diálogo invocação aparece na frente da documentação.

Esta caixa permite testar a função, mas clicando em Cancelar faz isso ir embora. Atrás dele você encontrará a documentação completa para a
função, para que possa determinar se ele faz o que você precisa. Note-se que você não está restrito ao uso do comando #shared de uma consulta
em branco. Toda vez que você quiser verificar a documentação fórmula de Poder Query, você pode fazer o seguinte:

1. Clique no fx na barra de fórmulas para adicionar uma nova etapa

2. Substitua o código na nova etapa com = Compartilhado #

3. Converter os registros a uma tabela

4. Broca na função que pretende explorar


Você pode então voltar para as etapas anteriores na caixa de Passos Aplicadas para implementar a função, e você pode excluir todos os passos
#Shared quando tiver terminado.
172 M é para (dados) do macaco
Capítulo 20 Entendendo a M Idioma 173

Capítulo 20 Entendendo a M Idioma


Agora que você já explorou os diferentes objetos que você pode usar em Power Query, é hora de tomar um olhar mais profundo da língua M que é usado para
executar a mágica do poder de consulta. Enquanto dominar M não é realmente necessário, ele certamente vai adicionar algum poder incrível para o seu arsenal
e permitem-lhe trabalhar com situações que outros não podem.

Estrutura M consulta
Para começar, você vai puxar uma tabela para poder consulta e, em seguida, examinar o código que está trabalhando nos bastidores:

• Abertas Exemplos CH20 \ Compreender M.xlsx → selecione qualquer célula na tabela de vendas

• Criar um novo → consulta Da Tabela

• Excluir o tipo alterado passo Sua

consulta agora deve ter esta aparência:

Figura 255 A consulta inicial está disposta a examinar.

consulta Formulário

Até agora, tudo o que vi foi conduzido através do interface do utilizador. Você viu Poder consulta agir como um gravador de macro, e você têm sido
capazes de interagir com ele através da caixa de Passos Aplicadas. Também tive alguma interação limitada por meio da barra de fórmulas. O que
você não tenha visto ainda é a linguagem de programação que reside embaixo das cobertas desta ferramenta incrível. É hora de mudar isso.

• Vá até Home → Editor Avançado

A janela Editor Avançado aparece, e que contém o código para toda a consulta criada até à data:

Figura Editor Avançado de 256 Poder Query.


174 M é para (dados) do macaco

Você pode ver que o conjunto de recursos neste momento é muito limitado. O editor avançado é essencialmente apenas um editor de texto com um verificador de
sintaxe no canto inferior esquerdo. Esta área vai ver, sem dúvida, algum investimento no futuro, mas agora é essencialmente apenas uma caixa de texto.

Antes de se frustrar tentando redimensionar o editor para torná-lo tão pequeno como a imagem mostrada acima, esteja ciente que você não
pode. (Nós encolheu-lo com edição de fotografia para economizar espaço página). O editor avançado pode ser expandida para torná-lo maior,
mas não pode entrar em colapso muito mais do que o tamanho padrão quando você abri-lo.

Dê uma olhada no código dentro da janela mostrada acima:


deixei Fonte = Excel.CurrentWorkbook () {[name = "Sales"]} [conteúdo] em Fonte

Existem algumas peças-chave aqui que são necessárias para criar uma consulta bem sucedida, então vamos quebrar esta linha por linha.

A primeira linha de cada consulta deve começar com a palavra deixei. ( Isso muda para funções, que são cobertos no Capítulo 21.) Nada mais
vai nesta linha em tudo.

A segunda linha começa com a palavra Source. Isto é importante, pois este é o nome da etapa da caixa de Passos Aplicadas. É através deste nome
passo que você pode descobrir qual linha de código se refere ao passo que você deseja examinar. Neste caso, você pode ver que quando a nova
consulta de tabela foi criada, Poder consulta invocou o Excel. CurrentWorkbook () função. Em seguida, ele anexou uma lista dos registros (tabela do
Excel) que importados. Finalmente, perfurados nos registros de conteúdo para que objeto de tabela. O segundo-a-última linha de cada consulta é a
única palavra dentro.

A última linha é uma única palavra que se refere ao passo que contém a saída que você gostaria de voltar no final da consulta. Este é geralmente o

passo anterior, mas não tem que ser. Agora você pode adicionar mais um passo para esta consulta:

• Feche o Editor Avançado clicando em Concluído

• Direito do mouse no preço coluna → Alterar tipo → número decimal

• Vá até Home → Editor Avançado

Você pode ver que um novo passo foi adicionado à janela:

A Figura 257 uma nova etapa foi adicionada à consulta.

Existem algumas coisas pena notar aqui. Primeiro, uma vírgula foi adicionado ao final da linha Fonte. (Se você volte ao código anterior, você
verá que a vírgula não estava lá.) Isso é incrivelmente importante: Cada linha entre o deixei e dentro linhas devo tem uma vírgula na
extremidade exceto a última linha antes do dentro A linha, que pode Nunca tem uma vírgula no final. Neste caso, a linha Fonte termina com
uma vírgula, mas o # line”Changed Type” não, uma vez que é a última linha antes do dentro declaração.

Para colocar isso em termos de energia da consulta, você está fornecendo uma lista de passos entre o deixei e dentro linhas. Como você sabe, todos
os itens em uma lista precisam ser separados uns dos outros por meio de uma vírgula, mas você não colocar uma vírgula no final.

O significado de #”sintaxe”
A segunda coisa que você deve observar na imagem anterior é que a etapa lê tipo alterado na caixa de Passos Aplicadas mas vem
no código como #”Type Changed”.
Capítulo 20 Entendendo a M Idioma 175

O desafio aqui é que o espaço entre Mudou e Tipo provoca Poder consulta para tratar as duas palavras como termos separados. Para lidar com isso e
tratar tipo alterado como um único termo, Poder consulta prefixos o termo com o caractere # e, em seguida, envolve o termo entre aspas. Infelizmente,
você vai ver este tipo de coisa acontece fre- quentemente em Power Query, como os nomes padrão dado a passos normalmente têm espaços entre
eles. Isso resulta em um monte de marcas de hash e citações em blocos de código mais longas.

Se você quisesse, você poderia mudar isso para evitar esses caracteres. Você pode fazer isso de duas maneiras diferentes:

• Direito do mouse no nome da etapa na caixa de Passos Aplicadas (antes de entrar no Editor Avançado) e renam- ing o passo.

• Substitua todas as ocorrências de #”Changed Type” no Editor avançado com um novo termo como NewType. Independentemente do método

que você escolher, o seu código vai acabar procurando assim:

Figura 258 código de Atualização para remover o #”estranheza”

Se você fazer suas modificações manualmente, lembre-se de que o seu novo mandato deve ser idêntica em todos os casos (sem alterações caso), e
não se esqueça de também mudar o nome do último passo!

Amarrando os passos juntos


A próxima coisa a entender é como as linhas individuais ligam uns aos outros. Observe que na linha NewType, há uma referência a
Fonte:

Figura 259 O passo Fonte referenciado na linha NewType.

É essa referência que permite Poder consulta para cadeia de todos os comandos juntos. Basicamente você pode ler a linha NewType da seguinte forma:

• Dê-nos a saída da etapa Fonte


• Transformar os tipos de que o passo e o conjunto de Preço das colunas para um tipo de número

Usando quebras de linha


Uma outra parte desta equação que é interessante é que o código como mostrado acima é equivalente a este bloco:

deixei Fonte = Excel.CurrentWorkbook () {[name = "Vendas"]} [conteúdo],

NewType = Table.TransformColumnTypes
(Fonte, {{ "preço", digite o número}})
dentro NewType

Mas isso viola a regra sobre ter uma vírgula no final de todas as linhas, exceto a linha que precede o dentro afir- mação, não é? Não
exatamente.

Quando Poder consulta lê o seu código, ele procura por palavras-chave, incluindo a vírgula eo dentro palavra-chave. Como se lê uma linha, ele ignora
qualquer vírgulas que são colocados entre parênteses correspondentes, chaves, colchetes, ou citações. Uma vez que ele encontra uma vírgula
solitário, ele reconhece que, como o fim da linha de código atual e começa a ler a próxima linha de código como uma etapa independente.
Alternativamente, se encontra o dentro palavra-chave, ele agora sabe que a consulta vai acabar e olha para ver qual passo para voltar.
176 M é para (dados) do macaco

Por que isso é importante? Isso significa que você pode realmente colocar uma quebra de linha no meio. Porque o poder de consulta não tenha encontrado uma
vírgula ou o dentro palavra-chave no final da linha NewType inicial, ele continua seguindo em frente, assumindo que a próxima linha é ainda parte da primeira. Em
essência, isso significa que este código:

NewType = Table.TransformColumnTypes (Source, {{ "preço", digite o número}})


É equivalente a este código:

NewType = Table.TransformColumnTypes
(Fonte, {{ "preço", digite o número}})
Ou este código:

NewType = Table.TransformColumnTypes (
Fonte, {

{ "Preço", digite o número}}

)
A chave para entender aqui é que você não pode colocar um retorno de disco rígido no meio de um nome de função ou palavra, mas quebrar a qualquer sinal de
pontuação está bem. Olhou em uma escala maior, esta consulta será executado perfeitamente bem:

deixei Fonte = Excel.CurrentWorkbook () {[name = "Vendas"]} [conteúdo],

NewType = Table.TransformColumnTypes
( Fonte, { { "Preço", digite o número}}

)
dentro NewType

Por que você ainda quer fazer isso?


Esta técnica pode ser muito útil quando você está tentando depurar coisas como listas de listas, que têm numerosos pares de itens da lista. Ao fazer
ajustes manuais para o código, é muito fácil se perder nas chaves e não real ize que você perdeu fechando um. Quando você faz isso, você obtém o
código desequilibrada que não irá compilar e que pode ser muito difíceis de corrigir, especialmente com a actual falta de boas ferramentas de
depuração no Poder Query. Ao separar a abertura e fechamento de chaves e separando os pares de itens da lista em linhas individuais, você tem
uma chance muito melhor de manter a sua abertura e fechamento de chaves em equilíbrio. Outro bônus desta abordagem é que é também muito
fácil de adicionar novas colunas para a etapa TransformColumnTypes (pelo menos quando você sabe quais os tipos de dados para atribuir).

Adicione os tipos de dados para todas as colunas da seguinte forma:

Coluna (s) Tipo de dados

Encontro Encontro

Componentes item Texto

EmployeeID, Quantidade Número

Você pode reconhecer a partir das chaves após a palavra-chave Fonte na etapa NewType que você precisa fornecer uma lista de colunas e tipos de
dados em um formato de lista. Como você já sabe a partir do capítulo 19 que todos os itens da lista precisam ser separados por vírgulas, você sabe
que isso deve funcionar:

deixei Fonte = Excel.CurrentWorkbook () {[name = "Vendas"]} [conteúdo],

NewType = Table.TransformColumnTypes
( Fonte, {
Capítulo 20 Entendendo a M Idioma 177

{ "Preço", digite o número}, { "data", tipo de data}, {


"Item Inventory", digite o texto}, { "EmployeeID",
digite o número}, { "Quantidade", digite o número}}

)
dentro NewType

Se você clique em Concluído para cometer este código (exatamente como está escrito), você verá que a consulta retorna os resultados desejados, com cada tipo
de dados convertido como você pediu:

Figura 260 Não são apenas as datas-tempo livre, mas confira o recuo na barra de fórmulas!

código Comentários
Os últimos conjuntos de caracteres que você precisa saber como criar são aqueles que permitem que você deixar um comentário no código. Estes podem ser muito

úteis para deixar notas no código ou desativar temporariamente uma linha de código. Para marcar uma única linha de código como um comentário, você coloca

duas barras no início da linha, como mostrado aqui:

deixei

// Recuperar a tabela de vendas de Excel


Fonte = Excel.CurrentWorkbook () {[name = "Vendas"]} [conteúdo],
Poder consulta não irá ler o // Recuperar. . . linha, e esta linha também não aparecerá na caixa de Passos Aplicadas, mas ele está lá para
lembrá-lo do propósito da seguinte linha.

Às vezes você precisa de comentários mais longos que não cabem em uma linha. Neste caso, você colocar os caracteres / * antes do código
que você não quer executado e os caracteres * / no final da seção, como este:
/ * Eu quebrei este comentário código em várias linhas
(Através da leitura M é para o macaco de Dados) */

Resumo de caracteres especiais


A tabela a seguir fornece uma lista dos caracteres especiais que você vai encontrar em sua jornada de codificação de energia Inquérito: Caráter

propósito

(Parâmetros) parâmetros da função circunvizinhos

{Lista} os itens da lista circunvizinhos

[Registro] registros envolventes

"Texto" texto circunvizinho

# "Nome Step" Fazendo referência a um nome passo que contém espaços ou outros caracteres reservados

//comente Comentando uma única linha de código

/* comente */ Comentar várias linhas de código


178 M é para (dados) do macaco

Operando em cada linha em uma coluna


Há uma construção mais muito importante para compreender em M: como ler e modificar o código que opera em cada linha em uma coluna. Para obter
esse código, você pode levar sua consulta existente e adicionar uma coluna para determinar o total de vendas por linha:

• Certifique-se de que você está fora do Editor Avançado

• Selecionar a quantidade e colunas Preço → Adicionar Coluna → Padrão → Multiply

• Botão direito do mouse na coluna Multiply → Vendas Rename → Gross

• Direito do mouse na etapa Inserida Multiplicação → Rename → CalcSales

• Botão direito do mouse as colunas renomeadas passo → Rename → Renomear a consulta irá

agora se parece com isso:

Figura 261 A consulta com uma coluna de Receita Bruta.

Visualizando o código no Editor Avançado produz dois novas linhas de código no final da consulta (linhas repartidas foram recuado aqui para
facilidade de identificação):

CalcSales = Table.AddColumn (NewType, "Multiply", cada


List.Product ({[Quantidade], [preço]}), número de tipo), Rename =
Table.RenameColumns (CalcSales, {{ "Multiply",
"Vendas Brutas"}})
Enquanto você pode não necessariamente reconhecer a função utilizada na etapa Rename, você pode facilmente reconhecer que a função
Table.RenameColumns refere-se à etapa anterior e, em seguida, fornece uma lista dos nomes das colunas anteriores e o novo nome que você gostaria
que eles levar. Além disso, com base no fato de que você veja a lista aberta com dois {{caracteres, você pode identificar que você poderia fornecer uma
lista de listas aqui e renomear várias colunas ao mesmo tempo.

A linha de CalcSales, no entanto, tem uma nova palavra-chave em que você não tenha visto antes. A função Table.AddColumn refere-se em
primeiro lugar para o passo NewType e, em seguida, proporciona o valor de “Multiply”. Desde Multiply foi o nome dado à nova coluna, isso significa
que você poderia provavelmente apenas alterar esta linha para usar “Vendas Brutas” em vez de “Multiply”, evitando o passo de renomear a coluna
mais tarde. Após o nome da coluna é uma nova palavra-chave que você ainda não encontrou: cada. o cada -chave cates duos para poder consulta
que você deseja que esta ação executada para cada linha na consulta. Após isso, você vê a função List.Product (), que indica quais colunas para
multiplicar uns contra os outros e com o tipo de dados a saída deve tomar.

Agora você pode fazer algumas modificações para tornar o código mais curto:

• Substituir “Multiply” na linha CalcSales com “Vendas Brutas”

• Remover a vírgula do fim da linha CalcSales


• Remover toda a linha Rename

• Altere a última linha para ler “CalcSales” em vez de “Renomear” A sua consulta

agora deve ser semelhante a este:


Capítulo 20 Entendendo a M Idioma 179

Figura 262 Modificações feitas para a consulta.

Suas quebras de linha não pode aparecer nos mesmos lugares, ou eles podem não aparecer em tudo. As peças principais de lembrar são
(1) a linha CalcSales está a ser tratado como uma linha completa de código uma vez que foi dividida em duas linhas no meio da função, e
(2) a linha de não terminar com uma vírgula uma vez que esta linha precede o dentro palavra-chave.

• Clique em Concluído

Observe que a etapa Rename é ido, mas a coluna Vendas Brutas ainda existe:

Figura 263 A coluna Receita Bruta, gerado sem a necessidade de ser mudado.

O efeito final deste modificação do código é que ele agora define o nome da coluna na frente, evitando a necessidade de mudar o nome da coluna mais

tarde. Salvando um passo torna o código mais eficiente, impedindo etapas de processamento mais tarde. Além disso, você reconhece agora outra

palavra-chave na linguagem de programação Poder Query. Quando você vê o cada palavra-chave, você já sabe que a fórmula após esta palavra-chave

será aplicada a cada linha na tabela. Agora você pode finalizar a consulta:

• Renomeie os grossSales consulta

• Vá até Home → Close & Carga


180 M é para (dados) do macaco

Referindo-se a Passos ou linhas


Considere um cenário onde você tem um arquivo de texto que contém dados como mostrado abaixo:

Figura 264 de dados delimitados por tabulação com uma exigência específica.

Estes dados lança algumas rugas interessantes:

• Os dados é delimitado separador, mas a primeira linha não contém quaisquer separadores. Isto significa que você terá de acionar manualmente as
divisões de coluna.

• O número de linhas antes do número de identificação é variável. Não poderia ser de 5 ou 5.000 linhas antes da linha que contém o texto
Número ID.

• O número de linhas entre e depois da ID linha Total também é variável.

Seu desafio geral aqui é que você precisa para extrair linhas a partir do meio de um conjunto de dados e torná-lo dinâmico para lidar com no
entanto muitas linhas são evidentes antes, no meio, e depois de os dados necessários. Além disso, como uma ruga final, você gostaria de
determinar o número de dias entre cada data do pedido Comparada com a ordem anterior. Esta tarefa vai implicar tentando subtrair a data em uma
linha a partir dos dados em outro, algo que não pode ser feito através da interface de usuário de energia Query.

Conectando-se a Dados
Você precisa conectar aos dados e depois descobrir quais linhas que você precisa para realizar seus objetivos:

• Abra um livro em branco

• Criar um novo → consulta De → Arquivo de Texto → CH20 Exemplos \ Variando Header Rows.txt → OK

• Ir para Adicionar Coluna → Adicionar Índice Coluna → De 0

• Filtrar Column1 → texto Filtros → começa com

• Definir o filtro para começa com o número de identificação ou começa com a identificação total

• Botão direito do mouse e renomear as linhas filtradas passo para RowNumbers

Você poderia realizar o mesmo objetivo, filtrando as linhas que começam com ID, mas você não sabe se existem outras linhas no
conjunto de dados que começam com ID. Ao fazer os termos tão apertada quanto possível, você pode reduzir a chance de erros no
futuro. (Claro, se outra linha Número ID insere os dados, você ainda terá de trabalhar para fora como lidar com isso.) A consulta deve
agora olhar como se segue:
Capítulo 20 Entendendo a M Idioma 181

Figura 265 A consulta mostra apenas os índices de linha que você precisa.

Agora você tem uma visão muito cortada para baixo, mostrando os números de linha tanto para o número de ID e ID Total de linhas. Tenha em mente
que estas são totalmente dinâmico, como não importa quantas linhas preceder, seguir, ou estão no meio dos dados, os passos que tomou ainda vai
gerar as linhas corretas.

Combinando potência da consulta Passos


Agora, você poderia fazer esse código mais curto, se você queria? Você vai precisar da etapa Fonte novamente, mas o passo Índice Adicionado não
é algo que é absolutamente necessário na caixa de Passos Aplicadas. É, no entanto, possível combinar estes dois passos em um. Você pode olhar
para o código para esses dois passos, indo para Home → Ad vanced editor:

# "Index Adicionado" = Table.AddIndexColumn (Fonte: "Index", 0, 1), RowNumbers = Table.SelectRows (# "Index


Adicionado", cada Text.StartsWith ([- Column1], "ID Number") ou texto. StartsWith ([Column1], "ID total"))

Observe como o #”Index Adicionado” passo contém a função Table.AddIndexColumn. Na linha RowNumbers, você também ver que o #”Index
Adicionado” passo é o primeiro parâmetro alimentado nas Table.SelectRows () função. Se você quer evitar ter um separado #”Index Adicionado”
passo, tudo o que você precisa fazer é substituir o código real dentro do #”Index Adicionado” passo no lugar do termo na próxima linha.

Lembra quando substituindo o código dessa maneira que você quer que tudo entre o sinal de igual e só a vírgula
final.

Ao substituir o código no lugar, adicionando algumas quebras de linha, e remover o # line”Index Adicionado” completamente, você acaba com código aninhado, da
seguinte forma:

RowNumbers = Table.SelectRows (
Table.AddIndexColumn (Fonte: "Index", 0, 1), cada Text.StartsWith
([Column1], "Number ID") ou Text.StartsWith ([Column1], "ID Total"))

Como você pode ver, este código ainda funciona perfeitamente, mas remove a etapa Index Adicionado partir da caixa de Passos Aplicadas:

Figura 266 Eliminando a etapa Index Adicionado preservando a função.


182 M é para (dados) do macaco

Criar nova consulta Passos


Em seguida, você precisa ser capaz de usar esses dados em sua consulta, mas há um problema: Fonte de consulta funciona como um gravador de macro

sequencial, o que significa que você deixou seus dados de origem original para trás. Então, como você obtê-lo de volta? A resposta é clicar no botão fx na barra de

fórmulas:

Figura 267 criar manualmente uma nova etapa de consulta.

Se você não está prestando atenção quando você clicar neste botão, você seria perdoado por pensar que nada aconteceu. que os dados na janela
de visualização não aparecer em tudo. Você vai ver, no entanto, que você tem um novo passo na caixa de Passos Aplicadas chamado Custom1, ea
fórmula na barra de fórmulas mudou a isto:

= RowNumbers

Clicando no botão fx sempre cria uma nova etapa de consulta que se refere à etapa anterior. Então, como é que é útil? Alterar a fórmula para isso:

= Fonte
agora você vê que você está de volta a olhar para os dados originais.

Se você verificar o Editor Avançado, você vê que você poderia ter digitado isso em manualmente adicionando um novo passo certo
antes do dentro palavra-chave, como segue: Custom1 = Fonte Claro, a fim de manter o funcionamento do código, você também precisa
adicionar uma vírgula para a linha anterior e mudar o termo após o dentro palavra-chave para Custom1 de RowNumbers.

Você está agora em boa forma aqui, como você pode selecionar os RowNumbers passo para ver as primeiras e últimas linhas que deseja encontrar, em seguida,
recuar para Custom1 para que você possa começar a fazer exatamente isso.

Referindo-se a um passo Aplicadas Anterior


agora você quer restringir seus dados para apenas as linhas necessárias.

Para começar, você configurar o seu comando por meio da interface de usuário. A razão para isso é que ele vai dar-lhe a sintaxe para a
funcionalidade que você está depois, em vez de olhar a função e fazer as coisas manualmente desde o início.

O número de índice para a última linha é 9 como o definido atualmente dados senta. Se você filtradas as linhas da parte superior primeiro, no entanto, isso precisa
ser atualizado. Em vez de complicar as coisas, você pode remover as linhas de fundo em primeiro lugar, como o índice para as linhas superiores não vai mudar
quando remover as linhas de fundo. A abordagem que você vai usar aqui para remover as linhas de fundo não é realmente dirigido pelo recurso Remover linhas,
como solicita o número de linhas a serem removidos. Isso significa que você precisa para calcular todas as linhas no conjunto de dados, trabalhar para fora a
última linha, e realizar alguma matemática para determinar quantas linhas de remover. Ao invés de fazer isso, você pode identificar que a linha final que você
precisa está na linha 9, para que possa utilizar o Manter linhas superiores possuem em vez disso, para manter os top 9 linhas:

• Vá até Home → Manter linhas → Manter linhas superiores → 9 Você agora

tem uma tabela filtrada para mostrar apenas os top 9 linhas:


Capítulo 20 Entendendo a M Idioma 183

Figura 268 Os dados mostra agora os melhores 9 linhas.

Observe que você não tem a linha que começa com ID total. Isso é para ser esperado porque o ID linha Total foi realmente o décimo linha do
arquivo, mas você usou um índice de base 0 a contar linhas. Ao puxar a nona linha, no entanto, você obter os dados que você está depois, sem a
linha de total (que você só precisa filtrar qualquer maneira). Agora, como você fazer essa dinâmica? Olhe para o código na barra de fórmulas:

= Table.FirstN (Custom1,9)
Em teoria, você só precisa substituir a 9 com uma referência para o valor correto da etapa RowNumbers. Isso pode ser feito
consultando a um passo anterior e extrair o valor da coluna Índice nessa etapa. Para fazer isso, você usaria o seguinte código:

RowNumbers [Índice] {1}


Como você pode ver, você se refere às RowNumbers Passo aplicada, fornecer a coluna [Índice], e depois furar a linha que você precisa. Neste caso,
você quer usar {1}, pois isso remete para a segunda linha da coluna. (Lembre-se que {0} retorna o primeiro valor em um sistema de base de 0, {1}
retorna o segundo, e assim por diante.) Isso significa que você pode reescrever a fórmula na barra de fórmulas como segue para puxar o valor
dinamicamente a partir da tabela:

= Table.FirstN (Custom1, RowNumbers [Índice] {1})


você pode fazer ainda melhor do que isso?

Se você verificar para trás sobre o código para a etapa Custom1, você vê que ele simplesmente refere-se a Fonte. você pode pular usando o passo Custom1 e
apenas referir-se a Fonte na fórmula? Pode apostar que você pode! Atualizar essa fórmula novamente:

= Table.FirstN (Fonte, RowNumbers [Índice] {1})


O resultado ainda lhe dá exatamente o que você precisa:

Figura 269 A fórmula atualizada ainda funciona bem.

E agora, uma vez que a fórmula se refere à etapa Source, você não precisa o Custom1 passo mais em tudo.

• Excluir o passo Custom1 na caixa de Passos Aplicadas


184 M é para (dados) do macaco

Com esse passo limpo, você é agora para baixo a uma consulta de três etapas, e você está no seu caminho. Adicione o seu filtro dinâmico para filtrar as linhas
superiores, bem como:

• Vá até Home → remover linhas → Remover linhas superiores → 4 → OK

• Renomeie o Top Linhas removidas passo ExtractRows

• Atualizar a barra de fórmulas deste:

= Table.Skip (# "Mantido primeiras filas", 4)


• Para isso:

= Table.Skip (# "Mantido primeiras filas", RowNumbers [Índice] {0})


O resultado é um conjunto de linhas limitado a linha de cabeçalho e os dados brutos que você precisa:

Figura 270 O código é agora puxando dinamicamente tanto na partida e linhas que terminam.

Você pode consolidar as duas últimas etapas, bem como, apenas para manter o código mais limpo a este ponto:

• Vá até Home → Editor Avançado

• Edite o seguinte código:

# "Mantido primeiras linhas" = Table.FirstN (Fonte, RowNumbers [Índice] {1}), ExtractRows = Table.Skip (#
"Mantido primeiras filas", RowNumbers [Índice] {0})
• Ao incorporar o #”Mantido primeiras linhas” entrar na segunda linha da seguinte forma:

ExtractRows = Table.Skip (
Table.FirstN (Fonte, RowNumbers [Índice] {1}), RowNumbers [Índice]
{0})
• Clique em Concluído

Mais uma vez, você ter encurtado o número de passos aplicados, e você acabou com código compacto que recupera de forma dinâmica os dados
brutos definido, é necessário:

Figura 271 O conjunto de dados dinâmica está pronto para a limpeza.


Capítulo 20 Entendendo a M Idioma Os próximos passos são apenas 185

run-of-the-mill etapas de limpeza:

• Ir para Transformar → Coluna de Split → por delimitador → Tab → em cada ocorrência → OK

• Excluir o passo tipo alterado criado automaticamente (Ele define todas as colunas para texto, que não será coadjutor AC- a longo prazo)

• Ir para Transformar → Use primeira linha como cabeçalhos

• Direito do mouse no ID Number coluna → Alterar tipo → Número inteiro

• Direito do mouse no Valor coluna → Alterar tipo → Número inteiro

• Direito do mouse no OrderDate coluna → Alterar tipo → Data O resultado é um conjunto

de dados perfeitamente limpo:

Figura 272 O conjunto de dados, tudo limpo e pronto para utilizar.

Até agora, você conseguiu importar um conjunto de dados e dinamicamente restringir as linhas que você deseja usar. Neste ponto, não importa como
existem muitas linhas de dados antes da linha Número ID, a consulta vai ainda começar no lugar certo. Além disso, independentemente de quantos
existem linhas após o ID linha Total, você nunca vai vê-los em sua consulta de saída, ea consulta também vai puxar em qualquer número de linhas
entre esses dois cabeçalhos. Compactar o código é um passo totalmente opcional. Você é capaz de manter nidificação seu código copiando o passo
anterior e substituindo-lo para a próxima etapa no lugar do nome da etapa anterior. Enquanto isso pode tornar o código mais compacto e eficiente,
estar ciente de que ele também pode afetar drasticamente a sua capacidade de depurar o seu código no caso de algo correr mal. O truque é
encontrar um meio termo que faça sentido para você.

Referindo-se à linha anterior dinamicamente


Há mais uma tarefa para cumprir com este conjunto de dados: trabalhar o número de dias desde a ordem anterior. Infelizmente, enquanto que seria
incrível para apenas clicar em um botão para fazer isso acontecer, você não tem tanta sorte, como Poder consulta não possui essa funcionalidade
incorporada. Você ainda pode realizar seu objetivo, mas você tem que fazê-lo manualmente .

Para fazer este trabalho, você precisa descobrir uma maneira de criar uma nova coluna que mantém a data do pedido anterior. Você já sabe como fazer
referência a uma etapa anterior, e você mesmo sabe como se referir à coluna dentro desse passo. Você também sabe que você pode fornecer um número
de linha entre chaves para puxar para trás uma linha específica. Tudo que você precisa fazer aqui é estender essa lógica um pouco e fornecer um número
que é um menor que o número da linha atual.

A fim de resolver isso, é necessário o número de índice para cada linha no conjunto de dados. Como você está indo usar este novo passo em cálculos
futuros, você também deve renomeá-lo para evitar #”codificação constrangimento:

• Ir para Adicionar Coluna → Adicionar Índice Coluna → De 0

• Direito do mouse na etapa Index Adicionado → Rename → Transações Você está agora

configurado e pronto para construir uma fórmula que abrange linhas:


186 M é para (dados) do macaco

Figura 273 Você tem tudo que você precisa para construir fórmulas cross-linha.

Adicionar uma nova coluna:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nomeie o PreviousOrder Coluna

• Insira a seguinte fórmula:


Transações = [DataDaEncomenda] {[Índice] -1}
Neste caso, você está se referindo à etapa de Transações, e você quer um valor na coluna OrderDate. É a próxima parte que é a parte complicada.
[Índice] está dentro das chaves, e não é precedido por um passo nome. Isso significa que ele ainda está se referindo à etapa atual em vez do valor da
etapa anterior. Além disso, desde que foi introduzido na caixa de diálogo Column Adicionar personalizado, ele será prefixado pela cada palavra-chave,
operando em cada linha individualmente. Você simplesmente tomar o valor do índice para cada linha, subtraia 1, e que será a linha que você retornar
a partir do passo Transações.

A coluna [Índice] é gerada de modo que você pode dizer Poder Consulta qual linha você deseja recuperar a partir do conjunto de
dados de destino, mas não é necessário ter a coluna Índice presente naquele alvo. Você poderia facilmente usar a fórmula = #”Type
Changed” [OrderDate] {[Índice] -1}, e ele iria trabalhar, apesar do passo Changed Tipo não contém uma coluna de índice. Tudo o
que não é perfeito, no entanto, como você verá quando você comete a fórmula:

Figura 274 Urg. Um erro.

O primeiro registro retorna um erro, mesmo que o resto dos registros estão funcionando bem. Por quê? Nesta linha, o que é o valor do índice? É 0. subtrair

1 a partir desse, e você começa -1. Qual linha seria [ordem- Data] {- 1} return? Desde que você está trabalhando em um sistema de base de 0, a primeira

linha é {0}, para que você não pode começar em {-1}. Esta é a razão para o erro.

Então, o que este valor retornar? Se não houver recorde anterior, por que não devolver o OrderDate em vez disso? Dessa forma, quando você
faz o seu cálculo, você só tem 0 dias desde o fim anterior. Para corrigir isso, você precisará usar o try, conforme descrito no Capítulo 18:

• Clique no ícone de engrenagem próximo ao passo Adicionado Personalizado


Capítulo 20 Entendendo a M Idioma 187

• Modificar a fórmula para usar o try da seguinte forma:


= tentam Transações [DataDaEncomenda] {[Índice] -1} de outro modo [DataDaEncomenda]

Os resultados torná-lo muito mais feliz:

Figura 275 A coluna PreviousOrder devolve a data de pedido anterior.

Com essas datas no lugar, agora você pode calcular o número de dias entre eles:

• Selecione a coluna Ordem Data → segure Ctrl → selecione a coluna PreviousOrder

• Ir para Adicionar Coluna → Data → Subtrair dias e você tem

isso:

Figura 276 A diferença data foi calculada.

A ordem na qual você seleciona colunas aqui é importante. Se você selecionar a coluna PreviousOrder primeiro e depois a coluna

OrderDate, a sua diferença vai aparecer como negativo. Neste momento, a única coisa que resta a fazer é a limpeza final:

• Direito do mouse no Índice coluna → Remove

• Botão direito do mouse na coluna PreviousOrder → Alterar tipo → Data

• Botão direito do mouse na coluna DateDifference → Rename → DaysSinceLastOrder

• Vá até Home → Close & Carga

Neste ponto, você pode testar a consulta, abrindo os exemplos CH20 \ Variando arquivo Header Rows.txt e fazer modificações para o arquivo. Aqui
está o que você vai ver quando você joga com os dados:

• Linhas adicionadas antes da linha Número ID ou depois do ID linha Total não vai aparecer quando você atualizar a consulta.

• Linhas inseridas entre o número ID e ID Total de linhas vai aparecer, mas você precisa ter certeza de que você inseri-los no
número de ID formato <tab> Valor <tab> Data <Enter>.
188 M é para (dados) do macaco
Capítulo 21 Criando funções personalizadas 189

Capítulo 21 Criando funções personalizadas


Se você acha que volta para os capítulos 3 e 4, que você pode se lembrar de um par de questões com a maneira que os profissionais do Excel têm historicamente
importado e conjuntos de dados anexas. Este foi o método clássico para consolidar esses arquivos:

1. Importação e arquivo de transformação # 1.

2. Importação e arquivo de transformação # 2.

dados do arquivo 3. Cópia # 2 do e colá-lo no final do arquivo # 1.

4. Salve o arquivo # 1 como um arquivo consolidado.

E então, à medida que cada novo mês veio junto, um fluxo de trabalho de importação, limpo, copiar e colar semelhante viria a seguir. Isto,
naturalmente, levou a vários perigos em ambas as etapas de transformação e o copiar e colar. O mais complicadas as transformações necessárias,
quanto mais tempo o processo correu e quanto mais o trabalho entregue em novas mãos, o mais provável algo ia dar errado. Passos seria perdida ou
realizada de forma incorrecta, resultando num conjunto de dados comprometida.

Enquanto você pode resolver muitos destes problemas através da criação de consultas de acrescentar, e com suficiente clarividência você pode importar todos os
arquivos em uma pasta, o que acontece nas seguintes situações?

• Você construiu uma consulta com transformações significativas contra um único arquivo. O chefe gostou tanto que se transformou em
sistema de inteligência de negócios e agora precisa ser executada em cada arquivo mensal e anexado.

• Você tentou importar todos os arquivos em uma pasta, mas os arquivos necessários transformação antes sendo AP pended.

Qualquer um desses cenários cria problemas, mas cada um pode ser resolvido através da criação de uma função personalizada. Essas funções podem ser
usadas para tomar um conjunto existente de código Poder Query, empacotá-lo e permitir que ele seja executado várias vezes. No caso do primeiro cenário,
você pode reutilizar o que você já construiu e aplicá-lo de forma consistente a cada novo arquivo (reduzindo o fator de erro humano). No caso deste último,
você pode aplicar o processo para cada arquivo, pousando o resultado de cada conjunto pré-processados ​de dados em uma coluna de tabelas que podem
então ser combinadas. E a melhor parte? Na verdade não é tão difícil!

Construir uma função personalizada


A fim de construir uma função personalizada, você basicamente seguem um processo de três etapas:

1. Construir um cenário de uso único pela primeira vez.

2. Converta o cenário de uso único para uma função.

3. Chamar a função a partir de outra consulta.

Isso parece fácil o suficiente na prática. Vamos dar uma olhada como colocá-lo todos juntos.

Ao invés de construir um novo cenário de uso, você vai cair para trás sobre o cenário do Capítulo 18 na lógica condicional, onde você importou o arquivo
timesheet 2015-03-14.txt. Nesse capítulo você já construiu o código para executar a importação você precisava, dirigida a um quadro de horários
específicos.

Não surpreendentemente, você agora gostaria de aplicar a mesma lógica para um arquivo diferente. Ao invés de apenas alterar a fonte, no entanto, você também
gostaria de consolidar esses arquivos e quaisquer outros que são posteriormente adicionados ao diretório. Para fazer isso, você pode usar uma função
personalizada.

Construindo um Use Single-Scenario


Você já construiu o cenário de uso único anteriormente, e você pode apenas carregá-lo para começar o seu trabalho aqui. Abra os exemplos CH21 \ arquivo
personalizado Functions.xlsx para obter uma cópia da rotina que você construiu anteriormente. Este arquivo contém código idêntico ao que foi construído no
Capítulo 18, com uma exceção: O caminho do arquivo é apontado para uma pasta sub chamado arquivos de origem, que agora contém três arquivos separados
(incluindo o arquivo 2015-03-14.txt original) .

Quando você vá em Edit Query, você recebe uma mensagem de erro porque a etapa Fonte refere-se a um local que é diferente de onde você copiou os
arquivos de exemplo. Para resolver esse problema:
190 M é para (dados) do macaco

1. Clique no botão Go to Erro no canto superior direito da barra de mensagem de erro amarelo. Poder consulta mostra o caminho que está sendo usado
atualmente.

2. Clique no botão Editar Configurações e, na caixa de diálogo que se abre no meio da tela, clique em Procurar.

3. Navegue até a pasta onde você copiou os arquivos de origem, selecione 2015-03-14.txt e clique em OK e, em seguida, clique em OK novamente.

Lembre-se que a consulta construída carrega os registros do arquivo de texto, extrai os funcionários em uma nova coluna, e enche-los antes que
a remoção da coluna ajudante e linhas estranhas:

Figura 277 A consulta reformatar a tabela de tempos.

Converter a consulta em uma função


Em seguida, você precisa converter a consulta em uma função. Isso envolve três passos:

1. Come-se com um nome para a variável que irá armazenar os dados que você deseja substituir.

2. Editar a consulta e coloque o seguinte texto no início:


( variable_name) =>

3. Analise o seu consulta para os dados que você deseja substituir e substituí-lo com o nome da variável.

É uma boa idéia para chegar a um nome de variável que é um pouco descritiva dos dados que irá realizar, pois isso ajuda a auto-documento seu código M. O
objetivo aqui é converter o cenário de uso único para uma função onde você pode atualizar dinamicamente o caminho do arquivo, então você deve usar algo
semelhante ao filePath para descrever o que ele contém. (Finalmente, você começa a escolher o nome. Apenas certifique-se que ele não contém quaisquer
espaços ou caracteres especiais.)

O Windows File Explorer tem um conjunto de regras sobre quais caracteres são permitidos para nomes de arquivos e caminhos. Poder consulta usa
regras ligeiramente diferentes, no entanto. Por exemplo, se você configurar uma pasta como D: \ !! Macaco de dados, ele pode ser lido pelo Windows,
mas o poder de consulta vai sufocá-lo, como o poder de consulta não irá permitir um caminho de arquivo para começar com o! personagem.

Agora que você já determinou o seu nome da variável, editar a consulta para transformá-lo em uma função:

• Editar o Quadro de Horários de consultas → Início → Editor Avançado

• Coloque o cursor em frente da declaração let


• Digite o seguinte:
(Caminhoficheiro) =>

• pressione Enter

Seu código deve agora começar assim:


Capítulo 21 Criando funções personalizadas 191

Figura 278 A variável caminhoficheiro está agora no lugar.

Neste ponto, você já convertido sua consulta em uma função. Porque você não subbed o nome da variável no código, no entanto,
a função não vai realmente mudar nada. O próximo passo é ler o código, encontrar o caminho do arquivo existente, e substituí-lo (e
quaisquer citações que o rodeiam) com o nome da variável:

• Localize o caminho completo do arquivo na linha que começa com a Fonte

• Selecione o caminho do arquivo, tomando cuidado para excluir as aspas em ambas as extremidades

• Pressione Ctrl + C para copiar o caminho do arquivo (para uso posterior)

• Pressione a tecla Delete para limpá-la e remover as aspas em ambas as extremidades de sua seleção

• Digite filepath como o nome da variável

Seu código deve ficar assim:

Figura 279 A variável filepath subbed no código no lugar do caminho completo do arquivo.

Quando você vai para selecionar o caminho do arquivo usando o mouse, fonte de consulta seleciona caracteres extras, bem como, incluindo os
parênteses. É uma idéia melhor para clicar em frente à primeira citação, mantenha pressionada a tecla Shift e seta para a direita para selecionar o
código que você deseja substituir. A seleção de texto, desta forma não automaticamente pegar caracteres extras.

Neste ponto, você pode clicar em OK, e sua consulta muda drasticamente:

Figura 280 O que aconteceu com a minha consulta ??


192 M é para (dados) do macaco

Estas mudanças são, infelizmente, inteiramente de se esperar. Embora seja grande que é, obviamente, agora uma função e não uma consulta, e afirma
claramente a variável que precisa ser entrada, você vai perceber que você perdeu todos os itens na caixa de Passos Aplicadas. Não se preocupe: Eles ainda
estão todos lá, mas você simplesmente não pode vê-los agora.

Testar a Função
É uma boa idéia para testar se tudo ainda funciona neste momento. Fazer isso:

• Clique no botão Invocar

• Pressione Ctrl + V para colar o caminho do arquivo que você copiou anteriormente

Se você incluiu as aspas quando você copiou o caminho do arquivo anteriormente, você precisará removê-los a partir de ambas as extremidades do
valor colado, como Poder consulta não pode ler o caminho corretamente quando é cercado por aspas.

Quando você clica em OK, a consulta carrega as informações do arquivo e executa-lo através de todos os passos que você escreveu originalmente:

Figura 281 Os dados carregados a partir de um caminho de arquivo dinâmico.

Note também que você tem agora um novo passo na caixa de Passos Aplicadas. Este passo mostra que você chamou a função. Enquanto isso é
ótimo para testar a função, essencialmente quebra a capacidade da função a ser chamada de qualquer outro lugar. Agora que você já testou a sua
função, você precisa remover esta etapa:

• Remover o passo Chamado FunctionTimesheet

• Renomeie o fnGetTimesheet consulta

• Vá até Home → Close & Carga

Observe que a tabela de quadro de horários que residia na planilha Timesheet desaparece. Isto porque, apesar de apenas clicando Close & Load, a
consulta foi alterado de uma consulta para uma função. Funções, pela sua própria maquiagem, só pode ser criado em um formato somente
Connection:

Figura 282 A consulta é agora uma função.

Chamar a função
Agora que você já fez o trabalho duro, você precisa chamar esta consulta a partir de outra função. Desde que seu objetivo final é consolidar todas as planilhas em
uma pasta, você pode lançar uma nova consulta para importar todas as planilhas ao mesmo tempo:

• Criar um novo → consulta De → Arquivo de Pasta

• Navegue para os Exemplos CH21 pasta Arquivos de Fonte \ → OK

• Selecione o caminho da pasta e colunas Nome → botão direito do mouse → Retirar outras colunas Mesmo que você tenha restringido os dados apenas

para o caminho da pasta eo nome do arquivo, você tem tudo que você precisa para adicionar uma coluna personalizada e chamar a função. Então faça exatamente

isso:
Capítulo 21 Criando funções personalizadas 193

• Adicionar Coluna → Adicionar coluna personalizada

• Insira a seguinte fórmula na caixa de diálogo Add Custom Coluna:

= FnGetTimesheet ([Caminho da Pasta] e [Nome])


• Clique OK

O truque aqui é para lembrar o nome da sua função e obter o caso direito. Uma vez feito isso, é tão fácil como preenchê-lo com os dados apropriados.
Neste caso, você simplesmente concatenado o caminho do arquivo eo nome do arquivo em conjunto, utilizando o & caráter, assim como você pode fazer
em uma fórmula de Excel. Isso deu-lhe o caminho completo do arquivo, que foi então passado para a função. A função, em seguida, executado todas as
etapas contidas na função e voltou uma tabela para a coluna que representa o conjunto de dados processados ​para cada arquivo, como você pode ver
aqui:

Figura 283 A pré-visualização da nova importação de dados.

Agora você pode remover o caminho eo nome colunas de pasta e importar seus dados, consolidando assim os arquivos juntos:

• Remova o caminho da pasta e colunas Nome

• Clique na seta para expandir a coluna personalizada → desmarque a opção prefixo → OK

• Renomeie a tabela de tempos de consulta

Há uma última coisa a verificar antes de se comprometer esta consulta: os tipos de dados. Este é um pouco de vergonha, mas mesmo que a consulta original que
você construiu definidos os tipos de dados, você verá que nenhuma dessas configurações persistiu quando você transformou-o em uma função e combinou os
arquivos desta forma:

Figura 284 Cuidado com o mal Qualquer tipo de dados!


194 M é para (dados) do macaco

Para salvaguardar contra interpretações pobres por Excel ou Power Pivot, é uma boa idéia para definir os tipos de dados agora. Configurá-los da seguinte forma:

• Texto: Empregado

• Número decimal: Despesas, Misc horas, OT horas, Reg Hrs

• Tempo: Fora

• Encontro: Data trabalho

Com isso feito, você pode finalmente carregar a consulta:

• Início → Close & Carga Para ...

• Selecione Planilha existente → Quadro de Horários → A1

solução Impact
As ramificações do processo descrito aqui são bastante extensa. Mesmo se você construir um cenário de uso único, agora você pode convertê-lo para ser
aplicadas de forma consistente em vários arquivos. Que é um benefício enorme que foi estru- ously indisponível para prós Excel, pelo menos em fácil de
implantar moda.

Você pode lidar com situações em que a sua pegada de dados se expande em vários arquivos e onde transformações seria demasiado complexo se os arquivos
foram todos combinados em um antes de ser processado. Através da construção de um caso de uso único, você pode aperfeiçoar a transformação em uma escala
menor e, em seguida, anexar os resultados finais.

Depuração de funções personalizadas


Uma das peças dolorosas de trabalhar com funções personalizadas é que você perde a capacidade de passar por eles facilmente. Isso faz com que depuração
funções personalizadas um pouco de um desafio.

Embora não seja ideal, existe uma maneira de converter uma função de volta para uma consulta para que você possa testá-lo. A parte nate Infeliz- deste
processo é que ele é um estado temporário porque convertendo a função em um estado depurável converte-o para fora de modo função, rompendo quaisquer
dúvidas subsequentes durante o processo de depuração. No entanto, é a única maneira de cumprir a meta, então você vai aprender sobre isso na próxima.

A restauração da consulta Steps to the Box Passos Aplicadas


A fim de restaurar a caixa de Passos aplicada de modo que você pode depurar uma função, você realmente precisa para transformá-lo de volta para uma consulta.
Para fazer isso, você precisa fazer duas coisas:

1. Comente a linha que transforma a consulta em uma função

2. duplicado a variável usada na linha inicial e atribuir-lhe um valor


Se não o fizer qualquer uma dessas etapas fará com que você acabar com uma consulta ou função que retorna os resultados errados na melhor das hipóteses, ou
erros na pior das hipóteses.

Para comentar uma linha no código M, inserir os caracteres // no início da linha. Isso diz ao motor de Energia Consulta que os caracteres
restantes na linha não deve ser executado. Para duplicar a variável, você precisa configurar um novo passo após a linha let inicial para
criar e atribuir um valor à variável. Essa linha deve ser construída usando a seguinte sintaxe:

variable_name = assign_value_here ,
O nome da variável deve ser a variável que está fechado nos parênteses abertura para a função, e a linha tem de terminar com uma
vírgula. Dê uma olhada:

• Editar a consulta fnGetTimesheet → Início → Editor Avançado Espere. . . algo está

diferente do que a última vez que você olhou para este código:
Capítulo 21 Criando funções personalizadas 195

Figura 285 Novas linhas de código injectados para dentro da solução.

Onde é que essas novas linhas vêm?


Eles foram injetados quando você clicou no botão Invoke. Eles são totalmente desnecessária para a função de operar e pode apenas ser
removido para que a função começa com (filepath) novamente. Depois de remover as partes, modificar as três primeiras linhas para ler:

// (filepath) => deixe filepath = "C: \ yourfilepath \ Source Files \ 2015-03-14.txt",

Não se esqueça da vírgula final no fim da linha, ou o seu código não vai funcionar! Quando estiver

pronto, o código deve ser semelhante a este:

Figura 286 O código modificado para converter isso de volta para uma consulta.
196 M é para (dados) do macaco

Quando você clica em OK, você pode percorrer e verificar o que está acontecendo em sua consulta:

Figura 287 As etapas são de volta.

O bom aqui é que você ainda pode clicar o passo filepath para ver o caminho que você definir, e então você pode rever cada passo para ver como ele está
reagindo. Se você encontrar erros na forma como os seus dados são manipulados, você pode corrigi-los e, em seguida, virar a consulta de volta para uma função
novamente.

Enquanto sua função é no modo de depuração, quaisquer consultas subsequentes que se referem a ele não funcionará!

Restaurar “Função” ality


Para ligar a consulta de volta para uma função, você novamente precisa editar o código M para fazer duas coisas:

• Remova os caracteres // a partir da linha inicial

• Coloque os personagens // na frente da linha que está declarando a variável filepath Uma vez que estas coisas são feitas, a sua função irá

retomar o seu método de operação normal, e todas as consultas que utilizam esta função será capaz de usá-lo novamente.

Esquecendo-se de comentar a linha variável temporária irá resultar em que a linha substituindo qualquer variável passado para a
função. Você não quer se esqueça de comentar essa linha!
Capítulo 22 Avançado condicional Logic 197

Capítulo 22 Avançado condicional Logic


No Capítulo 18, você aprendeu a replicar a funcionalidade das funções IF do Excel () e IFERROR (). funções Claro, o IF () e IFERROR ()
não são as únicas funções em Excel que você usar para implementar saídas ou partidas condicionais.

Ao contrário das fórmulas analisadas anteriormente, replicando outras fórmulas na biblioteca lógica condicional do Excel envolve técnicas um pouco mais
complicado, incluindo o uso de listas e funções personalizadas.

multicolumn Logic
Ocasionalmente, como você está tentando filtrar para baixo de dados brutos, pode ser necessário para filtrar com base em vários critérios. Considere o seguinte
conjunto de dados, que está incluído nos Exemplos CH22 \ arquivo Logic.xlsx Multi-Column:

A Figura 288 um conjunto de dados em bruto.

Replicando OU do Excel () função


E se seu chefe lhe pediu para listar apenas os dados onde você vendeu um Falante Parrot ou o item foi vendido por Fred? Se este fosse um e cenário, seria
fácil: basta filtrar a coluna Inventory Item para Falador Parrot e, em seguida, filtrar o Vendido por coluna para Fred. Mas isso não vai funcionar neste caso,
porque você perderia qualquer Papagaios Talkative vendidos por John ou Jane, e você também iria perder quaisquer outros itens vendidos por Fred.

Se os dados são armazenados em uma tabela do Excel, você poderia resolver isso usando filtro avançado ou adicionando uma coluna usando a seguinte fórmula e
filtrar somente os resultados que estão listados como verdadeira:

= OU ([@ [Inventory Item]] = "Falador Parrot", [@ [Vendido por]] = "Fred")


Mas e se os dados não são originários de uma tabela do Excel? E se é proveniente de um banco de dados, uma página web, ou um arquivo de texto? Claramente,
isso não vai funcionar.

Puxar os dados em poder de consulta para ver como você deve abordar o seguinte:

• Selecione qualquer célula na tabela na planilha Maio

• Criar um novo → consulta Da Tabela

• Botão direito do mouse na coluna Data → Alterar tipo → Data

Como não é possível filtrar os dados sem perder registros necessários, você vai precisar adicionar uma coluna personalizada e aplicar uma fórmula para
examinar cada linha:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome da coluna Jogo?


Você sabe que você está indo a necessidade de testar se um determinado critério é verdadeiro ou falso, usando uma estrutura básica fórmula ao longo das
linhas do seguinte:

= se logic_test em seguida, "Cumpre os critérios!" mais "No Match"


O desafio aqui está chegando com que o teste de lógica. O poder de consulta não tem uma função OR (), então o que é o equivalente?

Quando você está procurando comparações de texto, é útil para verificar rapidamente a lista de funções de lista contidos nas categorias fórmula de poder
de consulta.
198 M é para (dados) do macaco

Lembre-se que você pode acessar a lista de fórmulas Poder consulta clicando no Saiba mais sobre o Poder Consulta fórmulas link na
parte inferior da caixa de diálogo coluna personalizada e clicando a fórmula de energia consulta categorias vincular parcialmente abaixo
na página. Você acaba no https://msdn.microsoft.com/ en us-/ página web biblioteca / mt296612.aspx.

Dentro das funções da lista, você verá que há uma função List.AnyTrue, que soa um pouco promissor. Selecionando esse item na
documentação revela o seguinte exemplo:
List.AnyTrue ({2 = 0, falso, 1 <0}) é igual a falsa
Com base nisso, você pode ver que a função contém uma lista de valores, como indicado pelas chaves dentro dos parênteses. Ele também
mostra que a função retornará false se nenhum dos itens são verdadeiras. Tente ninho esta fórmula no lugar do teste de lógica:

= Se List.AnyTrue (
{[Item Inventory] = "Falador Parrot", [Vendido por] = "Fred"}
)
em seguida, "Cumpre os critérios!"
mais "No Match"

Lembre-se que você precisa separar os critérios com vírgulas e, em seguida, cercar toda a lista de critérios com chaves porque a
função List.AnyTrue () requer uma lista como parâmetro. Ao clicar em OK, você pode ver que a fórmula retorna a sua mensagem em
qualquer caso em que o item de vendas é igual Falante Parrot ou o Vendido por campo detém Fred:

Figura função 289 de replicar Excel ou () usando List.AnyTrue ().

Desde que a função retorna verdadeiro se qualquer um dos critérios são verdadeiras, todas as instâncias onde Fred vendeu um Falante Parrot também exibir

o resultado Cumpre os critérios! no jogo? coluna. Agora você pode finalizar esta consulta, tendo os seguintes passos:

• Filtrar o Jogo? coluna para incluir somente única Cumpre os critérios! valores

• Alterar o nome consulta para pqOR

• Vá até Home → Fechar and Load

Poder consulta retorna uma tabela contendo um total de 88 linhas fora do original 332.

Replicando) Função do Excel E (


Embora seja verdade que você pode reduzir registros filtrando uma coluna por coluna da tabela, e se você só deseja marcar os registros em que
existe uma condição em várias colunas? Para isso, você precisa replicar função do Excel E ().
Capítulo 22 Avançado condicional Logic 199

O truque para isso é essencialmente o mesmo que o truque com replicar a função OR () com List.AnyTrue (), exceto que para E (), você
precisa usar a função List.AllTrue (). Esta função retorna um valor verdadeiro somente se
cada teste lógico fornecido retorna um valor verdadeiro, exatamente como o Excel da função AND (). Dê uma

olhada em como ele difere da função anterior:

• Ir para o painel a pasta de trabalho Consultas → botão direito do mouse pqOR → Duplicate

• Renomeie o nome da consulta pqAND

• Selecione o passo Adicionado Personalizado → clique no ícone de engrenagem (para editar a fórmula)

• Substitua List.AnyTrue com List.AllTrue

• Selecione as linhas filtradas passo

Como você pode ver, os resultados são bastante diferentes do que os resultados que obtém usando a função List.AnyTrue original ():

Figura 290 Usando a função List.AllTrue () para marcar registos com base em critérios de múltiplas colunas.

Enquanto este exemplo, obviamente, filtrado os dados com base nos resultados da saída da fórmula, a grande coisa sobre esta função é que você
pode facilmente marcar registros sem filtração em primeiro lugar. Isto permite-lhe mais flexibilidade na construção de uma lógica mais complicada e
ainda preservar seus dados, algo original que não pode ser feito se você filtrar colunas para perfurar os valores finais.

Replicando PROCV do Excel () função


Por mais que algumas pessoas tentam evitar PROCV (), é uma função extremamente útil para os profissionais do Excel. Aqueles que amam ele certamente vai
querer replicar sua funcionalidade em Power consulta em algum ponto. No entanto, dependendo de qual versão do PROCV () que você precisa, ele pode ser
bastante complicado para implementar.

VLOOKUP () utilizando uma correspondência exata

Na verdade, você não precisa fazer nada especial para emular correspondência exata do PROCV, já que esta funcionalidade pode ser replicado por
simplesmente fundir duas mesas juntos, conforme descrito no Capítulo 9.

VLOOKUP () Usando uma correspondência aproximada


Replicando PROCV () 's correspondência aproximada é um caso totalmente diferente do que o cenário correspondência exata. Ele requer alguma lógica para
emular essas etapas porque você não está tentando combinar registros uns contra os outros, mas na verdade tentando encontrar o registro mais próximo ao
nosso pedido sem ultrapassar. Enquanto você não vai criar a função a partir do zero aqui, você verá a função e como ele funciona.

Para começar, abra Exemplos CH22 \ Emulando VLOOKUP.xlsx. Neste arquivo você encontrará duas tabelas: BandingLevels e DataTable.
200 M é para (dados) do macaco

Figura 291 A tabela BandingLevels.

Figura 292 A tabela DataTable.

Se você analisar as funções em colunas B: D da tabela DataTable, você verá que eles contêm funções VLOOKUP (), como mostrado nos cabeçalhos
das colunas. Cada coluna é procurando-se o valor mostrado na coluna A, para que a linha de encontro a tabela de BandingLevels. As colunas B e D
estão retornando o valor de coluna 2 da tabela de BandingLevels, e a coluna C está a devolver o valor a partir da coluna Alt faixa da tabela de
BandingLevels. Além disso, observe que as colunas B e C estão retornando correspondências aproximadas porque o quarto parâmetro ou foi definido
como True ou omitido. Coluna D, no entanto, está pedindo uma correspondência exata (como o quarto parâmetro foi definido para False), resultando
em todos os registros de retorno # N / A exceto para o último um. Você deve configurar a função de consulta de energia que precisamos agora, e
então você vai ver como ele replica a versão de Excel de PROCV ():

• Usando o Windows Explorer, vá para CH22 Exemplos \ pqVLOOKUP.txt

• Abra o arquivo e copiar todo o conteúdo do arquivo

• Voltar para Excel

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Abra o editor do → selecionar todo o código na janela


• Cole o conteúdo do arquivo de texto (que substitui todo o código existente)

• Clique em Concluído

• Renomeie a função pqVLOOKUP

• Vá até Home → Close & Carga

Com a função de criado, você precisa de um ponteiro para a tabela de BandingLevels:


Capítulo 22 Avançado condicional Logic 201

• Selecione qualquer célula nos BandingLevels mesa → criar um novo → consulta Da Tabela

• Vá até Home → Close & Carga Para ... → Só Criar Conexão

Agora estamos prontos para ver como ele funciona. Puxe na DataTable, e remover todas as versões do Excel das funções.

• Selecione qualquer célula na tabela DataTable → criar um novo → consulta Da Tabela

• Direito do mouse na coluna Valores → Retirar outras colunas que estão

agora a uma única coluna de dados:

Figura 293 Pronto para experimentar a função pqVLOOKUP.

Para ver se a função pqVLOOKUP funciona para você, você pode tentar replicar a seguinte fórmula:

= PROCV ([Valores], BandingLevels, 2, verdadeiro)


Para fazer isso, você pode tomar as seguintes medidas:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nomeie a coluna 2, True

• Utilizar a seguinte fórmula:


= PqVLOOKUP ([Valores], BandingLevels, 2, verdadeiro)

Os resultados são idênticos ao que Excel mostraria:

Figura 294 replicar PROCV () com uma correspondência aproximada explicitamente definido.
202 M é para (dados) do macaco

Este parece ser bom. Agora tente sair da, verdade para fora da extremidade e voltando a terceira coluna da tabela de consulta em vez do segundo:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome da coluna 3, padrão

• Utilizar a seguinte fórmula:


= PqVLOOKUP ([Valores], BandingLevels, 3)
Os resultados são novamente idêntico ao que Excel mostraria:

Figura 295 replicar PROCV () com uma correspondência aproximada implícito.

Tente mais uma. E se você queria para definir uma correspondência exata contra a segunda coluna da tabela de lookup? Para fazer isso:

• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome da coluna 2, falsa

• Utilizar a seguinte fórmula:


= PqVLOOKUP ([Valores], BandingLevels, 2, falso)
Mais uma vez, os resultados são local com o Excel oferece:

Figura 296 Replicando PROCV () com uma correspondência exata.


Capítulo 22 Avançado condicional Logic 203

Mesmo que você pode usar essa função para emular PROCV () 's correspondência exata, você não deve. O filho rea- é que você pode realizar

um efeito correspondência exata fundindo tabelas juntos, um método que será muito mais rápido. Se você precisar a funcionalidade

correspondência aproximada, no entanto, este é um método viável. Finalizar a consulta:

• Vá até Home → Close & Carga

Neste ponto, você deve estar ciente de uma diferença menor entre PROCV do Excel () ea função pqVLOOKUP: o # N / A valor retornado por
pqVLOOKUP é realmente texto, não um verdadeiro erro, como você pode ver abaixo.

Figura 297 da pqVLOOKUP # N “erros” / A são realmente texto.

texto retornando é o mais perto que você pode chegar ao retornar de erro, como não há nenhuma maneira de saída de um verdadeiro # N / A erro no Poder Query.
204 M é para (dados) do macaco

Compreender a função pqVLOOKUP


Então como é que a função pqVLOOKUP trabalhar? Dê uma olhada no código:

(Valor_procurado como qualquer, table_array como mesa, col_index_number como número, approximate_match opcional,
lógico) como qualquer =>
deixei / * Fornecer jogo opcional se o usuário não * /

matchtype =
se approximate_match = null, em seguida,
verdadeiro
outra approximate_match, / * Obter nome da coluna de retorno *

/ Cols = Table.ColumnNames (table_array),

ColTable = Table.FromList (Cols, Splitter.SplitByNothing (), null


nulo, ExtraValues.Error),
ColName_match = Record.Field (ColTable {0}, "Coluna1"), ColName_return = Record.Field (ColTable
{col_index_number - 1},
"Coluna1"), / * Encontre mais

próxima partida * /
SortData = Table.Sort (table_array,
{{ColName_match, Order.Descending}}), RenameLookupCol =

Table.RenameColumns (SortData, {{ColName_match, "Lookup"}}), RemoveExcess =


Table.SelectRows (
RenameLookupCol, cada [de pesquisa] <= valor_procurado), ClosestMatch =

se Table.IsEmpty (RemoveExcess) = verdadeiro em seguida, "# N


/ A"
outra Record.Field (RemoveExcess {0}, "Lookup"), / * O que deve ser devolvido em caso de

correspondência aproximada? * / = ClosestReturn

se Table.IsEmpty (RemoveExcess) = verdadeiro em seguida, "# N


/ A"
outra Record.Field (RemoveExcess {0}, ColName_return), / * Modificar resultado se

precisamos de uma correspondência exata * / Return =

se matchtype = true, em seguida, ClosestReturn outra se

valor_procurado = ClosestMatch

em seguida, ClosestReturn mais


"# N / A"
em troca
O código é bastante longo e complexo, e usa uma variedade de truques, mas a metodologia básica é esta:

1. Pull na tabela de dados.

2. Ordenar que desce pela primeira coluna.

3. Remova todos os registros maiores do que o valor que está sendo procurado.

4. Volte a colocar o valor na coluna solicitada para o primeiro registro restantes a menos que uma correspondência exata foi

Especificadas.
Capítulo 22 Avançado condicional Logic 205

5. Se uma correspondência exata foi especificado, teste para ver se o retorno é um jogo. Se for, retornar o valor. Se não for, o retorno # N / A.

Observe o seguinte no código:

• Cada uma das variáveis ​nos parâmetros tem um tipo de dados explicitamente declarado. Isto é para evitar que o utilizador de fornecimento
acidentalmente uma tabela onde é necessário um número de coluna numérico.

• o approximate_match variável é definida como opcional, ou seja, o usuário pode ignorá-lo.

• o matchtype testes variáveis ​para ver se um tipo de correspondência foi especificado. Se um tipo de correspondência foi especificado, é atribuído
ao matchtype variável, mas se não ( approximate_match é nula), um valor de verdade será atribuído.

• O nome da coluna a ser devolvido é puxado através da revisão dos cabeçalhos da coluna da tabela, dividindo-os em uma lista de
registos, e puxa para fora a ficha cujo índice corresponde a coluna solicitada (menos 1 para ajustar a base de 0).

• Os dados são classificados em ordem decrescente, com base na coluna a ser pesquisada. Todos os registros maiores do que o valor
solicitado são removidos (selecionando todas as linhas onde o valor é menor ou igual ao valor que está sendo procurado).

• Se nenhuma linha permanecem, um # N / A resultado é então armazenado, mas se houver linhas, o primeiro registro na coluna de pesquisa é
armazenado. Este resultado pode depois ser verificadas para ver se ele corresponde ao registro que está sendo procurado (que é importante para o
cenário de correspondência exata).

• O valor correspondência aproximada é então ( sempre) calculadas, mesmo se uma correspondência exata foi solicitado. Se não há linhas estão
presentes no conjunto de dados, um # N / D resultado é armazenado; caso contrário, o valor mais próximo é puxado a partir da coluna de retorno.

• O teste final verifica o tipo de jogo solicitado. Se for uma correspondência aproximada, em seguida, a correspondência mais próxima é sempre
devolvido (que pode ser # N / A). Se, no entanto, o tipo de correspondência era uma correspondência exata, o código retornará # N / A, em vez da
correspondência mais próxima a menos que o valor da coluna de pesquisa correspondeu ao valor que está sendo procurado exatamente.

Deve ir sem dizer que esta não é uma função que você vai bater para fora em poucos minutos. É longo e com- plicado, e levou várias horas de
desenvolvimento e depuração, a fim de obtê-lo correto. É, no entanto, uma função bastante robusto na forma como ele funciona, e ele mostra
como construir funções complexas usando Poder Query.

Função de comutação de potência Pivot () replicando


Poder Pivot tem uma função chamada SWITCH () que lhe permite executar a lógica de multi-condição, declarando uma tabela de valores de índice e os
resultados e, em seguida, passando um valor de índice variável. A função, em seguida, olha para cima o valor do índice fornecido e retorna o resultado
correspondente. Isto é mais fácil de manter do que vários níveis de instruções aninhadas IF (), por isso às vezes faz sentido para replicar a função
SWITCH () em Power Query. A sintaxe para esta função em Power Pivot é a seguinte:

= SWITCH (expressão, value_1, result_1, [value_2, result_2], ..., [Else])


Um exemplo de onde isso pode ser realmente útil é quando quebrar padrões codificados como códigos de faturamento do cliente, onde cada
personagem representa algo específico. Tome um código como o MP010450SP, onde o personagem nono poderia ser um dos seguintes
procedimentos:

E = empregado, S = Iate Clube, N = não seja sujeito passivo, R = Restrito, I = inactivo, L = social, M =
médica, L = regular
Para quebrar este apart em Excel, você poderia construir uma função com muitos aninhados instruções IF e construir uma PROCV () com base nas
opções de letra. Em Power Pivot, porém, é muito mais fácil com a função switch (), como segue:

= INTERRUPTOR ([Coluna], "E", "funcionário", "S", "iate Club", "N", "não sujeito
passivo", "R", "Restrito", "I", "Inactiva", "L", "social", "M", "Médico", "U", "regular",
"Undefined")

Existem várias maneiras de conseguir este objetivo. Você poderia, por exemplo, extrair apenas a nona letra e mesclar os
resultados contra uma mesa. O objetivo desta seção é dar-lhe ainda uma outra alternativa.
206 M é para (dados) do macaco

Construindo um interruptor de alimentação de consulta () função

Construir a função não é muito difícil uma vez que você sabe a estrutura básica. Veja como você a começar:

• Abertas Exemplos CH22 \ Emulando SWITCH.xlsx

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Nomeie o fnSWITCH consulta

• Vá até Home → Editor Avançado

• Introduzir o código M mostrado abaixo:

(Entrada) => deixe =

{valores
{Result_1, return_value_1}, {entrada,
"Undefined"}},

Resultado = List.First (List.Select (valores, cada _ {0} = entrada)) {1} em Resultado

Este código é a estrutura básica para qualquer função SWITCH (). Estas são as peças-chave para reconhecer aqui:

• result_1 é a primeira das possibilidades que você pode passar para a função

• r eturn_value_1 é o valor que você gostaria de voltar se o primeiro valor é result_1

• Se você precisar de mais valores, basta inserir outra vírgula após o { result_1, return_value_1} seção e colocar em um { result_2,
return_value_2} seção

• Você pode continuar a adicionar quantos valores que você precisa

• O valor de entrada na lista irá retornar o texto Indefinido se o valor que você passa não está na sua lista fornecida de opções (é a
parte Else da instrução switch ()) Utilizando esta estrutura, você pode modificar a função fnSWITCH para o cenário da seguinte forma:

(Entrada) =>
deixei

= {valores
{ "E", "funcionário"}, { "S", "SCYC"},
{ "N", "não sujeito passivo"}, { "R",
"Restrito"}, { "I", "Inactiva" }, { "L",
"social"}, { "M", "Médico"}, { "U",
"regular"}, {entrada, "Undefined"}},

Resultado = List.First (List.Select (valores, cada _ {0} = entrada)) {1} em Resultado

As alterações feitas aqui foram simplesmente para substituir value_1 com “E” e return_value_1 com "Empregado"
e, em seguida, adicionar mais pares lista de possíveis entradas e valores desejados para retornar. Note-se que você não está restrict- ed para olhando para

cima caracteres simples. Você pode procurar valores ou sequências de texto maiores com a mesma facilidade; apenas certifique-se de que suas opções são

sempre entrou em pares entre chaves e ter uma vírgula no final da linha. Quando você terminar de fazer as modificações:

• Clique em Concluído

• Ir para Home -> Close & Carga


Capítulo 22 Avançado condicional Logic 207

Usando a função fnSWITCH


Agora que a função fnSWITCH () foi criado, você pode usá-lo para extrair o tipo de facturação de cada registro de cliente neste arquivo.

• Selecione qualquer célula na tabela sobre os clientes planilha → criar uma nova consulta → da tabela de cargas de dados em poder de

consulta da seguinte maneira:

Figura 298 A tabela de dados em bruto.

A função fnSWITCH () é projetado para converter o carácter nono do BillingCode na correspon- tipo de cliente ing. A fim de
usá-lo, você precisa extrair esse personagem:
• Ir para Adicionar Coluna → Adicionar coluna personalizada

• Nome da coluna Tipo de cliente


• Insira a seguinte fórmula:
= FnSWITCH (Text.Range ([BillingCode], 8,1))

Lembre-se que você precisa para começar em caracteres de 8 a fim de obter o personagem nono porque o poder de consulta usa a base 0

indexação para este parâmetro da função Text.Range, como mostrado no capítulo 17. Os resultados são perfeitos:

Figura 299 os resultados da função fnSWITCH.

Você verá que todos os códigos de amostra nos dados funcionar muito bem e que nada vem de volta como indefinido. Siga estes passos para ver
como a consulta reage a diferentes itens:

• Alterar o nome consulta para Billing

• Vá até Home → Close & Carga

• Alterar o segundo ao último carta de qualquer código de faturamento para outra coisa
208 M é para (dados) do macaco

Quando você atualizar a tabela, ele avalia o novo personagem e retorna o resultado apropriado. Aqui você pode ver o que acontece quando o código de
faturamento do primeiro registro é atualizado para MP010450 X P:

Figura 300 X não é um carácter válido para o código de faturamento.

Note que a função como escrito acima é maiúsculas e minúsculas, o que significa que o código MP010450 você P também retornar indefinido,
embora MP010450 você P é um código válido. No caso da fonte original dos dados, este foi totalmente esperado porque códigos válidos são
compostas de letras maiúsculas.

Se você quisesse aceitar maiúsculas ou minúsculas, você precisará modificar a consulta Faturamento (não a função) e forçar os
resultados da função Text.Range para maiúsculas:

• Botão direito do mouse a consulta Faturamento no Workboook Consultas painel → Editar

• Selecione o passo Adicionado Personalizado → clique no ícone de engrenagem

• Atualizar a fórmula para ler:


= FnSWITCH ( Text.Upper ( Text.Range ([BillingCode], 8,1)))
• Clique OK

• Vá até Home → Close & Carga

Como você pode ver abaixo, este ajuste permite que você passe valores minúsculas para a função e ainda obter um resultado positivo:

Figura 301 O tipo de cliente é calculado de forma consistente para letras maiúsculas e minúsculas.
Capítulo 23 Tabelas Dinâmica de Parâmetros 209

Capítulo 23 Tabelas Dinâmica de Parâmetros


No capítulo 21 nós exploramos como funções personalizadas podem ser usados ​para dados pré-processar define antes da fusão. Enquanto este é um benefício
fantástico de funções personalizadas, está longe de ser o único.

Considere o exemplo no último capítulo, de puxar planilhas de uma pasta. Digamos que você construiu o arquivo consolidação mestre, ele foi salvo em H: \
Payroll, e para meses foram armazenar a tabela de tempos na subpasta H: \ folha de pagamento \ Timesheets. Depois de trabalhar duro durante todo o ano,
você finalmente obter algumas semanas de folga e tem que passar o ção solu- para outra pessoa para manter enquanto você estiver fora. Há um problema,
porém: O seu sistema tem o caminho para sua solução mapeada como J: \ HR \ Payroll. Ao invés de recodificar a solução para a sua substituição e depois ter
de recodificar-lo novamente quando você voltar, você realmente gostaria de fazer o caminho relativo para onde a pasta de trabalho está localizado. Dessa
forma, se o usuário abre-se a partir de J: \ HR \ Payroll ou H: \ Payroll ou qualquer outra coisa, ele não deve fazer a diferença.

O verdadeiro desafio? Não há atualmente nenhuma função na língua M que lhe permite trabalhar fora do caminho para a pasta de trabalho que você está usando.
Curiosamente, uma fórmula de Excel pode fazer este trabalho.

Antes de embarcar na viagem de fazer o caminho de arquivo dinâmico, há algo que você deve saber sobre esta técnica: consultas
onde o acesso de dados acontece dentro de uma função e onde a fonte de dados é dependente de parâmetros para a função
atualmente não podem ser atualizados em poder BI. Isso ocorre porque Microsoft realiza a análise estática da consulta para
descobrir a fonte de dados e da análise estática ainda não pode lidar com esse cenário.

Isso não significa que a funcionalidade não é útil, e isso não significa que não será apoiado um dia. Significa simplesmente que você
deve contar com ele somente se a solução vai viver na área de trabalho do Excel e não na web.

Implementar Tabelas Dinâmica de Parâmetros


Existem três etapas para implementar as tabelas de parâmetros para a sua solução:

1. Criar uma tabela de parâmetro no Excel.

2. Criar a função para extrair os valores da tabela.


3. Retrofit suas consultas existentes para chamar a função.

Vamos percorrer cada etapa deste processo usando as Ch 23 Exemplos \ arquivo Parâmetro Tables.xlsx. Ao abrir este arquivo, você vai reconhecer
que é uma continuação do arquivo Timesheets que você construiu ao longo de um par de capítulos. O desafio com este arquivo é que atualmente os
caminhos estão todos codificado para o seu PC, (o autor de, no caso do arquivo de exemplo,) e agora você gostaria de entregar a solução para que
ele funciona, não importa onde você armazená-lo .
210 M é para (dados) do macaco

Passo 1: Criação de uma tabela de parâmetros


A primeira coisa que você precisa fazer é criar uma tabela para armazenar seus parâmetros. Esta tabela deve assumir uma forma específica, e ele precisa ter

certos componentes configurado corretamente. Criar a tabela mostrada abaixo na célula A7: B8 da planilha Info:

Figura 302 A tabela de parâmetros barebones.

Observe várias características-chave desta tabela:

• O primeiro cabeçalho da coluna é a seguinte: Parâmetro

• cabeçalho da segunda coluna é: Valor

• A tabela tem um nome de: parâmetros

Cada uma destas características deve ser correta se você quiser copiar e colar uma função que você foi fornecido nos arquivos de
download. Se até mesmo um desses itens é escrito de forma diferente, você vai precisar para depurar a mesa ou a função.

A tabela está agora configurado para manter cada pedaço de dados que você deseja usar como uma variável dinâmica em sua solução. Basta
fornecer o nome do parâmetro à esquerda e o valor para o parâmetro na coluna Valores.

Os itens na coluna Valores pode ser codificado texto ou valores, eles podem ser conduzidos por listas de validação de dados, ou eles
podem usar fórmulas. Como você obter o valor correto na célula é completamente até você como o designer solução.

Em seguida, você precisa determinar o caminho do arquivo para a pasta de trabalho atual. Introduza a fórmula abaixo em célula B8:

= ESQUERDA (CELL ( "nome do arquivo", A1), FIND ( "[", CELL ( "nome", A1), 1) -1)

Se você não salvou o arquivo, esta função não irá retornar o caminho, porque não pode determinar onde a pasta de trabalho vive. Salvar o arquivo
irá corrigir esse problema para você.

Ao fazê-lo, você deve ver o caminho do arquivo para a pasta de trabalho listados. O único desafio é que você realmente quer este caminho de arquivo para apontar
para a pasta de arquivos de origem, que é onde os quadros de horários são armazenados. Actualizar a fórmula apresentada abaixo:

= ESQUERDA (CELL ( "nome do arquivo", A1), FIND ( "[", CELL ( "nome", A1), 1) -1) & "Fonte Files \"

Figura 303 dinamicamente retornar o caminho do arquivo usando uma fórmula de Excel.
Capítulo 23 Tabelas Dinâmica de Parâmetros 211

Passo 2: implementar a função fnGetParameter


Com a tabela de parâmetro agora em um estado que pode armazenar qualquer variável que você precisa, você precisa dar Poder consulta um método para ler
esses valores. Esta parte pode ser feito usando a seguinte função personalizada:

(ParameterName como texto) => deixe ParamSource =

Excel.CurrentWorkbook ()
{[Name = "Parâmetros"]} [conteúdo], ParamRow =
Table.SelectRows (ParamSource,
cada ([Parâmetro] = ParameterName)), Valor =

se Table.IsEmpty (ParamRow) = true então nula

outra Record.Field (ParamRow {0}, "Valor") em Valor

Esta função está contido no arquivo fnGetParameter.txt na pasta Exemplos CH23. Além do código, ele também contém
instruções para utilizar a função, assim como a fórmula para retornar o caminho do arquivo a partir de uma célula. O arquivo é
fornecido para lhe dar um modelo que você pode armazenar e utilizar várias vezes. Este código se conecta a tabela Parâmetros
na pasta de trabalho e, em seguida, seleciona a linha da tabela onde o valor do parâmetro dinâmico corresponde ao registro na
coluna Parâmetro da tabela de Excel. Com esse jogo no lugar, em seguida, retorna o que ele encontra na coluna Valor. É porque
cada um desses nomes é codificado na função que tanto a tabela e nomes de coluna para o jogo tabela do Excel que foi
especificado acima. Em vez de digitar novamente todo este bloco de código, abra o Exemplos \ arquivo fnGetParameter.txt CH23
e copiar todas as linhas dentro do arquivo.

• Criar um novo → consulta De Outras Fontes → A partir de consulta em branco

• Vá até Home → Editor Avançado

• Destaque todas as linhas de código na janela

• Pressione Ctrl + V para colar o conteúdo do arquivo de texto

• Clique em Concluído

• Mudar o nome da função para fnGetParameter E você está

feito.
212 M é para (dados) do macaco

Passo 3: chamar a função fnGetParameter


Com tabela de parâmetros construído, e a função no lugar, o último passo é adaptar a consulta existente para ac- tualmente usá-lo. Isso permitirá que
você a fonte o caminho do arquivo a partir da célula e usar isso em sua consulta. Porque o caminho do arquivo atualiza quando o livro é recalculado,
que serão sempre exatas, o que significa que a solução vai sempre olhar para os arquivos de quadro de horários no subdiretório de onde a solução
reside. Para equipar a consulta Timesheets, você não precisa nem sair do editor de Energia Consulta. Você pode simplesmente clicar na pequena seta
no lado da palavra Consultas esquerda para expandir a janela Navigator:

Figura 304 Expansão da janela Navigator.

O Navigator permite que você selecione qualquer de suas consultas ou funções, de modo que você pode rapidamente virar para trás e para frente, fazer alterações
e testar os efeitos que eles têm sobre outras consultas. Aqui está o que você faz agora:

• Botão direito do mouse a consulta Timesheets → Editor Avançado

• Insira a seguinte linha de código imediatamente após a linha let:

fullfilepath = fnGetParameter ( "Caminho do arquivo"),


A consulta agora deve ter esta aparência:

Figura 305 Chamar a função fnGetParameter.

Você criou uma nova variável chamada fullfilepath para manter o valor da linha Caminho do arquivo da tabela de Excel. Também vale a pena notar aqui que não

são estritamente necessárias para criar uma nova variável, a fim de utilizar o nosso ção fun-. Você poderia pule esta etapa e apenas ninho a chamada

fnGetParameter no lugar do caminho do arquivo na próxima linha. Ao adicionar esta chamada em uma linha separada, no entanto, você fazer a consulta muito

mais fácil de depurar, como você verá agora:

• Clique em Concluído

• Selecione o passo fullfilepath na caixa de Passos Aplicadas

O caminho do arquivo completo para a pasta é exibido bem no editor, dando-lhe o conforto que você tem que peça correta:
Capítulo 23 Tabelas Dinâmica de Parâmetros 213

Figura 306 A variável fullfilepath está correctamente puxando o caminho de arquivo.

Agora que você sabe que a função está retornando o caminho correto através da fórmula do Excel, você pode corrigir a variável no lugar do
caminho do arquivo codificado na etapa Fonte:

• Vá até Home → Editor Avançado

• Localize o caminho do arquivo na linha de Fonte

• Selecione todo o caminho do arquivo (incluindo as aspas) e substituí-lo por fullfilepath

As três primeiras linhas da consulta deve ter a seguinte redacção:

deixei fullfilepath = fnGetParameter ( "Caminho do arquivo"),

Fonte = Folder.Files (fullfilepath),

Você deve editar o código M manualmente para fazer este trabalho. Ele não pode ser feito clicando no ícone de engrenagem próximo ao step

Fonte, como fullfilepath não é uma pasta válida para o sistema operacional Windows. Quando você tiver feito as modificações, você pode clicar feito,

e você verá que cada passo da consulta ainda funciona corretamente.

Figura 307 A consulta adaptados ainda funciona.


214 M é para (dados) do macaco

Implicações de Tabelas de Parâmetros


Fazendo referência a uma tabela de parâmetros nos dá uma enorme quantidade de flexibilidade na construção de soluções. Se você está construindo soluções
internamente na sua empresa e precisa compartilhá-los com membros da equipe ou outras divisões, agora você pode configurá-los para ler a partir de estruturas de
pastas dinâmicas relativas ao seu caminho de solução. Se você desenvolver soluções para os clientes, isso também é extremamente impactante, pois é duvidoso
que você jamais vai ter exatamente a mesma estrutura arquivo em seu sistema como o seu cliente faz. A última coisa que você quer fazer em qualquer uma destas
situações é enviar ao usuário final um arquivo com instruções sobre como editar o código M.

Mas o poder de tabelas de parâmetros não termina aí. Considere cada uma das seguintes tarefas que você pode desejar para executar:

• Construir uma tabela de calendário com base nas datas em células em uma planilha do Excel

• Dirigir um filtro para uma tabela com base no valor em uma célula do Excel

• Determinar qual das quatro tabelas do Excel para carregar em uma solução

Ao configurar e utilizar uma função personalizada para ler a partir de uma tabela do Excel, podemos realizar qualquer um desses objetivos. Isso nos oferece não
apenas a capacidade de conduzir de forma dinâmica o nosso conteúdo, mas também nos dá a capacidade de gerar dados em um ambiente mais familiar para nós,
e em alguns casos, fazer as coisas que Power consulta não seria caso contrário nos permitem fazer.

Mais uma vez, precisamos chamar a ressalva de que se você estiver publicando ao Poder BI, esta solução não vai funcionar para você, como Poder BI
não suporta atualmente gerando dinamicamente caminhos para bancos de dados e outros. Se você estiver desenvolvendo o seu conteúdo em um
ambiente de trabalho Excel, no entanto, você vai achar que este é uma das técnicas mais úteis neste livro.
Capítulo 24 Tabelas Calendário dinâmicos 215

Capítulo 24 Tabelas Calendário dinâmicos


Ao trabalhar com Power Pivot no Excel 2010 e 2013, você precisa fornecer sua própria mesa de calendário para as modelos. Isto é realmente fácil em
organizações com um departamento de TI cooperativa que publica um calendário para os usuários.

Se você não mora em uma organização como essa, no entanto, as coisas são mais difíceis. Você pode chegar a fontes da web, mas aqueles não funcionam
quando você está mexendo com o seu modelo enquanto está sentado em um avião ou no caminho para visitar suas operações naquela mina na África.
Você também pode construir o seu calendário em uma tabela do Excel, mas isso leva a desafios quando os dados mantém em expansão, como a tabela de
data não expandir automaticamente para você. Para os usuários, o Query Poder veio para o resgate. Como você verá, é super fácil de configurar um
calendário totalmente dinâmico no Excel usando o poder de consulta. E construir sobre as técnicas do Capítulo 23, você pode dirigir a coisa toda com base
no valor em algumas células do Excel.

Criando uma tabela de calendário dinâmico


Criar um calendário dinâmico completo para a sua solução requer um total de quatro etapas:

1. Adicione uma tabela de parâmetros para manter os limites de calendário.

2. Implementar a função fnGetParameter para recuperar os limites.


3. Construir a estrutura básica do calendário dinâmico.

4. Adicione as colunas de calendário necessários.

Com base nos métodos explorados no Capítulo 23, neste capítulo, você verá que este processo é realmente muito rápido de configurar.

Passo 1: Adição de uma tabela de parâmetros


Para este exemplo, você vai começar a partir de uma pasta de trabalho completamente em branco, embora você poderia facilmente adaptar isso em um modelo

existente também. Se acontecer de você já ter uma tabela de parâmetros na sua solução, você pode simplesmente adicionar novos campos a ele. Se não, você vai

ter que construir a tabela a partir do zero. Lembre-se das peças-chave aqui como você construir a sua tabela:

• A tabela deve ser chamado Parâmetros

• Deve haver uma coluna Parâmetro e uma coluna Valor Você deve

construir a tabela para manter as datas de início e fim:

• Data de início 1/1/2014


• Data final = FIMMÊS (HOJE (), 0)

Quando a instalação estiver concluída, a tabela vai olhar como mostrado abaixo:

Figura 308 A tabela de parâmetros.

A função FIMMÊS () tem a seguinte sintaxe:


216 M é para (dados) do macaco

= FIMMÊS ( start_date, meses)


Se você usar 0 para o meses parâmetro, a função irá retornar o último dia do mês dado. Se você fornecer -1, será o fim do mês
anterior, e se você usar um valor positivo de 3, a função vai lhe dar o final do mês 3 meses após a data prevista. Esta função é
muito útil quando se conduz sua mesa calendário.

Passo 2: implementar a função fnGetParameter


Uma vez que a tabela é construída, você pode criar a função fnGetParameter:

• Abra a Exemplos \ arquivo fnGetParameter.txt CH24

• Copie todo o conteúdo do arquivo de texto

• Criar um novo → consulta De Outras Fontes → consulta em branco

• Vá até Home → Editor Avançado

• Realce todo o código na janela → Ctrl + V → Concluído

• Renomeie o fnGetParameter consulta

A função fnGetParameter agora está instalado, bem como, pronto para ser usado:

Figura 309 A função fnGetParameter está pronto para ir.

Passo 3: Construindo a estrutura Calendário Básico


Com o terreno rapidamente posto, agora você pode obter para a verdadeira tarefa em mãos: a construção do calendário. Ao invés de sair do editor de Poder
Query, você pode criar uma nova consulta direita dentro dele:

• Ir para Home → nova fonte → Outras Fontes → consulta em branco

• Renomeie o Calendário consulta

Você tem agora uma nova consulta com nada nele em tudo:

Figura 310 Iniciando o calendário de uma folha em branco.

Uma maneira mais fácil para começar a construir o calendário, acredite ou não, é começar a partir de uma lista simples. Clique dentro da barra de fórmulas e
insira a seguinte fórmula:

= {} 1..10
Isso cria uma lista de um a dez:
Capítulo 24 Tabelas Calendário dinâmicos 217

Figura 311 Agora você tem uma lista simples.

Em seguida, converter essa lista em uma mesa e ver o que acontece se você mudar a coluna resultante em datas:

• Ir para a lista de Ferramentas → Transformar → Para Tabela

• Deixe as opções padrão e clique em OK

• Botão direito do mouse Column1 → Alterar tipo → Data

• Botão direito do mouse Coluna 1 → Rename → Data

Embora não seja exatamente o intervalo de datas que você está depois, você começa realmente o início de uma tabela de calendário:

Figura 312 É uma tabela de calendário, mas um pouco fora da data!

Mesmo que isso não significa necessariamente parecido com ele, você está em boa forma aqui. Lembre-se que a tabela de parâmetro de
configurar? E se você inseriu um par de passos no início desta consulta para extrair as datas de início e término e tentou alimentar aqueles na
lista em vez de usar 1 a 10? Tente:

• Vá até Home → Editor Avançado

• Imediatamente após a linha let, adicione as seguintes duas linhas de código M:

startdate = fnGetParameter ( "Data de Início"), enddate =


fnGetParameter ( "Data Final"),
• Clique em Concluído

Neste ponto, é uma boa idéia para apenas verificar ambas as etapas e verifique se eles estão realmente voltando a data que você está esperando-los a
voltar.

Figura 313 startdate está retornando uma data como o esperado.


218 M é para (dados) do macaco

Com as variáveis ​agora segurando as datas de início e fim, você pode sub-las na linha Fonte, substituindo o 1 e 10 você colocar em como espaços
reservados anteriores:

• Selecione a etapa Fonte

• Editar a fórmula na fórmula barra para ler como mostrado abaixo:

= {} Startdate..enddate
• pressione Enter

Infelizmente, as coisas vão para os lados:

Figura 314 O que no mundo que isso significa?

Esta mensagem de erro não é muito clara. Melhor formulação poderia indicar que a energia de consulta não pode usar o .. operador a menos que tenha os
números de cada lado. Você forneceu datas, não números. E enquanto você sabe que as datas são apenas números de qualquer maneira, poder de consulta
não é tão indulgente.

Este não é um show-rolha por qualquer meio. Significa apenas que você precisa converter essas datas em seus números de série de data. Uma vez que eles
são valores, Poder consulta será capaz de trabalhar com eles. Aqui está o que você faz:

• Vá até Home → Editor Avançado

• Substituir as linhas StartDate e enddate com o seguinte:


startdate = Number.From (fnGetParameter ( "Data de Início")), enddate = Number.From
(fnGetParameter ( "Data Final")),
• Clique em Concluído

• Selecione o passo startdate

data de início agora é convertido em número de série da data, 41640. Se você pisar até o fim da consulta, você pode ver que agora você tem um
calendário de trabalho que vai de 01 de janeiro de 2014, até a data do término fornecido pelo seu tabela do Excel:

Figura 315 A tabela Calendar está pronto para uso.

Passo 4: Adicionando Necessários Calendário Colunas


Com a tabela Calendário configurar e cobrindo o intervalo de datas, agora é hora de adicionar as colunas necessárias para isso. Isso é realmente muito
fácil:

• Selecione a coluna Data → Adicionar Coluna → Data → ano → Ano

• Selecione a coluna Data → Adicionar Coluna → Data → mês → Mês


Capítulo 24 Tabelas Calendário dinâmicos 219

• Selecione a coluna Data → Adicionar Coluna → Data → Dia → Dia Como você pode ver, a

tabela de Calendário está realmente começando a tomar forma:

Figura 316 Construir as colunas necessárias na tabela de Calendário.

Poder consulta tem uma variedade de formatos que são muito fáceis para adicionar à mesa. No entanto, há também alguns formatos que não existem.

Data funções de consulta de energia


Muitas das funções de data do Poder de consulta são diferentes dos Excel's-alguns sutilmente e outros não tão sutilmente. Portanto, as páginas
seguintes dar-lhe os meios para trabalhar facilmente em poder de consulta que você já sabe como fazer no Excel.

Data funções do Excel


Excel tem uma variedade de funções de data que podem ser de grande benefício ao construir os parâmetros da tabela para conduzir o seu calendário. Cada um

deles é explicitamente para uso em Excel (não poder consulta) e pode ser usado para conduzir iniciar ou datas de término para dar-se um intervalo que tem como

escopo bem às suas necessidades. Para retornar

Fórmula

A data atual HOJE()


Final do mês atual FIMMÊS (HOJE (), 0)
Final do mês passado EOMONTH (TODAY (), - 1)

Final do próximo mês FIMMÊS (HOJE (), 1)


Final do ano em curso FIMMÊS (HOJE (), 12 meses (HOJE ()))
Final do ano para a data em B25 FIMMÊS (B25,12 MESES (B25))

Equivalentes data Função: Extraindo Data Parts


Como Excel, Power consulta também tem funções especificamente orientadas para retornar partes de datas ou datas compensação. Algumas conversões-chave

que você vai querer saber são listados aqui: Formula Excel

Poder Query versão


DIA ([Date]) Date.Day ([Date])

MÊS ([Date]) Date.Month ([Date])

ANO ([Date]) Date.Year ([Date])

WEEKNUM ([Date]) Date.WeekOfYear ([Date])

WEEKDAY ([Date]) Date.DayOfWeek ([Date])

EOMONTH ([Data], 0) Date.EndOfMonth ([Date])

EOMONTH ([Data], - 1) +1 Date.StartOfMonth ([Date])


220 M é para (dados) do macaco

Equivalentes data Função: adicionando datas


Você é susceptível de ser frustrado se você tentar tomar uma data ou hora válida e apenas adicionar um valor a ela, a fim de in- Crement-lo. Mesmo que você

saiba que todas as datas são baseadas em um número de série de data, Poder consulta não pode converter implicitamente o tipo de dados como lata Excel.

Por esta razão, há uma coleção de funções Date.Addx para usar para essa finalidade: Adicionando x

Fórmula Excel Poder Query versão


Dias [Data] + x Date.AddDays ([data], x)

meses EDATE ([Data], x) Date.AddMonths ([data], x)

Anos EDATE ([Data], 12 * x) Date.AddYears ([data], x)

semanas [Data] + 7 * X Date.AddWeeks ([Data], x)])

Equivalentes data Função: Retornando Texto Datas


Para converter e voltar datas em um formato textual, você usaria a função TEXT () no Excel. Em Poder Query, as funções equivalentes são
fornecidos por Date.ToText (), mas eles têm uma ruga adicional: Não é apenas a função caso sensível, mas assim que são os parâmetros.
Para retornar
Fórmula Excel Poder Query versão
dom Texto ([Data], "ddd") Date.ToText ([Data], "ddd")

domingo Texto ([Data], "dddd") Date.ToText ([Data], "dddd")

agosto Texto ([Data], "mmm") Date.ToText ([Data], "MMM")

agosto Texto ([Data], "mmmm") Date.ToText ([Data], "MMMM")

09 de agosto de 2015 Texto ([Data], "mmm d, aaaa") Date.ToText ([Data], "MMM d, aaaa")

9 de agosto de 2015 Texto ([Data], "mmm dd, aaaa") Date.ToText ([Data], "MMM dd, aaaa")

Lidar com Erros data de conversão


Muitas das funções listadas acima requerem um encontro ou data hora tipo de dados como uma entrada e retorna um erro se um tipo alternativo de dados é
fornecido. Para se proteger contra esta situação, você pode envolver o [Data] entrada de coluna com a função Date.From como mostrado aqui:

= Date.AddDays (Date.From ([DateColumn]), 1)


Capítulo 25 Organização consulta 221

Capítulo 25 Organização consulta


Com todo o trabalho que você fez aprender Poder Query, você não esperaria que, de repente, ser atingido por um erro ao tentar mesclar duas
tabelas. Infelizmente, esta é uma possibilidade real se as tabelas vêm de duas fontes de dados diferentes.

O erro Formula.Firewall
Uma das coisas que você não tenha visto até agora neste livro é o erro Formula.Firewall temida, mas pode ser um choque quando ela bate em você. E,
embora existam estratégias para evitá-lo, é melhor se você sabe de antemão o que faz com que esta mensagem de erro desagradável para aparecer.

Acionando o erro Formula.Firewall


No exemplo do quadro de horários que foi usado por vários capítulos, lembre-se que você construiu uma solução bastante robusta. O arquivo de solução é
salvo em um local específico, e os arquivos de dados são armazenados na subpasta Arquivos de origem, que paira fora do diretório da solução. Você
reaproveitado código para importar um único quadro de horários, transformando-o em uma função e aproveitando-a para pré-processar todos os arquivos no
diretório de arquivos de origem para que você pode combiná-los depois. As terras de dados muito bem em uma planilha do Excel (ou o Modelo de Dados Pivot
poder se estivesse inclinado a empurrá-lo lá). O que poderia dar errado?

A mudança do escopo. Isso é o que. Suponha que seu gerente lhe diz que ele quer que o departamento para cada ployee em- fundiu-se com o conjunto
de dados.

Você tem os registros de funcionários armazenados em outro arquivo do Excel com o nome eo departamento de cada funcionário. Você sabe que pode importar
arquivos do Excel, e você sabe como mesclar conjuntos de dados em conjunto. Quão difícil isso pode ser? Experimente para ver:

• Abertas Exemplos CH25 \ Consulta Organization.xlsx

• Criar um novo → consulta De → Arquivo do livro do Excel

• Navegar para CH25 Exemplos \ Departments.xlsx

• Selecione a tabela EmployeeDepts

Figura 317 importar tabela EmployeeDepts.

Esta tabela parece muito bom. Na verdade, parece tão bom, você tentar apenas carregá-lo para uma conexão imediatamente, como ele realmente não necessita de
qualquer modificação em tudo:

• Clique na seta na carga opção → Carga Para ... → Só Criar Conexão Você obter um bom consulta novas EmployeeDepts em seu

painel de pasta de trabalho Consultas, e todos é bom olhar tão longe.


222 M é para (dados) do macaco

Agora mesclar essas tabelas em conjunto:

• Direito do mouse no Timesheets consulta → Editar

• Vá até Home → Mesclar Queries

• Optar por mesclar tabela de EmployeeDepts

• Selecione a coluna Employee em cada mesa

Figura 318 As coisas estão olhando positiva até agora.

Estranhamente, Poder consulta é incapaz de determinar quantas linhas irá corresponder:

Figura 319 Porque é poder consulta tendo problemas de harmonização?

Não importa isso. Clique em OK e esperar o melhor. E estrondo, você começa a temida Formula.Firewall mensagem:

Figura 320 A temida Formula.Firewall eleva sua cabeça feia.

Esta mensagem é um pouco intimidante. Em Inglês, o que ele está tentando dizer é que você se conectou dois com- pletamente conjuntos de dados diferentes
usando a mesma consulta. Não importa se você está trabalhando com duas mesas de uma mesma pasta de trabalho; eles são vistos como dois conjuntos de
dados, e não poder consulta não como este.

Evitando o erro Formula.Firewall


Assim como você corrigir esse problema? Você evitar o problema, e aqui está como:

• Excluir o passo consultas Incorporada

• Feche o editor do Poder consulta

• Ir para o painel a pasta de trabalho Consultas → clique com o botão direito do Timesheets consulta → Carga Para ...

• Mudar o comportamento de carga da consulta para criar apenas Connection

• Confirme se você está bem com Excel remover a mesa


Capítulo 25 Organização consulta 223

Agora você tem um ponteiro só de conexão configurado para ambos os dados planilhas e os dados EmployeeDepts. Criar uma nova consulta para
fundi-los:

• Direito do mouse no Timesheets consulta → Mesclar

• Escolha a tabela EmployeeDepts

• Selecione a coluna Employee em ambas as tabelas Observe que

desta vez Poder consulta identifica os jogos:

Figura 321 Isso é muito mais promissor.

Com as fusões aparentemente vai acontecer, você pode continuar:

• Clique OK

• Mudar o nome da consulta para Consolidado

• Expandir NewColumn → nenhum prefixo → apenas a coluna Departamento

• Vá até Home → Close & carga para ... → Planilha Existente

• Carregar os dados para A1 da planilha Timesheets Desta vez, ele

funciona:

Figura 322 Os departamentos são mesclados no conjunto de dados.

Criando Staging / Carregando Queries


O segredo para evitar o erro Formula.Firewall é separar o trabalho de conectar ao banco de dados e carregar para o destino final. Chamamos
essas consultas estadiamento e consultas de carregamento.
224 M é para (dados) do macaco

Você usar consultas de preparação para garantir que você criar consultas separadas para extrair os dados iniciais de cada fonte de dados. Você, então, fazer
tantas transformações quanto possível na consulta de teste, a fim de obter os dados em uma forma em que ele pode ser usado por tantas outras consultas
quanto possível. O que você nunca fazer, porém, é tentar mesclar com outra fonte de dados ou carregar o resultado final em uma planilha do modelo de
dados. Ambas as tarefas são reservados para uma consulta de carregamento.

Uma consulta de carregamento é projetado para extrair dados de uma ou mais consultas de preparação e mesclar ou anexar conforme necessário antes

de fazer quaisquer transformações finais que são necessários. Você, então, criar essas consultas para carregar a saída para o destino final, seja a planilha

ou o Modelo de Dados. Visualmente, o processo é o seguinte:

Figura 323 Organização de paragem e de carregamento consultas.

Tecnicamente, combinando quaisquer duas fontes de dados diferentes podem causar um erro de Formula.Firewall a aparecer; mesmo tentando injetar um
parâmetro a partir de uma tabela de parâmetros Excel pode provocar o erro. Se você receber um erro Formula.Firewall ao tentar ninho uma chamada
parâmetro dinâmico no meio de uma consulta, tentar declarar sua variável na frente ao invés de evitar a declaração da variável e aninhar a função mais tarde
no código. Isso muitas vezes resolve esse problema.

Ressalvas
Ao trabalhar com consultas de preparação e de carregamento, você precisa ter cuidado em certos casos, especialmente quando a fonte de dados que você
conectar a pode tirar vantagem da consulta dobrar para melhorar o desempenho. A razão para isto é que a dobragem consulta pode ser executada apenas a partir
da ligação primária para a fonte de dados (a consulta de teste). Ao usar uma abordagem de preparação / carga contra um banco de dados que suporta dobrar
consulta, você deve sempre tentar fazer o maior número de filtragem e as operações de agrupamento que puder na consulta de preparo. Isto irá permitir que o
poder de consulta para passar o trabalho de processamento de volta para o banco de dados. Assim que você sair da sua consulta de teste em uma consulta de
teste secundário ou a consulta de carregamento, não mais comandos podem ser passados ​de volta para o banco de dados a ser dobrada, o que significa poder de
consulta tem que fazer o trabalho de processamento. Isso pode retardar significativamente o processo. Ele também pode fazer sentido para fazer várias conexões
ao banco de dados para puxar conjuntos de dados individuais, permitindo que o banco de dados para fazer o trabalho pesado para você desde bancos de dados
são otimizados para a classificação, filtragem e as operações de agrupamento.

Por outro lado, se você está direcionando sua solução contra as fontes que não suportam consulta dobrar (como texto ou arquivos do Excel), é uma boa idéia para
criar uma consulta de teste para puxar os dados e cortá-la para baixo tanto quanto pos- sível. Então você pode criar quantas consultas de preparação / carga
secundário para reformular os dados, conforme necessário, a fim de obtê-lo em seu modelo. Como não há capacidade de tirar proveito de um mecanismo de
processamento mais eficiente, você quer trazer os dados em uma vez e tentar certificar-se de cada etapa trabalha com o menor número de registros possível para
melhorar o tempo de processamento.

Você também deve estar consciente de não tentar criar muitos níveis de consultas de preparação entre a sua fonte de dados e suas consultas de
carregamento. Considerando que a utilização consulta uma encenação alimentando uma consulta de carga pode ser bastante fácil de seguir, as coisas ficam
muito mais complicado quando você iniciar a alimentação de dados através de cinco ou mais consultas de preparação intermediárias no caminho para o
resultado final. É um longo rastro de processo, o que poderia ter pactos desempenho im-, e certamente haverá um longo trilha para auditoria se algo correr mal.
Mantendo o fluxo de consulta mais apertado irá ajudá-lo quando você está tentando depurar e manter suas consultas.
Capítulo 25 Organização consulta 225

Você também deve estar ciente de que o Poder BI geralmente não apreciam longas trilhas de consultas usando a abordagem de consulta estadiamento e
carregamento. Se você está pretendendo para empurrar a sua solução para poder BI, é uma boa idéia para tentar manter a abordagem a uma única consulta, se
possível, e limitar o número de passos se não.

Consultas manter organizado


Como você construir mais e mais consultas de consultas de energia, você vai achar que as coisas começam a ficar um pouco desorganizado no painel a pasta de
trabalho Consultas. Quando isso acontece, há algumas maneiras que você pode manter o controle sobre esta questão.

Alterar Consulta Ordem de Exibição


Como você começar a construir consultas, Poder consulta só irá adicioná-los ao fundo da lista, em ordem seqüencial. Você pode, no entanto, alterar a
ordem em que essas consultas são apresentados no painel de pasta de trabalho consultas (e Poder consulta Navigator dentro do editor Poder
consulta). Para alterar o local onde uma consulta mostra em relação aos outros, siga estes passos:

• Botão direito do mouse sua consulta

• Escolha Mover para cima (ou Mover para baixo)

Figura 324 posições de consulta em movimento.

agrupamento Queries
A ordenação é grande, mas não ajudá-lo a categorizar consultas muito facilmente. Especialmente quando se utiliza a abordagem de preparação e de
carregamento, é muito útil para criar grupos em que para armazenar cada consulta. Veja como:

• Direito do mouse no fnGetTimesheet consulta → Mover para o grupo → Novo grupo ...

• Chame as novas funções de grupo

Figura 325 funções de classificação.


226 M é para (dados) do macaco

Agora você pode mover o fnGetParameter no grupo funções, bem como:

• Botão direito do mouse fnGetParameter → Mover para o grupo → Funções

É, em seguida, apenas uma simples questão de criar novos grupos para a realização e consultas de carregamento, bem como:

Figura 326 Todas as consultas, bem organizados.

Essa abordagem funciona muito bem para manter as coisas organizadas, e também lhe dá a capacidade de digitalizar rapidamente as consultas para ver se

eles estão configurados como esperado. Se você ver o texto “x linhas carregadas” sob uma consulta de teste, você sabe que não está realmente tomando um

papel específico de preparação, e você pode corrigi-lo ou movê-lo para o grupo de carga. Além de ser capaz de realizar o reordenamento e agrupamento na

interface do Excel, esses recursos também são suportados no editor de Energia Consulta, via painel Navigator:

Figura 327 organizar o poder de consulta consulta no painel Navigator.


Capítulo 25 Organização consulta 227

Índice funciona CSV, importadores de 11


Currency.From 144
Expoentes consumo de energia não ^ 140
partes de data Extraindo 219: extrair,
Custom.Column1 40 colunas transformar carga 4
personalizadas 139 189
UMA personalizado F

Adicionar coluna índice 129, 180 Adição Ficheiro de propriedades de pasta 64 do


D
de datas 220 Adicionar os itens 74 ficheiro, preservando 37 Ficheiros perfil a partir

Adição 140 AdventureWorks 65 Perigos 94 Bases de Dados de matemática de uma pasta de 33 livros de exemplo para o

65 perigos modelo 142 de dados 94 Os tipos livro de 9 enchimento horizontalmente 125

de dados de dados de macaco 1 verticalmente 124 erros de filtragem 45 FIND ()

Agregando enquanto agrupamento 118 Todos actualização de dados de erro 93 97 mangueira 148 fogo equivalente primeira

os arquivos em uma pasta 33 e () equivalente melhores práticas 101 Date.From 143 polegada 29 Primeira fila como cabeçalhos 21

198 Qualquer tipo de dados 97 Anexar qualquer Date.FromText 143 Data funções 219 Data fnGetParameter () 211 fnSWITCH () 207 de

tipo 99 operações Anexar consulta 27 Append modificados números de série 64 98 Data pasta, de importação todos os ficheiros 33 de

28 Datas de texto 38 Date.ToText 143 tipos de erro Formula.Firewall 221 Fórmulas 139 141

data 23 DD / MM / AAAA 23 de depuração casos sensíveis funções descobrindo 140 A

194 Decimal.From 144 Definir uma vez 6 partir da web 103 Funções 170 Futuro isolantes

Excel vs Poder consulta ícones 30 para as Distinct contagem 119 Divisão 140 não se de 33 botão fx 182

opções de autenticação 62 mais à esquerda agregam 130 de duas cabeças seta 40, 69
delimitador para dados da Web 103 Média de os espaços em duplicado 58 A duplicação
119 Azure 65 de dados 49 Duration.From 144 144
Duration.FromText cabeçalhos dinâmicos 83
dinâmico chamado varia 17 parâmetro
dinâmico tabelas 209
B

Unindo os níveis de base de dados

de 200 0 contra uma base de 141

começa com XLS 47 benefício contra

o tempo 3 binários 168 de consulta


G
em branco 17
colunas de lixo 61 engrenagem ícone

Budget pede via e-mail 111 20 do Google analytics 76

Agrupamento consulta 225


C Agrupamento através de uma consulta

117
Calendário
nomeações de câmbio 111 mesas 215
H

Chamar uma função 192 Caso linhas de cabeçalho, extra 19

fórmulas sensíveis 141 mudança de E HTML que navegam 106

tipo 13
Cada linha 178 Fim de mês 38 termina com Eu
ferramentas de desenvolvimento do
46 erros 168 são excitantes de 60 filtragem
Chrome 106 clean () equivalentes 58
45 linha de nível 169 passo-nível 169 ETL 4 Ícone para carregar todos os 34 SE () equivalente
Fechar & carga 13 campos Colapso 75
Exemplo 9 arquivos Excel.CurrentWorkbook 155 SEERRO () equivalente 154 Implícita vs
Combinando planilhas 43 Comentários 177
() 43, 50 Excel.Workbook ([conteúdo]) 50 conversão explícita 142 importar dados do Excel

troca dados 111 melhores práticas 115 11 14 a partir de dinâmica varia de 17 intervalos

Expandir ícone 48 para listas 162 de 16 chamada de dados da web 103


Concatenação emite 153 janela de
inconsistentes alinhamento 57 INDEX () 17 144
configuração 20 conexão de
Int64.From TI painel alerta 111
apenas consulta 79 Conexões,
gestão 67 números consecutivos
159 mesas de consolidação 43
coluna Conteúdo 34 Corrompendo
o seu modelo 94 Contando 119
Csv.Document 39 142 lógica
condicional

Expandir solução para muitos arquivos 41


K
explícitos vs conversão implícita 142
228 M é para (dados) do macaco

KPIs 72 Caracteres não imprimíveis 57 cada X minutos 134 métodos para 14


valores nulos 32 Number.From 144 no livro aberto 134 via Poder Actualizar
eu Number.FromText 144 143 138 via propriedades 133 com VBA 134
Number.ToText configurações da região 24 de detecção
mapa Aprender 7
do relacionamento 69 Retirar erros 45
LEFT () equivalente 145 LEN ()
Retirar outras colunas 69 Remoção
equivalentes 147 Quebras de linha
O fileiras 21 passos Remoção 20 Mudar o
em M 175 Ligando etapas em M
nome de coluna de 12 grupos de
175 Lista os arquivos na pasta 33 Objectos 157 Funções 170 Listas 158
repetição 51 cabeçalhos que se repetem
da ficha 162 As Tabelas 157 168
57 Repivoting dados 52 $ Substitua com
Lista de colunas de tabela 160 Lista de Valores ODBC 65 OK é acinzentado
nada 27 dados retroactivos 53
objetos 158 listas de listas 161 80 um-para-um junta 81 Operando
reequipamento para tradução 84 texto
em cada fileira 178 Optimização 78
Voltando datas 220 DIREITO ()
guia Ferramentas de Lista na fita 158 Lista OU () equivalente 197 Organizador
equivalente 146 arredondamento 121
de mesa 159 ao vivo contra salvo 50 consultas 225
erros de nível 169 fila
Carregando

conexão de apenas 87 a partir

do Exchange 111 para o

modelo de dados 89

para Pivot de Energia 2010 88, 91 a 87

mesas de localidade 24
P
expressões lógicas 153
tabelas de parâmetros 209 pessoas, a

M partir do Exchange 111 Percentagem do S


total 121 Tabela dinâmica inserção 35
Arquivos de Amostra 9 Gravadas em relação ao
linha Meach 178 refrescante 31 de Ponteiro consulta 79
vivo 50 Sequential natureza 38 erro de coluna

Individual 19 Fonte, mudando 64 espaços,


começando com 139 quebras de
duplicar 58 Dividir por coluna 21 Dividir por
linha 175
posição 59 SQL ninja 78 SQL Server 65 SQL
caracteres especiais 177 Portabilidade do Exchange consulta 115 Power por
Server Analysis Services 71 SSAS 71 SSMS 78
# "Sintaxe" 174 expoentes 140 Poder Atualização 138 pqVLOOKUP
mesas empilhadas 128 Staging / carregamento
amarrando passos juntos 175 201 Preservando as propriedades do arquivo 37
consulta 223 erros de nível Passo 169
compreensão 173 Mail, carregar Visualização de um campo 39 janela de visualização
Subtracção 140 Resumindo 119 Os dados da
111 de 114 fim Anterior data 185 Anterior linha 185 Área
pesquisa através de correio electrónico 111
Gerenciando conexões 67 de impressão como faixa dinâmica 46 cabeçalhos
INTERRUPTOR () 205 equivalente
Many-to-many junta 82 Max 119 Promovido 12

Median 119

Pedidos de reunião 111 colunas


Mesclar 62 Fusão os passos 13
mesas Mesclando 79 Oriente do
registo de dados 180 MID () Q
equivalente 149 Min 119
Consulta dobrar nome
consulta 77 87

MM / DD / AAAA 23 Modulo coluna R T


129 Mais recentemente modificada
64 Mover para baixo 22 Multiplicação Alcance das ferramentas 4 rearranja os Table.Max nome 120 Tabela de
140 passos 22 recentemente modificada arquivo alimentação em pivô 92 Tabelas objetos
64 da ficha objetos 162 de linha da tabela tabela Excel 157 oficial 15 contra varia de
para a tabela 165 163 recursão de pastas 37 18 contra 78 vistas tarefas, a partir do
N Reduzir linhas 45, 58 Referindo-se passo Exchange 111 textos funciona 144 não
anterior 182 Actualizar todos os 36 133 delimitado 57
Conflitos de nome 15
refrescamento
Intervalos nomeados, que definem 16
Navegar HTML 106 Navigator 68

texto Nondelimited 57
Capítulo 25 Organização consulta 229

às datas de 38

txt em vez de CSV 21


Text.From 142 Time.From
144 Time.FromText 144
Time.ToText 143 Top seller
120 a Tabela 159

Workshops de capacitação 7

Tradução mesa de 83 dados de

transposição 125 mesas

empilhadas 128 TRIM ()

equivalente 58 Try ... caso

contrário 154

você

dados Unpivoting 51 colunas 55 de


bloqueio com subcategorias 123
UNPIVOT outras colunas 54

Use nome original da coluna como prefixo 40

Valores objetos 168


Visualizações versus tabelas
78 PROCV () para a fusão 79

Consulta potência equivalente 199

W
Dados Web 103 arquivos

hospedados em Web 105 Onde

encontrar 7 Wikipédia perigos 109

painel consultas de pasta de trabalho, mostrando 14

pastas de trabalho, combinando 47 planilhas,

combinando 43

Anos, a conversão para 69


Continue a viagem

Afie o seu
Pivot poder, Mapa poder, Mapa poder,
e as habilidades de Excel com os
livros dos principais autores.
contracapa - Página intencionalmente em branco

Você também pode gostar