ALL

Retorna todas as linhas de uma tabela ou todos os valores de uma coluna, ignorando todos os filtros que estiverem aplicados. Essa função é útil para limpar filtros e criar cálculos em todas as linhas em uma tabela.

Sintaxe

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )  

Parâmetros

Termo Definição
tabela A tabela da qual você deseja limpar os filtros.
coluna A coluna da qual você deseja limpar os filtros.

O argumento para a função ALL deve ser uma referência a uma tabela base ou uma referência a uma coluna base. Você não pode usar expressões de tabela nem expressões de coluna com a função ALL.

Valor retornado

A tabela ou coluna com filtros removidos.

Comentários

  • Essa função não é usada por si só, mas serve como uma função intermediária que pode ser usada para alterar o conjunto de resultados em que algum outro cálculo é executado.

  • O comportamento normal das expressões DAX que contêm a função ALL() será ignorar os filtros que forem aplicados. No entanto, há alguns cenários em que esse não é o caso devido à auto-exist, uma tecnologia DAX que otimiza a filtragem para reduzir a quantidade de processamento necessária para determinadas consultas DAX. A auto-exist e ALL() fornecem resultados inesperados, por exemplo, durante a filtragem em duas ou mais colunas da mesma tabela (como ao usar segmentações) e quando há uma medida na mesma tabela que usa ALL(). Nesse caso, a auto-exist mesclará vários filtros em um e filtrará apenas as combinações de valores existentes. Por causa dessa mesclagem, a medida será calculada com base nas combinações existentes de valores e o resultado será baseado em valores filtrados em vez de em todos os valores, como seria esperado. Para saber mais sobre a auto-exist e o efeito dela sobre os cálculos, confira o artigo do Microsoft MVP, Alberto Ferrari, Compreensão da Auto-Exist da DAX, em sql.bi.com.

  • A tabela a seguir descreve como você pode usar as funções ALL e ALLEXCEPT em cenários diferentes.

    Função e uso Descrição
    ALL() Remove todos os filtros em todos os lugares. A função ALL() só pode ser usada para limpar filtros, mas não para retornar uma tabela.
    ALL(Table) Remove todos os filtros da tabela especificada. Na verdade, ALL(table) retorna todos os valores na tabela, removendo todos os filtros do contexto que, de outra forma, poderiam ter sido aplicados. Essa função é útil quando você está trabalhando com muitos níveis de agrupamento e deseja criar um cálculo que gere uma taxa de um valor agregado para o valor total. O primeiro exemplo demonstra esse cenário.
    ALL (Column[, Column[, …]]) Remove todos os filtros das colunas especificadas na tabela. Todos os outros filtros em outras colunas na tabela ainda se aplicam. Todos os argumentos de coluna devem vir da mesma tabela. A variante ALL(Column) é útil quando você deseja remover os filtros de contexto para uma ou mais colunas específicas e manter todos os outros filtros de contexto. O segundo e o terceiro exemplos demonstram esse cenário.
    ALLEXCEPT(Table, Column1 [,Column2]...) Remove todos os filtros de contexto na tabela, exceto filtros aplicados às colunas especificadas. Esse é um atalho conveniente para situações em que você deseja remover os filtros em muitas colunas, mas não todas, em uma tabela.
  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo 1

Calcular a taxa de vendas de categoria para o total de vendas

Suponha que você queira encontrar a quantidade de vendas da célula atual, em sua Tabela Dinâmica, dividida pelo total de vendas para todos os revendedores. Para garantir que o denominador seja o mesmo, independentemente de como o usuário da Tabela Dinâmica esteja filtrando ou agrupando os dados, defina uma fórmula que use ALL para criar o total geral correto.

A tabela a seguir mostra os resultados quando uma nova medida, Taxa de Todas as Vendas do Revendedor, é criada usando a fórmula mostrada na seção de código. Para ver como isso funciona, adicione o campo, CalendarYear, à área Rótulos de Linha da Tabela Dinâmica e adicione o campo, ProductCategoryName, à área Rótulos de Coluna. Em seguida, arraste a medida Taxa de Todas as Vendas do Revendedor para a área Valores da Tabela Dinâmica. Para exibir os resultados como porcentagens, use os recursos de formatação do Excel para aplicar uma formatação de número percentual às células que contêm a medida.

Rótulos de linha Acessórios Bikes Clothing Componentes Grande Total
2005 0,02% 9,10% 0,04% 0,75% 9,91%
2006 0,11% 24,71% 0,60% 4,48% 29,90%
2007 0,36% 31,71% 1,07% 6,79% 39,93%
2008 0,20% 16,95% 0,48% 2,63% 20,26%
Grande Total 0,70% 82,47% 2,18% 14,65% 100,00%

Fórmula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

