O contexto permite-lhe efetuar uma análise dinâmica, na qual os resultados de uma fórmula podem mudar de modo a refletir a seleção atual da linha ou célula e também quaisquer dados relacionados. Compreender o contexto e utilizar o contexto de forma eficaz são muito importantes para criar fórmulas de alto desempenho, análises dinâmicas e para resolver problemas em fórmulas.

Esta secção define os diferentes tipos de contexto: contexto de linha, contexto de consulta e contexto de filtro. Explica como o contexto é avaliado para fórmulas em colunas calculadas e em tabelas dinâmicas.

A última parte deste artigo fornece ligações para exemplos detalhados que ilustram como os resultados das fórmulas mudam de acordo com o contexto.

Compreender o Contexto

As fórmulas Power Pivot podem ser afetadas pelos filtros aplicados numa Tabela Dinâmica, pelas relações entre tabelas e pelos filtros utilizados nas fórmulas. O contexto é o que permite efetuar uma análise dinâmica. Compreender o contexto é importante para criar e para remoção de fórmulas.

Existem diferentes tipos de contexto: contexto de linha, contexto de consulta e contexto de filtragem.

O contexto da linha pode ser pensar como "a linha atual". Se tiver criado uma coluna calculada, o contexto de linha será constituído pelos valores em cada linha individual e os valores nas colunas relacionados com a linha atual. Também existem algumas funções(EARLIER e EARLIEST)que odem um valor da linha atual e, em seguida, utilizam esse valor enquanto executam uma operação sobre uma tabela inteira.

O contexto de consulta refere-se ao subconjunto de dados que é criado implicitamente para cada célula numa tabela dinâmica, dependendo dos cabeçalhos de linha e de coluna.

O contexto de filtro é o conjunto de valores permitidos em cada coluna, com base nas restrições de filtro que foram aplicadas à linha ou que são definidas por expressões de filtro na fórmula.

Início da Página

Contexto de Linha

Se criar uma fórmula numa coluna calculada, o contexto de linha para essa fórmula inclui os valores de todas as colunas na linha atual. Se a tabela estiver relacionada com outra tabela, o conteúdo também inclui todos os valores da outra tabela relacionados com a linha atual.

Por exemplo, suponhamos que cria uma coluna calculada, =[Transporte] + [Imposto],

, que adiciona duas colunas da mesma tabela. Esta fórmula comporta-se como as fórmulas numa Excel tabela, que referencia automaticamente os valores da mesma linha. Tenha em atenção que as tabelas são diferentes dos intervalos: não é possível referenciar um valor da linha antes da linha atual utilizando notação de intervalo e não pode referenciar qualquer valor único arbitrário numa tabela ou célula. Tem de trabalhar sempre com tabelas e colunas.

O contexto das linhas segue automaticamente as relações entre tabelas para determinar que linhas em tabelas relacionadas estão associadas à linha atual.

Por exemplo, a fórmula seguinte utiliza a função RELATED para obter um valor de imposto de uma tabela relacionada, com base na região para onde a encomenda foi enviada. O valor de imposto é determinado utilizando o valor da região na tabela atual, procurando na região na tabela relacionada e, em seguida, obtendo a taxa de imposto para essa região a partir da tabela relacionada.

= [Transporte] + RELATED('Região'[Imposto])

Esta fórmula obtemos simplesmente a taxa de imposto da região atual, na tabela Região. Não precisa de saber ou especificar a chave que liga as tabelas.

Contexto de Múltiplas Linhas

Além disso, o DAX inclui funções que iteram cálculos numa tabela. Estas funções podem ter múltiplas linhas atuais e contextos de linha atuais. Em termos de programação, pode criar fórmulas que se recorrem ao longo de um ciclo interior e exterior.

Por exemplo, suponha que o seu livro contém uma tabela Produtos e uma tabela Vendas. Poderá querer ver a tabela de vendas completa, que está repleta de transações que envolvem vários produtos, e encontrar a maior quantidade encomendada para cada produto em qualquer transação.

No Excel, este cálculo requer uma série de resumos intermédios, que teriam de ser reconstruídos se os dados mudados. Se for um utilizador poderoso Excel, poderá criar fórmulas de matriz que sejam suficientes para o fazer. Em alternativa, numa base de dados relacional poderia escrever subseleções aninhadas.

No entanto, com o DAX pode criar uma única fórmula que devolva o valor correto e os resultados são atualizados automaticamente sempre que adicionar dados às tabelas.

=MÁXIMOX(FILTRAR(Vendas,[ProdKey]=ANTERIOR([ProdKey])),Vendas[SQDDaEquipa])

