ALL

Devolve todas as linhas numa tabela ou todos os valores numa coluna, ignorando quaisquer filtros que possam ter sido aplicados. Esta função é útil para limpar filtros e criar cálculos em todas as linhas de uma tabela.

Sintaxe

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

Parâmetros

Termo Definição
table A tabela na qual quer limpar filtros.
coluna A coluna na qual quer limpar filtros.

O argumento da função ALL tem de ser uma referência a uma tabela base ou uma referência a uma coluna base. Não pode utilizar expressões de tabela ou expressões de coluna com a função ALL.

Valor devolvido

A tabela ou coluna com os filtros removidos.

Observações

  • Esta função não é utilizada isoladamente. Serve como uma função intermediária que pode ser utilizada para alterar o conjunto de resultados através do qual é realizado outro cálculo.

  • O comportamento normal das expressões DAX com a função ALL() é que quaisquer filtros aplicados serão ignorados. No entanto, existem alguns cenários em que tal não acontece devido à existência automática, uma tecnologia DAX que otimiza a filtragem de forma a reduzir a quantidade de processamento necessária para determinadas consultas DAX. Um exemplo em que a existência automática e a função ALL() fornecem resultados inesperados é quando são filtradas duas ou mais colunas da mesma tabela (como quando são utilizadas segmentações) e existe uma medida nessa mesma tabela que utiliza ALL(). Neste caso, a existência automática irá intercalar os vários filtros num só e irá filtrar apenas as combinações de valores existentes. Devido a esta intercalação, a medida será calculada com base nas combinações de valores existentes e o resultado será baseado nos valores filtrados, e não em todos os valores, como esperado. Para saber mais sobre a existência automática e o seu efeito nos cálculos, veja o artigo Understanding DAX Auto-Exist (Compreender a Existência Automática do DAX) do MVP da Microsoft Alberto Ferrari em sql.bi.com.

  • A seguinte tabela descreve como pode utilizar as funções ALL e ALLEXCEPT em diferentes cenários.

    Função e utilização Descrição
    ALL() Remove todos os filtros em todo o lado. Só pode utilizar ALL() para limpar filtros e não para devolver uma tabela.
    ALL(Table) Remove todos os filtros da tabela especificada. Na verdade, a função ALL(Table) devolve todos os valores na tabela, removendo todos os filtros do contexto que, de outra forma, poderiam ter sido aplicados. Esta função é útil quando está a trabalhar com vários níveis de agrupamento e quer criar um cálculo que cria um rácio de um valor agregado para o valor total. O primeiro exemplo demonstra este cenário.
    ALL (Column[, Column[, …]]) Remove todos os filtros das colunas especificadas na tabela. Todos os outros filtros noutras colunas da tabela continuam a aplicar-se. Todos os argumentos de coluna têm de ser provenientes da mesma tabela. A variante ALL(Column) é útil quando quer remover os filtros de contexto de uma ou mais colunas específicas e manter todos os outros filtros de contexto. O segundo e terceiro exemplos demonstram este cenário.
    ALLEXCEPT(Table, Column1 [,Column2]...) Remove todos os filtros de contexto na tabela, exceto filtros aplicados às colunas especificadas. Este é um atalho conveniente para situações em que pretende remover os filtros em muitas, mas não em todas, as colunas de uma tabela.
  • Esta função não é suportada para ser utilizada no modo DirectQuery quando é utilizada em colunas calculadas ou regras de segurança ao nível d alinha (RLS).

Exemplo 1

Calcular o rácio de Categoria de Vendas para o Total de Vendas

Imagine que pretende determinar o quociente entre o valor das vendas da célula atual, na sua tabela dinâmica, e o total de vendas de todos os revendedores. Para garantir que o denominador é o mesmo independentemente da forma como o utilizador da tabela dinâmica está a filtrar ou a agrupar os dados, tem de definir uma fórmula que utilize ALL para criar o total geral correto.

