Filtrar Dados em Fórmulas 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.

Esta secção descreve como criar filtros em fórmulas de expressões de análise de dados (DAX). Pode criar filtros em fórmulas, para restringir os valores da origem de dados que é utilizadas em cálculos. Pode fazê-lo ao especificar uma tabela como uma entrada para a fórmula e, em seguida, definir uma expressão de filtro. A expressão de filtro fornecidos é utilizada para os dados da consulta e devolver apenas um subconjunto dos dados de origem. O filtro é aplicado dinamicamente sempre que atualizar os resultados da fórmula, consoante o contexto atual dos seus dados.

Neste artigo

Criar um Filtro numa Tabela utilizada numa Fórmula

Filtros que Removem Duplicados

Como o Contexto Afeta os Filtros

Remover Filtros

Substituir Todos os Filtros com a Função ALL

Substituir Filtros Específicos com a Função ALLEXCEPT

Criar um Filtro numa Tabela utilizada numa Fórmula

Pode aplicar filtros em fórmulas que utilizam uma tabela como entrada. Em vez de introduzir um nome de tabela, utilize a função FILTER para definir um subconjunto de linhas da tabela especificada. Esse subconjunto é transmitido para outra função, para operações como agregações personalizadas.

Por exemplo, imagine que tem uma tabela de dados que contém informações sobre encomendas de revendedores e quer calcular o montante de vendas de cada revendedor. No entanto, só pretende mostrar o montante de vendas dos revendedores que venderam várias unidades dos produtos de valor mais elevado. A fórmula seguinte, baseada no livro de exemplo do DAX, mostra um exemplo do modo como pode criar este cálculo utilizando um filtro:

= SUMX (
     FILTRO ('Vendasderevendedor', 'Vendasderevendedor_usd' [Quantidade] > 5 &&
     'Vendasderevendedor' [Custopadrãodoproduto] > 100),
     'Vendasderevendedor_usd' [Montantedasvendas]
     )

  • A primeira parte da fórmula especifica uma das funções de agregação do PowerPivot, que considera uma tabela como argumento. A função SUMX calcula uma soma sobre uma tabela.

  • A segunda parte da fórmula, FILTER(table, expression),, indica à função SUMX que dados utilizar. A função SUMX requer uma tabela ou expressão que resulte numa tabela. Aqui, em vez de utilizar os dados existentes numa tabela, utiliza a função FILTER para especificar que linhas da tabela são utilizadas.

    A expressão de filtro tem duas partes: a primeira parte indica o nome da tabela ao qual o filtro é aplicado. A segunda parte define uma expressão a utilizar como condição de filtro. Neste caso, está a filtrar pelos revendedores que venderam mais de 5 unidades e produtos que custam mais de €100. O operador, &&, é um operador AND lógico, que indica que ambas as partes da condição têm de ser verdadeiras para a linha pertencer ao subconjunto filtrado.

  • A terceira parte da fórmula indica à função SUMX que valores devem ser somados. Neste caso está a utilizar apenas o montante das vendas.

    Nota que funções como filtro, que devolvem uma tabela, nunca devolvem diretamente a tabela ou as linhas, mas são sempre incorporado na outra função. Para obter mais informações sobre o filtro e outras funções utilizadas para filtragem, incluindo exemplos mais, consulte Funções de filtro (DAX).

    Nota: A expressão de filtro é afetada pelo contexto em que é utilizada. Por exemplo, se utilizar um filtro numa medida e a medida for utilizada numa Tabela Dinâmica ou PivotChart, o subconjunto de dados devolvido poderá ser afetado por filtros ou Segmentação de Dados adicionais que o utilizador tenha aplicado na Tabela Dinâmica. Para mais informações sobre contexto, consulte o artigo Contexto em Fórmulas do DAX.

Filtros que Removem Duplicados

Para além de filtrar valores específicos, pode devolver um conjunto único de valores de outra tabela ou coluna. Isto pode ser útil quando pretende contar o número de valores exclusivos numa coluna ou utilizar uma lista de valores exclusivos para outras operações. O DAX fornece duas funções para devolver valores distintos: Função DISTINCT e Função VALUES.

  • A função DISTINCT examina uma coluna única especificada como argumento para a função e devolve uma coluna nova que contém apenas os valores distintos.

  • A função VALUES também devolve uma lista de valores exclusivos, mas também devolve o membro Desconhecido. Esta operação é útil quando utilizar valores de duas tabelas que estão associadas por uma relação e um valor está em falta numa tabela e presente na outra. Para obter mais informações sobre o membro Desconhecido, consulte o artigo Contexto em Fórmulas DAX.