Para obter instruções detalhadas desta fórmula, consulte a informação ANTERIOR.

Resumindo, a função ANTERIOR armazena o contexto de linha da operação que precedeu a operação atual. A cada momento, a função armazena na memória dois conjuntos de contexto: um conjunto de contexto representa a linha atual para o ciclo interno da fórmula e outro conjunto de contexto representa a linha atual para o ciclo interior da fórmula. O DAX alimenta automaticamente valores entre os dois ciclos para que possa criar agregados complexos.

Início da Página

Contexto da Consulta

O contexto de consulta refere-se ao subconjunto de dados que é implicitamente recuperado para uma fórmula. Quando larga uma medida ou outro campo de valor numa célula de uma tabela dinâmica, o motor Power Pivot examina os cabeçalhos de linha e coluna, as Fatias e os filtros do relatório para determinar o contexto. Em seguida Power Pivot efetua os cálculos necessários para preencher cada célula na Tabela Dinâmica. O conjunto de dados que é recuperado é o contexto de consulta de cada célula.

Uma vez que o contexto pode mudar consoante o local onde coloca a fórmula, os resultados da fórmula também mudam consoante utilize a fórmula numa Tabela Dinâmica com vários agrupamentos e filtros ou numa coluna calculada sem filtros e contexto mínimo.

Por exemplo, suponhamos que cria esta fórmula simples que soma os valores na coluna Lucro da tabela Vendas:=SOMA('Vendas'[Lucro]).

Se utilizar esta fórmula numa coluna calculada na tabela Vendas, os resultados da fórmula serão os mesmos para toda a tabela, uma vez que o contexto de consulta da fórmula é sempre o conjunto de dados completo da tabela Vendas. Os seus resultados terão lucros para todas as regiões, todos os produtos, todos os anos, entre outros.

No entanto, normalmente não pretende ver o mesmo resultado centenas de vezes, mas pretende obter o lucro de um determinado ano, de um país ou região específico, de um produto específico ou de uma combinação destes resultados e, em seguida, obter um total geral.

Numa tabela dinâmica, é fácil alterar o contexto ao adicionar ou remover cabeçalhos de colunas e linhas e ao adicionar ou remover Filtrar. Pode criar uma fórmula como a acima, numa medida e, em seguida, lati-la numa Tabela Dinâmica. Sempre que adicionar títulos de coluna ou linha à Tabela Dinâmica, altera o contexto de consulta no qual a medida é avaliada. As operações de filtragem e de cortar também afetam o contexto. Assim, a mesma fórmula, utilizada numa Tabela Dinâmica, é avaliada num contexto de consulta diferente para cada célula.

Início da Página

Contexto de Filtro

O contexto de filtro é adicionado quando especifica restrições de filtro no conjunto de valores permitidos numa coluna ou tabela, ao utilizar argumentos numa fórmula. O contexto de filtro aplica-se sobre outros contextos, como o contexto de linha ou de consulta.

Por exemplo, uma Tabela Dinâmica calcula os valores para cada célula com base nos cabeçaços de linha e coluna, conforme descrito na secção anterior sobre contexto de consulta. No entanto, nas medidas ou colunas calculadas que adicionar à tabela dinâmica, pode especificar expressões de filtro para controlar os valores utilizados pela fórmula. Também pode limpar seletivamente os filtros em colunas específicas.

Para obter mais informações sobre como criar filtros dentro de fórmulas, consulte as Funções de filtro.

Para um exemplo de como os filtros podem ser limpos para criar totais grandes, consulte ALL.

Para exemplos de como limpar e aplicar filtros seletivamente dentro de fórmulas, consulte a Função ALLEXCEPT.

Por conseguinte, tem de rever a definição de medidas ou fórmulas utilizadas numa tabela dinâmica para que tenha conhecimento do contexto de filtragem ao interpretar os resultados das fórmulas.

Início da Página

Determinar Contexto em Fórmulas

Quando cria uma fórmula, o Power Pivot para Excel verifica primeiro a sintaxe geral e, em seguida, verifica os nomes das colunas e tabelas que fornece em caso de possíveis colunas e tabelas no contexto atual. Se Power Pivot encontrar as colunas e tabelas especificadas pela fórmula, obterá um erro.

O contexto é determinado conforme descrito nas secções anteriores, utilizando as tabelas disponíveis no livro, quaisquer relações entre as tabelas e quaisquer filtros que tenham sido aplicados.

Por exemplo, se acabou de importar alguns dados para uma nova tabela e não tiver aplicado filtros, todo o conjunto de colunas na tabela faz parte do contexto atual. Se tiver múltiplas tabelas ligadas por relações e estiver a trabalhar numa tabela dinâmica que tenha sido filtrada ao adicionar cabeçaçamentos de coluna e utilizar a Filtragem, o contexto inclui as tabelas relacionadas e quaisquer filtros nos dados.

