Contexto em Fórmulas do DAX

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

O contexto permite-lhe efetuar a análise dinâmica, na qual os resultados de uma fórmula podem ser alterados para refletir a linha ou seleção de células atual e também quaisquer dados relacionados. Compreender o contexto e utilizar o contexto de forma eficaz é muito importante 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 é avaliado o contexto para fórmulas em colunas calculadas e em tabelas dinâmicas.

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

Noções básicas sobre contexto

As fórmulas no PowerPivot podem ser afetadas pelos filtros aplicados numa tabela dinâmica, por relações entre tabelas e por filtros utilizados em fórmulas. O contexto é o que torna possível efetuar a análise dinâmica. Compreender o contexto é importante para criar e resolver problemas de fórmulas.

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

O contexto da linha pode ser considerado como "a linha atual". Se tiver criado uma coluna calculada, o contexto de linha consiste nos valores em cada linha individual e valores em colunas relacionadas com a linha atual. Também existem algumas funções (anteriores e mais antigas) que obtêm um valor da linha atual e, em seguida, utilizam esse valor enquanto efetuam uma operação numa tabela inteira.

O contexto da 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 coluna.

O contexto do 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 dessa fórmula inclui os valores de todas as colunas na linha atual. Se a tabela estiver relacionada com outra tabela, o conteúdo incluirá também todos os valores dessa outra tabela que estão relacionados com a linha atual.

Por exemplo, suponha que cria uma coluna calculada, = [Frete] + [imposto],

, que adiciona duas colunas em conjunto a partir da mesma tabela. Esta fórmula tem o mesmo gosto de fórmulas numa tabela do Excel, que referenciam automaticamente valores da mesma linha. Tenha em atenção que as tabelas são diferentes dos intervalos: não pode referenciar um valor da linha antes da linha atual utilizando a notação de intervalo e não pode referenciar um valor arbitrário numa tabela ou célula. Tem de trabalhar sempre com tabelas e colunas.

O contexto de linha 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 relacionada para obter um valor de imposto a partir de uma tabela relacionada, com base na região para a qual o pedido foi remetido. O valor do imposto é determinado ao utilizar o valor para região na tabela atual, procurar a região na tabela relacionada e, em seguida, obter a taxa de imposto dessa região a partir da tabela relacionada.

= [Frete] + relacionado ("região" [TaxRate])

Esta fórmula obtém apenas a taxa de imposto da região atual, a partir da tabela de regiões. Não precisa de saber ou especificar a chave que liga as tabelas.

Contexto de linha múltipla

Além disso, o DAX inclui funções que iteram cálculos numa tabela. Estas funções podem ter várias linhas atuais e contextos de linha atuais. Em condições de programação, pode criar fórmulas que se recursem através de um loop interior e externo.

Por exemplo, suponhamos que o livro contém uma tabela produtos e uma tabela vendas . Pode pretender percorrer a tabela de vendas inteira, que está cheia de transações que envolvem múltiplos produtos e encontrar a maior quantidade encomendada para cada produto em qualquer uma das transacções.

No Excel, este cálculo requer uma série de resumos intermediários, que teria de ser recriado se os dados forem alterados. Se for um utilizador avançado do Excel, poderá conseguir criar fórmulas de matriz que façam a tarefa. Em alternativa, numa base de dados relacional, pode escrever subseleções aninhadas.

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

= MAXX (filtro (vendas; [ProdKey] = anterior ([ProdKey])), vendas [OrderQty])

Para obter instruções detalhadas sobre esta fórmula, consulte o artigo anterior.

Resumindo, a função anterior armazena o contexto de linha a partir da operação que precede a operação atual. Em todos os casos, a função armazena na memória dois conjuntos de contexto: um conjunto de contexto representa a linha atual do loop interno da fórmula e outro conjunto de contexto representa a linha atual para o loop externo da fórmula. O DAX alimenta automaticamente valores entre os dois loops para que possa criar agregados complexos.

Início da Página

Contexto da consulta

O contexto da consulta refere-se ao subconjunto de dados que é recuperado implicitamente para uma fórmula. Quando solta um campo de medida ou outro valor numa célula numa tabela dinâmica, o motor PowerPivot examina os cabeçalhos de linha e de coluna, segmentação de data e filtros de relatório para determinar o contexto. Em seguida, o PowerPivot faz os cálculos necessários para preencher cada célula na tabela dinâmica. O conjunto de dados que é recuperado é o contexto da consulta para cada célula.

Uma vez que o contexto pode ser alterado consoante o local onde coloca a fórmula, os resultados da fórmula também mudam consoante se utiliza a fórmula numa tabela dinâmica com vários agrupamentos e agrupamentos ou numa coluna calculada sem filtros e por um 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 a tabela inteira, porque o contexto da consulta para a fórmula é sempre todo o conjunto de dados da tabela vendas . Os seus resultados terão lucro 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, em vez disso, pretende obter o lucro de um ano específico, um determinado país ou região, um determinado produto ou alguma combinação destas e, em seguida, obter um total geral.