A tabela que se segue mostra os resultados quando uma nova medida, All Reseller Sales Ratio, é criada através da fórmula mostrada na secção de código. Para ver como isto funciona, adicione o campo CalendarYear à área Row Labels da tabela dinâmica e adicione o campo ProductCategoryName à área Column Labels. Em seguida, arraste a medida All Reseller Sales Ratio para a área Values da tabela dinâmica. Para ver os resultados sob a forma de percentagens, utilize as funcionalidades de formatação do Excel para aplicar uma formatação de número de percentagem às células que contêm a medida.

Row Labels Acessórios Bicicletas Clothing Components Grand 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%
Grand 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 conforme se segue:

  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. No caso do denominador, começa por especificar uma tabela, ResellerSales_USD e, depois, tem de utilizar a função ALL para remover todos os filtros de contexto existentes na tabela.

  3. Em seguida, tem de utilizar a função SUMX para somar os valores na coluna ResellerSales_USD[SalesAmount_USD]. Por outras palavras, obtém a soma de ResellerSales_USD[SalesAmount_USD] para todas as vendas do revendedor.

Exemplo 2

Calcular o Rácio de Vendas de Produto para o Total de Vendas no Ano Atual

Imagine que pretende criar uma tabela que mostre a percentagem de vendas comparada ao longo dos anos para cada categoria de produto (ProductCategoryName). Para obter a percentagem de cada ano em relação a cada valor de ProductCategoryName, tem de dividir a soma de vendas desse ano específico e a categoria de produto pela soma das vendas da mesma categoria de produto relativas a todos os anos. Por outras palavras, quer manter o filtro em ProductCategoryName, mas remover o filtro no ano quando calcular o denominador da percentagem.

A tabela que se segue mostra os resultados quando uma nova medida, Reseller Sales Year, é criada através da fórmula mostrada na secção de código. Para ver como isto funciona, adicione o campo CalendarYear à área Row Labels de uma tabela dinâmica e adicione o campo ProductCategoryName à área Column Labels. Para ver os resultados sob a forma de percentagens, utilize as funcionalidades de formatação do Excel para aplicar uma formatação de número de percentagem às células que contêm a medida Reseller Sales Year.

Etiquetas de linha Acessórios Bicicletas Clothing Components Grand 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%
Grand 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 conforme se segue:

  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. No caso do denominador, tem de remover o filtro existente em CalendarYear com recurso à função ALL(Column). Isto calcula a soma das linhas restantes na tabela ResellerSales_USD depois de aplicar os filtros de contexto existentes das etiquetas 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 Produto para o Total de Vendas Por Ano

Imagine que pretende criar uma tabela que mostra a percentagem de vendas anuais para cada categoria de produto. Para obter a percentagem para cada categoria de produto num ano específico, tem de calcular a soma das vendas para essa categoria de produto específica (ProductCategoryName) no ano n e dividir o valor resultante pela soma das vendas do ano n sobre todas as categorias de produto. Por outras palavras, quer manter o filtro no ano, mas remover o filtro em ProductCategoryName quando calcular o denominador da percentagem.

A tabela que se segue mostra os resultados quando uma nova medida, Reseller Sales CategoryName, é criada através da fórmula mostrada na secção de código. Para ver como isto funciona, adicione o campo CalendarYear à área Row Labels da tabela dinâmica e adicione o campo ProductCategoryName à área Column Labels. Em seguida, adicione a nova medida à área Values da tabela dinâmica. Para ver os resultados sob a forma de percentagens, utilize as funcionalidades de formatação do Excel para aplicar uma formatação de número de percentagem às células que contêm a nova medida Reseller Sales CategoryName.

Row Labels Acessórios Bicicletas Clothing Components Grand 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%
Grand 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 conforme se segue:

  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. No caso do denominador, tem de utilizar 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 das etiquetas de linha. O efeito líquido é que, para o denominador, a soma é calculada sobre o Year selecionado (o filtro de contexto implícito) e para todos os valores de ProductCategoryName.

Veja também

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