Contexto em fórmulas DAX

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

O contexto permite executar análise dinâmica, na qual os resultados de uma fórmula podem ser alterados para refletir a seleção atual de linha ou célula, além de qualquer dado relacionado. Entender o que é contexto e seu uso eficiente é muito importante para compilar fórmulas de alto desempenho, análises dinâmicas e para solucionar problemas em fórmulas.

Esta seção define os diferentes tipos de contexto: contexto de linha, contexto de consulta e contexto de filtro. Ela explica como o contexto é avaliado para fórmulas em colunas calculadas e em Tabelas Dinâmicas.

A última parte deste artigo fornece links para exemplos detalhados que ilustram como os resultados de fórmulas são alterados de acordo com o contexto.

Compreendendo o contexto

As fórmulas do Power Pivot podem ser afetadas pelos filtros aplicados a uma Tabela Dinâmica, pelas relações entre as tabelas e pelos filtros usados em fórmulas. O contexto é o que torna possível executar a análise dinâmica. A compreensão do contexto é importante para compilar e solucionar problemas de fórmulas.

Há tipos diferentes de contexto: contexto de linha, contexto de consulta e contexto de filtro.

O contexto de linha pode ser considerado como "a linha atual". Se você criou uma coluna calculada, o contexto de linha consistirá em valores de cada linha individual e valores das colunas relacionadas à linha atual. Também há algumas funções (Função EARLIER e Função EARLIEST) que obtêm um valor da linha atual e, em seguida, usam esse valor enquanto realizam uma operação em uma tabela inteira.

Contexto de consulta refere-se ao subconjunto de dados criados implicitamente para cada célula de uma Tabela Dinâmica, dependendo dos títulos de linha e de coluna.

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

Início da Página

Contexto de linha

Se você criar uma fórmula em uma coluna calculada, o contexto de linha dessa fórmula incluirá os valores de todas as colunas na linha atual. Se a tabela estiver relacionada a outra tabela, o conteúdo também incluirá todos os valores dessa outra tabela que estão relacionados à linha atual.

Por exemplo, suponha que você crie uma coluna calculada, =[Freight] + [Tax],

, que soma duas colunas da mesma tabela. Essa fórmula se comporta como fórmulas em uma tabela do Excel que automaticamente referenciam valores da mesma linha. Observe que as tabelas são diferentes dos intervalos: você não pode referenciar um valor da linha antes da linha atual usando notação de intervalo e não pode referenciar nenhum único valor arbitrário em uma tabela ou célula. Você sempre deve trabalhar com tabelas e colunas.

O contexto de linha segue automaticamente as relações entre tabelas para determinar quais linhas nas tabelas relacionadas estão associadas à linha atual.

Por exemplo, a fórmula a seguir usa a função RELATED para buscar um valor de imposto de uma tabela relacionada, com base na região para a qual o pedido foi enviado. O valor do imposto é determinado com o uso do valor para a região na tabela atual, pesquisando-se a região na tabela relacionada e obtendo-se o valor do imposto para essa região na tabela relacionada.

= [Freight] + RELATED('Region'[TaxRate])

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

Contexto de várias linhas

Além disso, a DAX inclui várias funções que iteram cálculos em uma tabela. Essas funções podem ter várias linhas atuais e contextos de linha atuais. Em termos de programação, você pode criar fórmulas que se repitam em um loop interno e externo.

Por exemplo, vamos supor que a pasta de trabalho contenha uma tabela Products e uma tabela Sales. Talvez você queira percorrer toda a tabela de vendas, que contém várias transações que envolvem vários produtos, e encontrar a maior quantidade solicitada de cada produto em qualquer transação.

No Excel, este cálculo requer uma série de resumos intermediários que teriam que ser recriados se os dados fossem alterados. Se você for um usuário avançado do Excel, talvez possa criar fórmulas de matriz que fariam o trabalho. Alternativamente, em um banco de dados relacional, você pode gravar subseleções aninhadas.

No entanto, com a DAX você pode criar uma única fórmula que retorna o valor correto e os resultados são atualizados automaticamente a qualquer momento em que dados sejam adicionados às tabelas.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Para obter detalhes desta fórmula, consulte a Função EARLIER.