Numa tabela dinâmica, é fácil alterar o contexto adicionando ou removendo cabeçalhos de colunas e linhas e adicionando ou removendo segmentações de dados. Pode criar uma fórmula como aquela acima, numa medida e, em seguida, soltá-la numa tabela dinâmica. Sempre que adicionar cabeçalhos de colunas ou linhas à tabela dinâmica, altere o contexto de consulta no qual a medida é avaliada. As operações de divisão e filtragem também afetam o contexto. Por conseguinte, 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 do filtro

O contexto do filtro é adicionado quando especifica as restrições de filtro no conjunto de valores permitidos numa coluna ou tabela, utilizando os argumentos para uma fórmula. O contexto do filtro aplica-se por cima de outros contextos, tal como contexto de linha ou contexto de consulta.

Por exemplo, uma tabela dinâmica calcula os valores de cada célula com base nos cabeçalhos de linha e coluna, conforme descrito na secção anterior no contexto da consulta. Entretanto, dentro das medidas ou colunas calculadas que adiciona à tabela dinâmica, pode especificar expressões de filtro para controlar os valores que são utilizados pela fórmula. Também pode desmarcar seletivamente os filtros em colunas específicas.

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

Para obter um exemplo de como os filtros podem ser eliminados para criar totais gerais, consulte o artigo tudo.

Para obter exemplos sobre como limpar e aplicar filtros seletivamente em fórmulas, consulte a função caexcept.

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

Início da Página

Determinar o contexto em fórmulas

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

O contexto é determinado como descrito nas secções anteriores, utilizando as tabelas disponíveis no livro, todas as relações entre as tabelas e os filtros que foram aplicados.

Por exemplo, se tiver acabado de importar alguns dados para uma nova tabela e não tiver aplicado nenhum filtro, 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çalhos de coluna e utilizar segmentações de dados, o contexto inclui as tabelas relacionadas e os filtros dos dados.

O contexto é um conceito poderoso que também pode dificultar a resolução de problemas de fórmulas. Recomendamos que comece com fórmulas e relações simples para ver como funciona o contexto e, em seguida, comece a testar as fórmulas simples em tabelas dinâmicas. A secção seguinte também fornece 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. Esta opção permite-lhe efetuar pesquisas. O exemplo neste tópico ilustra a interação de filtragem e de 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 utilizá-lo para substituir os filtros que são aplicados como resultado do contexto da consulta.

  • A função myEXCEPT permite-lhe remover todos os filtros exceto os que especificar. Os dois tópicos incluem exemplos que o guiam através da criação de fórmulas e a compreensão de contextos complexos.

  • As funções mais antigas e mais antigas permitem-lhe percorrer as tabelas ao efetuar cálculos, ao fazer referência a um valor de um ciclo interno. Se estiver familiarizado com o conceito de recursão e com os ciclos internos e externos, irá apreciar a potência que as funções mais antigas e mais antigas oferecem. Se não estiver familiarizado com estes conceitos, deve seguir os passos no exemplo cuidadosamente para ver como os contextos internos e externos 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 nas tabelas do PowerPivot que estão ligadas por relações. Esta secção poderá ser útil se tiver livros com várias tabelas e fórmulas complexas e quiser obter ajuda para compreender os resultados.

Se não estiver familiarizado com os conceitos de dados relacionais, recomendamos que leia primeiro o tópico de introdução, Descrição geral de relações.

Integridade referencial e relações de PowerPivot

o PowerPivot não requer que a integridade referencial seja imposta entre duas tabelas para definir uma relação válida. Em vez disso, é criada uma linha em branco no final "um" de cada relação um-para-muitos e é utilizada para controlar todas as linhas que não correspondem a partir da tabela relacionada. O mesmo se comporta de forma eficaz com uma associação externa SQL.

Em tabelas dinâmicas, se agrupar dados por um dos lados da relação, os dados não correspondentes no lado muitos da relação são agrupados em conjunto e serão incluídos em totais com um cabeçalho de linha em branco. O cabeçalho em branco é praticamente equivalente ao "membro desconhecido".

Noções sobre o membro desconhecido

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

Suponhamos 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 e vendas estão ligadas pelo nome da loja, o que esperaria acontecer na fórmula? Como é que o grupo de tabela dinâmica deve apresentar ou apresentar os números de vendas que não estão relacionados com uma loja existente?

Este problema é um comum em data warehouses, em que grandes índices de dados de fatos têm de estar logicamente relacionados com tabelas de dimensão que contêm informações sobre lojas, regiões e outros atributos utilizados para categorizar e calcular fatos. Para resolver o problema, os novos fatos não relacionados com uma entidade existente são atribuídos temporariamente ao membro desconhecido. É por isso que os fatos não relacionados são apresentados agrupados numa tabela dinâmica, sob um cabeçalho em branco.

Tratamento de valores em branco versus linha em branco

Os valores em branco são diferentes das linhas em branco que são adicionadas para acomodar o membro desconhecido. O valor em branco é um valor especial utilizado para representar valores 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

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×