A fórmula é construída da seguinte maneira:

  1. O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual na Tabela Dinâmica, com filtros de contexto aplicados em CalendarYear e ProductCategoryName.

  2. Para o denominador, você começa especificando uma tabela, ResellerSales_USD e usa a função ALL para remover todos os filtros de contexto na tabela.

  3. Em seguida, você usa a função SUMX para somar os valores na coluna ResellerSales_USD[SalesAmount_USD]. Em outras palavras, você obtém a soma de ResellerSales_USD[SalesAmount_USD] para todas as vendas de revendedores.

Exemplo 2

Calcular a Taxa de Vendas do Produto para o Total de Vendas Até o Ano Atual

Suponha que você queira criar uma tabela mostrando o percentual de vendas comparado com os anos para cada categoria de produto (ProductCategoryName). Para obter o percentual de cada ano em relação a cada valor de ProductCategoryName, você precisa dividir a soma de vendas para esse ano e categoria de produto específico pela soma de vendas da mesma categoria de produto em todos os anos. Em outras palavras, você deseja manter o filtro em ProductCategoryName, mas remover o filtro no ano ao calcular o denominador do percentual.

A tabela a seguir mostra os resultados quando uma nova medida, Ano de Vendas do Revendedor, é criada usando a fórmula mostrada na seção de código. Para ver como isso funciona, adicione o campo CalendarYear à área Rótulos de Linha de uma Tabela Dinâmica e adicione o campo ProductCategoryName à área Rótulos de Coluna. Para exibir os resultados como porcentagens, use os recursos de formatação do Excel para aplicar um formato de número percentual às células que contêm a medida, Ano de Vendas do Revendedor.

Rótulos de linha Acessórios Bikes Clothing Componentes Grande Total
2005 3,48% 11,03% 1,91% 5,12% 9,91%
2006 16,21% 29,96% 27,29% 30,59% 29,90%
2007 51,62% 38,45% 48,86% 46,36% 39,93%
2008 28,69% 20,56% 21,95% 17,92% 20,26%
Grande Total 100,00% 100,00% 100,00% 100,00% 100,00%

Fórmula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

A fórmula é construída da seguinte maneira:

  1. O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual na Tabela Dinâmica, com filtros de contexto aplicados nas colunas CalendarYear e ProductCategoryName.

  2. Para o denominador, você remove o filtro existente em CalendarYear usando a função ALL(Column). Isso calcula a soma sobre as linhas restantes na tabela ResellerSales_USD depois de aplicar os filtros de contexto existentes dos rótulos de coluna. O efeito líquido é que, para o denominador, a soma é calculada sobre o ProductCategoryName selecionado (o filtro de contexto implícito) e para todos os valores em Year.

Exemplo 3

Calcular a contribuição de categorias de produtos para o total de vendas por ano

Suponha que você queira criar uma tabela que mostre o percentual de vendas para cada categoria de produto ano a ano. Para obter o percentual para cada categoria de produto em um ano específico, você precisa calcular a soma das vendas para essa categoria de produto específica (ProductCategoryName) no ano n e dividir o valor resultante pela soma de vendas do ano n em todas as categorias de produtos. Em outras palavras, você deseja manter o filtro no ano, mas remover o filtro em ProductCategoryName ao calcular o denominador do percentual.

A tabela a seguir mostra os resultados quando uma nova medida, CategoryName de Vendas do Revendedor, é criada usando a fórmula mostrada na seção de código. Para ver como isso funciona, adicione o campo, CalendarYear, à área Rótulos de Linha da Tabela Dinâmica e adicione o campo, ProductCategoryName, à área Rótulos de Coluna. Em seguida, adicione a nova medida à área Valores da Tabela Dinâmica. Para exibir os resultados como porcentagens, use os recursos de formatação do Excel para aplicar um formato de número percentual às células que contêm a nova medida, CategoryName de Vendas do Revendedor.

Rótulos de linha Acessórios Bikes Clothing Componentes Grande Total
2005 0,25% 91,76% 0,42% 7,57% 100,00%
2006 0,38% 82,64% 1,99% 14,99% 100,00%
2007 0,90% 79,42% 2,67% 17,01% 100,00%
2008 0,99% 83,69% 2,37% 12,96% 100,00%
Grande Total 0,70% 82,47% 2,18% 14,65% 100,00%

Fórmula

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

A fórmula é construída da seguinte maneira:

  1. O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual na Tabela Dinâmica, com filtros de contexto aplicados nos campos CalendarYear e ProductCategoryName.

  2. Para o denominador, use a função ALL(Column) para remover o filtro em ProductCategoryName e calcular a soma sobre as linhas restantes na tabela ResellerSales_USD depois de aplicar os filtros de contexto existentes dos rótulos de linha. O efeito líquido é que, para o denominador, a soma é calculada sobre o ano selecionado (o filtro de contexto implícito) e para todos os valores de ProductCategoryName.

Funções de filtro
Função ALL
Função ALLEXCEPT
Função FILTER