Em resumo, a função EARLIER armazena o contexto de linha da operação que precedeu a operação atual. O tempo todo, a função armazena na memória dois conjuntos de contexto: um deles representa a linha atual do loop interno da fórmula, e o outro representa a linha atual do loop externo da fórmula. A DAX alimenta automaticamente valores entre os dois loops para que você possa criar agregações complexas.

Início da Página

Contexto de consulta

Contexto de consulta refere-se ao subconjunto de dados que são recuperados implicitamente para uma fórmula. Quando você solta uma medida ou outro campo de valor em uma célula em uma tabela dinâmica, o mecanismo 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 torna os cálculos necessários para preencher cada célula na tabela dinâmica. O conjunto de dados que são recuperados é o contexto de consulta para cada célula.

Como o contexto pode ser alterado de acordo com o local em que você coloca a fórmula, os resultados da fórmula também são alterados, dependendo se você usa a fórmula em uma Tabela Dinâmica com muitos agrupamentos e filtros ou em uma coluna calculada sem filtros e contexto mínimo.

Por exemplo, suponhamos que você crie esta fórmula simples que soma os valores na coluna Profitda tabela de Vendas: =SUM('Sales'[Profit]).

Se você usar essa fórmula em uma coluna calculada na tabela Vendas, os resultados da fórmula serão os mesmos para toda a tabela, porque o contexto da consulta da fórmula sempre será todo o conjunto de dados da tabela Vendas. Seus resultados terão lucro para todas as regiões, todos os produtos, todos os anos etc.

No entanto, em geral você não deseja ver o mesmo resultado centenas de vezes, mas deseja obter o lucro de um determinado ano, um país ou região específica, um certo produto ou uma combinação desses itens e depois obter um total geral.

Em uma tabela dinâmica, é fácil alterar contexto adicionando ou removendo cabeçalhos de coluna e linha e adicionando ou removendo segmentações de dados. Você pode criar uma fórmula como exibido acima, em uma medida e arraste-a para uma tabela dinâmica. Sempre que você adicionar títulos de coluna ou linha na tabela dinâmica, você altera o contexto de consulta no qual a medida é avaliada. Operações de filtragem e divisão também afetam o contexto. Portanto, a mesma fórmula, usada em uma tabela dinâmica, é avaliada em um contexto de consulta diferente para cada célula.

Início da Página

Contexto de filtro

O contexto de filtro é adicionado quando você especifica restrições de filtro no conjunto de valores permitido em uma coluna ou tabela, usando argumentos de uma fórmula. O contexto de filtro é aplicado sobre outros contextos, como o contexto de linha ou o contexto de consulta.

Por exemplo, uma tabela dinâmica calcula seus valores para cada célula com base em títulos de linha e coluna, conforme descrito na seção anterior no contexto de consulta. No entanto, dentro do medidas ou colunas calculadas que você adicionar à tabela dinâmica, você pode especificar expressões de filtro para controlar os valores que são usados pela fórmula. Você pode também seletivamente limpar os filtros nas colunas específicas.

Para obter mais informações sobre como criar filtros em fórmulas, consulte Funções de filtro (DAX).

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

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

Portanto, você deve examinar a definição de medidas ou fórmulas usadas em uma tabela dinâmica para que você está ciente de contexto de filtro quando interpretação dos resultados de fórmulas.

Início da Página

Determinando o contexto em fórmulas

Quando uma fórmula é criada, o Power Pivot para Excel  verifica primeiro a sintaxe geral e, em seguida, os nomes de colunas e tabelas que você fornece em relação a possíveis colunas e tabelas no contexto atual. Se o Power Pivot não puder localizar as colunas e tabelas especificadas pela fórmula, um erro será exibido.

O contexto é determinado conforme descrito nas seções anteriores, usando as tabelas disponíveis na pasta de trabalho, qualquer relacionamento entre tabela e qualquer filtro que tenha sido aplicado.

Por exemplo, se você tiver importado alguns dados em uma nova tabela e ainda não tiver aplicado filtros, todo o conjunto de colunas da tabela fará parte do contexto atual. Se você tiver várias tabelas vinculadas por relações e estiver trabalhando em uma Tabela Dinâmica filtrada adicionando títulos de coluna e usando Segmentações de Dados, o contexto incluirá as tabelas relacionadas e todos os filtros nos dados.