O contexto é um conceito poderoso que também pode dificultar a remoção de fórmulas. Recomendamos que comece com fórmulas e relações simples para ver como o contexto funciona e, em seguida, comece a experimentar fórmulas simples em tabelas dinâmicas. A secção seguinte também fornece alguns exemplos de como as fórmulas utilizam diferentes tipos de contexto para devolver resultados dinamicamente.

Exemplos de Contexto em Fórmulas

  • A função RELATED expande o contexto da linha atual para incluir valores numa coluna relacionada. Isto permite-lhe efetuar as procuras. O exemplo neste tópico ilustra a interação da filtragem e do contexto de linha.

  • A função FILTRAR permite-lhe especificar as linhas a incluir no contexto atual. Os exemplos neste tópico também ilustram como incorporar filtros dentro de outras funções que executam agregados.

  • A função ALL define o contexto numa fórmula. Pode usá-lo para sobrefiltro filtros aplicados como resultado do contexto de consulta.

  • A função ALLEXCEPT permite-lhe remover todos os filtros exceto um especificado por si. Ambos os tópicos incluem exemplos que o vão ajudar a criar fórmulas e a compreender contextos complexos.

  • As funções MAIS ANTIGAs e MAIS ANTIGAS permite-lhe ultrapassar as tabelas ao efetuar cálculos enquanto faz referência a um valor de um ciclo interno. Se estiver familiarizado com o conceito de recursão e com os ciclos internos e de fora, irá gostar do poder que as funções MAIS ANTIGAs e MAIS ANTIGAs fornecem. Se não estiver familiarizado com estes conceitos, deve seguir os passos no exemplo cuidadosamente para ver como os contextos interno e outer são utilizados em cálculos.

Início da Página

Integridade Referencial

Esta secção aborda alguns conceitos avançados relacionados com valores em falta Power Pivot tabelas ligadas por relações. Esta secção poderá ser-lhe útil se tiver livros com múltiplas tabelas e fórmulas complexas e precisar de ajuda para compreender os resultados.

Se não estiver familiarizar com os conceitos de dados relacionais, recomendamos que leia primeiro o tópico introdutório, Visão Geral das Relações.

Integridade Referencial e Power Pivot Relações

Power Pivot requer que a integridade referencial seja aplicada entre duas tabelas para definir uma relação válida. Em vez disso, é criada uma linha em branco no fim "um" de cada relação um-para-muitos e é utilizada para lidar com todas as linhas não correspondências da tabela relacionada. Comporta-se efetivamente como uma SQL associação outer.

Nas Tabelas Dinâmicas, se agrupar dados junto a um lado da relação, todos os dados não apresentados no lado "muitos" da relação são agrupados e serão incluídos nos totais com um cabeçaeiro de linha em branco. O título em branco é aproximadamente equivalente ao "membro desconhecido".

Noções sobre o Membro Desconhecido

O conceito do membro desconhecido provavelmente está familiarizado consigo se tiver trabalhado com sistemas de bases de dados multidimensionais, como o SQL Server Analysis Services. Se o termo for novo para si, o exemplo seguinte explica o que é o membro desconhecido e como isso afeta os cálculos.

Suponha que está a criar um cálculo que soma as vendas mensais de cada loja, mas uma coluna na tabela Vendas não tem um valor para o nome da loja. Dado que as tabelas para Loja eVendas estão ligadas pelo nome da loja, o que espera que aconteça na fórmula? Como deve o grupo tabela dinâmica ou apresentar os valores das vendas que não estão relacionados com uma loja existente?

Este problema é comum em armazéns de dados, onde grandes tabelas de dados de factos têm de estar relacionadas logicamente com tabelas de dimensão que contêm informações sobre lojas, regiões e outros atributos que são utilizados para categorizar e calcular factos. Para resolver o problema, quaisquer novos factos não associados a uma entidade existente são temporariamente atribuídos ao membro desconhecido. É por isso que os factos não estão agrupados numa tabela dinâmica sob um título em branco.

Tratamento de Valores em Branco vs. Linha em Branco

Os valores em branco são diferentes das linhas em branco que são adicionados para acomodar o membro desconhecido. O valor em branco é um valor especial utilizado para representar nulos, cadeias vazias e outros valores em falta. Para obter mais informações sobre o valor em branco, bem como outros tipos de dados DAX, consulte Tipos de dados em Modelos de Dados.

Início da Página

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade da tradução?
O que afetou a sua experiência?

Obrigado pelos seus comentários!

×