Applies ToExcel para Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

O contexto permite-lhe efetuar uma análise dinâmica, na qual os resultados de uma fórmula podem ser alterados para refletir a seleção atual de linhas ou células 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 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 no 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 torna possível efetuar uma análise dinâmica. Compreender o contexto é importante para criar e para resolver problemas de fórmulas.

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

O contexto de 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. Existem também algumas funções (EARLIER e EARLIEST) que obtêm um valor da linha atual e, em seguida, utilizam esse valor ao executar uma operação em toda uma tabela.

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

O contexto de filtro é o conjunto de valores permitidos em cada coluna, com base em 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 também inclui todos os valores dessa outra tabela que estão relacionados com a linha atual.

Por exemplo, suponha que cria uma coluna calculada, =[Transporte] + [Imposto], que junta duas colunas da mesma tabela. Esta fórmula comporta-se como 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 através da 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 de linha segue automaticamente as relações entre tabelas para determinar que linhas em tabelas relacionadas estão associadas à linha atual.

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

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

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

Contexto de Várias Linhas

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 termos de programação, pode criar fórmulas que se repetem num ciclo interno e externo.

Por exemplo, suponha que o seu livro contém uma tabela Produtos e uma tabela Vendas . Poderá querer percorrer toda a tabela de vendas, que está cheia 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 fossem alterados. Se for um utilizador avançado do Excel, poderá conseguir criar fórmulas de matriz que fariam o trabalho. Em alternativa, numa base de dados relacional, pode escrever subseleções aninhadas.

No entanto, com o 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(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Para obter instruções detalhadas sobre esta fórmula, consulte a Função EARLIER.

Em suma, a função EARLIER armazena o contexto de linha da operação que precedeu a operação atual. Em todos os momentos, a função armazena dois conjuntos de contexto na memória: 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 externo da fórmula. O DAX alimenta automaticamente os valores entre os dois ciclos para que possa criar agregações complexas.

Início da Página

Contexto de Consulta

O contexto de consulta refere-se ao subconjunto de dados que é implicitamente obtido para uma fórmula. Quando larga uma medida ou outro campo de valor numa célula numa tabela dinâmica, o motor de Power Pivot examina os cabeçalhos de linha e coluna, segmentações de dados e filtros de relatório para determinar o contexto. Em seguida, Power Pivot faz os cálculos necessários para preencher cada célula na tabela dinâmica. O conjunto de dados obtido é o contexto de consulta para 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 muitos agrupamentos e filtros ou numa coluna calculada sem filtros e contexto mínimo.

Por exemplo, suponha 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 lucro para todas as regiões, todos os produtos, todos os anos, etc.

No entanto, normalmente não quer ver o mesmo resultado centenas de vezes, mas em vez disso quer obter o lucro de um determinado ano, um determinado país ou região, um determinado produto ou alguma combinação destes 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 Segmentações de Dados. Pode criar uma fórmula como a acima, numa medida e, em seguida, largue-a numa tabela dinâmica. Sempre que adicionar cabeçalhos de coluna ou linha à Tabela Dinâmica, altera o contexto de consulta no qual a medida é avaliada. As operações de segmentaçã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 de Filtro

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

Por exemplo, uma tabela dinâmica calcula os respetivos valores para cada célula com base nos cabeçalhos de linha e coluna, conforme descrito na secção anterior sobre o contexto de consulta. No entanto, nas 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 limpar seletivamente os filtros em colunas específicas.

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

Para obter um exemplo de como os filtros podem ser limpos para criar totais gerais, veja a Função ALL.

Para obter exemplos de como limpar e aplicar seletivamente filtros dentro de fórmulas, veja 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 filtro ao interpretar os resultados das fórmulas.

Início da Página

Determinar o Contexto em Fórmulas

Quando cria uma fórmula, Power Pivot para o Excel verifica primeiro a sintaxe geral e, em seguida, verifica os nomes das colunas e tabelas que fornece relativamente a possíveis colunas e tabelas no contexto atual. Se Power Pivot não conseguir localizar 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 aplicou 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çalhos de coluna e utilizar Segmentações de Dados, o contexto inclui as tabelas relacionadas e quaisquer filtros nos 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 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 pesquisas. O exemplo neste tópico ilustra a interação de filtragem e contexto de linha.

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

  • A função ALL define o contexto dentro de uma fórmula. Pode utilizá-lo para substituir filtros que são aplicados como resultado do contexto de consulta.

  • A função ALLEXCEPT permite-lhe remover todos os filtros, exceto um que especificar. Ambos os tópicos incluem exemplos que o orientam na criação de fórmulas e na compreensão de contextos complexos.

  • As funções EARLIER e EARLIEST permitem-lhe percorrer as tabelas ao efetuar cálculos, ao mesmo tempo que referencia um valor de um ciclo interno. Se estiver familiarizado com o conceito de recursão e com ciclos internos e externos, irá apreciar o poder que as funções EARLIER e EARLIEST proporcionam. Se não estiver familiarizado com estes conceitos, deve seguir cuidadosamente os passos no exemplo para ver como os contextos internos e externos são utilizados nos cálculos.

Início da Página

Integridade Referencial

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

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

Integridade Referencial e Relações de Power Pivot

Power Pivot 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 na extremidade "um" de cada relação um-para-muitos e é utilizada para processar todas as linhas não correspondentes da tabela relacionada. Comporta-se eficazmente como uma associação externa do SQL.

Nas Tabelas Dinâmicas, se agrupar dados por um lado da relação, todos os dados sem correspondência no lado muitos da relação são agrupados e serão incluídos em totais com um cabeçalho de linha em branco. O cabeçalho em branco é aproximadamente equivalente ao "membro desconhecido".

Compreender o Membro Desconhecido

O conceito de membro desconhecido é provavelmente familiar para si se tiver trabalhado com sistemas de bases de dados multidimensionais, como SQL Server Analysis Services. Se o termo for novo para si, o exemplo seguinte explica o que é o membro desconhecido e como 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. Tendo em conta que as tabelas para Loja e Vendas estão ligadas pelo nome da loja, o que esperaria que acontecesse na fórmula? Como deve o grupo de tabela dinâmica ou apresentar os números de vendas que não estão relacionados com um arquivo existente?

Este problema é comum nos armazéns de dados, em que grandes tabelas de dados de factos têm de estar logicamente relacionadas com tabelas de dimensões que contêm informações sobre arquivos, regiões e outros atributos que são utilizados para categorizar e calcular factos. Para resolver o problema, quaisquer novos factos que não estejam relacionados com uma entidade existente são temporariamente atribuídos ao membro desconhecido. É por isso que os factos não relacionados aparecerão agrupados numa Tabela Dinâmica num cabeçalho 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 adicionadas para acomodar o membro desconhecido. O valor em branco é um valor especial que é 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, veja Tipos de dados em Modelos de Dados.

Início da Página

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.