O contexto é um conceito avançado que também pode dificultar a solução de erros de fórmulas. É recomendável começar com fórmulas simples e relações para ver como o contexto funciona e depois começar a fazer experiências com fórmulas simples em Tabelas Dinâmicas. A seção a seguir também fornece alguns exemplos de como as fórmulas usam tipos diferentes de contexto para retornar resultados dinamicamente.

Exemplos de contexto em fórmulas

  • A função RELATED expande o contexto da linha atual para incluir valores em uma coluna relacionada. Isso permite a execução de pesquisas. O exemplo neste tópico ilustra a manipulação entre a filtragem e o contexto de linha.

  • A função FILTER permite especificar as linhas a serem incluídas no contexto atual. Os exemplos neste tópico também ilustram como inserir filtros em outras funções que executam agregações.

  • A função ALL define o contexto dentro de uma fórmula. Você pode usá-la para anular filtros aplicados como resultado do contexto de consulta.

  • A função ALLEXCEPT permite remover todos os filtro, exceto um especificado por você. Os dois tópicos incluem exemplos que orientam você durante a criação de fórmulas e a compreensão dos contextos complexos.

  • As funções EARLIER e EARLIEST permitem percorrer em loop as tabelas que executam cálculos, enquanto referencia um valor de um loop interno. Se você estiver familiarizado com o conceito de recursão e com loops internos e externos, apreciará o poder proporcionado pelas funções EARLIER e EARLIEST. Se você não for experiente com esses conceitos, siga as etapas no exemplo atentamente para ver como os contextos internos e externos são usados ao fazer cálculos.

Início da Página

Integridade referencial

Esta seção discute alguns conceitos avançados relacionados a valores não encontrados em tabelas do Power Pivot conectadas por meio de relações. Ela pode ser útil se você tiver pastas de trabalho com várias tabelas e fórmulas complexas e precisar de ajuda para compreender os resultados.

Se você ainda não conhece os conceitos de dados relacionais, é recomendável que primeiro leia o tópico introdutório, Visão geral de relações.

Integridade referencial e Relações do Power Pivot

O Power Pivot não exige que a integridade referencial seja imposta entre duas tabelas para definir uma relação válida. Em vez disso, uma linha em branco é criada na extremidade “um” de cada relação de um para vários e é usada para lidar com todas as linhas não correspondentes da tabela relacionada. Ela se comporta efetivamente como uma junção externa do SQL.

Nas Tabelas Dinâmicas, se você agrupar dados pelo lado um da relação, os dados não correspondentes do lado muitos da relação serão agrupados e incluídos em totais com um cabeçalho de linha em branco. O título em branco é um equivalente do "membro desconhecido".

Noções básicas sobre o membro desconhecido

O conceito de membro desconhecido deverá ser familiar se você já trabalhou com sistemas de banco de dados multidimensionais, como o SQL Server Analysis Services. Se o termo for novo para você, o exemplo a seguir explicará o que é membro desconhecido é como ele afeta os cálculos.

Suponha que você esteja criando um cálculo que some as vendas mensais de cada loja, mas uma coluna da tabela Sales esteja sem um valor para o nome da loja. Considerando-se que as tabelas de Store e Sales estão conectadas pelo nome da loja, o que você espera que aconteça na fórmula? Como o grupo de Tabelas Dinâmicas deve agrupar ou exibir os valores de vendas que não estão relacionados a uma loja existente?

Esse problema é comum em data warehouses, onde tabelas grandes de dados de fato devem ser logicamente relacionadas a tabelas de dimensão que contêm informações sobre lojas, regiões e outros atributos usados para categorizar e calcular fatos. Para resolver o problema, quaisquer novos fatos não relacionados a uma entidade existente são atribuídos temporariamente ao membro desconhecido. Isso porque fatos não relacionados parecerão agrupados em uma Tabela Dinâmica com um título em branco.

Tratamento de valores em branco X linha em branco

Os valores em branco são diferentes das linhas em branco adicionadas para acomodar o membro desconhecido. O valor em branco é um valor especial usado para representar nulos, cadeias de caracteres vazios e outros valores não encontrados. Para obter mais informações sobre um valor em branco, assim como outros tipos de dados DAX, consulte Tipos de dados com suporte em Modelos de Dados.

Início da Página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×