Ambas as funções devolvem uma coluna completa de valores, o que significa que tem de utilizar as funções para obter uma lista de valores que é transmitida para outra função. Por exemplo, poderá utilizar a fórmula seguinte para obter uma lista dos produtos distintos vendidos por um revendedor específico, utilizando a chave de produto exclusiva, e, em seguida, contar os produtos existentes nessa lista utilizando a função COUNTROWS:

=COUNTROWS(DISTINCT('VendasDeRevendedor_USD'[ChaveDeProduto]))

Início da Página

Como o Contexto Afeta os Filtros

Quando adiciona uma fórmula DAX para uma tabela dinâmica ou gráfico dinâmico, podem ser afectados os resultados da fórmula pelo contexto. Se estiver a trabalhar numa tabela PowerPivot, o contexto é a linha atual e os seus valores. Se estiver a trabalhar numa tabela dinâmica ou gráfico dinâmico, o contexto significa que o conjunto ou um subconjunto de dados definido pelo operações como cortar ou filtrar. A estrutura de tabela dinâmica ou PivotChart impõe também os suas próprias contexto. Por exemplo, se criar uma tabela dinâmica que agrupa vendas por região e ano, apenas os dados que se aplica a esses regiões e os anos aparecem na tabela dinâmica. Por conseguinte, quaisquer medidas que adicionar à tabela dinâmica são calculadas no contexto da cabeçalhos de coluna e linha juntamente com quaisquer filtros na fórmula medida.

Para obter mais informações, consulte o artigo Contexto em Fórmulas DAX.

Início da Página

Remover Filtros

Quando trabalhar com fórmulas complexas, poderá pretender saber exatamente quais são os filtros atuais ou poderá pretender modificar a parte do filtro da fórmula. O DAX fornece várias funções que lhe permitem remover filtros e controlar quais as colunas retidas como parte do contexto de filtro atual. Esta secção fornece uma descrição geral do modo como estas funções afetam os resultados existentes numa fórmula.

Substituir Todos os Filtros com a Função ALL

Pode utilizar a função ALL para substituir os filtros previamente aplicados e devolver todas as linhas da tabela à função que está a executar a agregação ou outra operação. Se utilizar uma ou mais colunas, em vez de uma tabela, como argumentos da função ALL, a função ALL devolve todas as linhas, ignorando os filtros de contexto.

Nota: Se estiver familiarizado com a terminologia de bases de dados relacionais, a função ALL pode considerar-se como a geradora da associação externa à esquerda natural de todas as tabelas.

Por exemplo, imagine que tem as tabelas Vendas e Produtos e pretende criar uma fórmula que calcule a soma das vendas do produto atual dividida pelas vendas de todos os produtos. Tem de tomar em consideração o facto de que, se a fórmula for utilizada numa medida, o utilizador da Tabela Dinâmica poderá estar a utilizar uma Segmentação de Dados para filtrar por um produto específico, com o nome do produto nas linhas. Assim, para obter o valor verdadeiro do denominador, independentemente dos filtros ou Segmentação de Dados, terá de adicionar a função ALL para ignorar todos os filtros. A fórmula seguinte é um exemplo de como pode utilizar a função ALL para substituir o efeito de filtros anteriores:

=SUM (Vendas[Montante])/SUMX(Vendas[Montante], FILTER(Vendas, ALL(Produtos)))

  • A primeira parte da fórmula, SUM (Vendas[montante]), calcula o enumerador.

  • A soma toma em consideração o contexto atual, o que significa que o contexto de linha é aplicado se adicionar a fórmula a uma coluna calculada e, se adicionar a fórmula a uma Tabela Dinâmica como uma medida, todos os filtros aplicados à Tabela Dinâmica (no contexto do filtro) são aplicados.

  • A segunda parte da fórmula calcula o denominador. A função ALL substitui os filtros aplicados na tabela Products.

Para mais informações, incluindo exemplos detalhados, consulte Função ALL.

Substituir Filtros Específicos com a Função ALLEXCEPT

A função ALLEXCEPT também substitui os filtros existentes, mas pode especificar que devem ser preservados alguns dos filtros existentes. As colunas que o nome de uma como argumentos para a função ALLEXCEPT especificar quais as colunas que irão continuar a ser filtrada. Se pretender substituir filtros da maioria das colunas, mas não todos, ALLEXCEPT for mais conveniente que não tudo. A função ALLEXCEPT é particularmente útil quando estiver a criar tabelas dinâmicas que podem ser filtradas no número de colunas diferentes e pretender para controlar os valores que são utilizados na fórmula. Para obter mais informações, incluindo um exemplo detalhado de como utilizar ALLEXCEPT numa tabela dinâmica, consulte a Função ALLEXCEPT.

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.

×