Função ALL
Retorna todas as linhas de uma tabela ou todos os valores de uma coluna, ignorando qualquer filtro que possa ter sido aplicado. Esta 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 |
---|---|
table |
A tabela cujos filtros você deseja limpar. |
column |
A coluna cujos filtros você deseja limpar. |
O argumento para a função ALL deve ser uma referência para uma tabela base ou uma referência para uma coluna base. Não é possível usar expressões de tabela ou de coluna com a função ALL.
Valor de retorno
A tabela ou a coluna sem filtros.
Comentários
Essa função não é usada sozinha, 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.
<Status do tópico:> algumas informações neste tópico são de pré-lançamento e estão sujeitas a mudanças em versões futuras. As informações de pré-lançamento descrevem novos recursos ou alterações em recursos existentes no Microsoft SQL Server 2012 Service Pack 1 (SP1) Community Technology Preview 4 (CTP4). Nos casos em que [Coluna] é marcado como a coluna Data usando Marcar como Tabela de Data
Como descrito na tabela a seguir, é possível usar as funções ALL e ALLEXCEPT em cenários diferentes.
Função e uso |
Descrição |
---|---|
ALL(Table) |
Remove todos os filtros da tabela especificada. Na verdade, ALL(Table) retorna todos os valores da tabela, removendo todos os filtros do contexto que possam ter sido aplicados. Essa função é útil quando você está trabalhando com vários níveis de agrupamento e deseja criar um cálculo que crie uma razão 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 de outras colunas da 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 de 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. Trata-se de um atalho prático para situações nas quais você deseja remover os filtros em muitas, mas não em todas, colunas de uma tabela. |
Exemplo: calcular a taxa de vendas da categoria para o total de vendas
Descrição
Suponhamos que você queira localizar o volume de vendas da célula atual, na Tabela Dinâmica, dividido pelo total de vendas de todos os revendedores. Para garantir que o denominador seja o mesmo, independentemente de como o usuário da Tabela Dinâmica possa estar 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, Toda a Taxa de Vendas do Revendedor, é criada usando-se a fórmula mostrada na seção do código. Para ver como isso funciona, adicione o campo CalendarYear à área Rótulos de Linha da Tabela Dinâmica e o campo ProductCategoryName à área Rótulos de Coluna. Em seguida, arraste a medida, Toda a Taxa de 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 de porcentagem às células que contenham a medida.
All Reseller Sales |
Rótulos de Coluna |
|
|
|
|
---|---|---|---|---|---|
Rótulos de Linha |
Acessórios |
Bikes |
Roupas |
Componentes |
Total Geral |
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% |
Total Geral |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
Código
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Comentários
A fórmula é construída da seguinte maneira:
O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual da Tabela Dinâmica, com filtros de contexto aplicados a CalendarYear e ProductCategoryName.
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.
Em seguida, você usa a função SUMX para somar os valores da coluna ResellerSales_USD[SalesAmount_USD]. Em outras palavras, você obtém a soma de ResellerSales_USD[SalesAmount_USD] para todas as vendas de revendedores.
Para obter mais informações sobre como criar medidas, consulte Criar uma medida em uma Tabela Dinâmica ou em um Gráfico Dinâmico.
Observação |
---|
O exemplo anterior usa as tabelas, ResellerSales_USD, DateTime e ProductCategory, da pasta de trabalho de exemplo DAX. Para obter mais informações sobre exemplos, consulte o artigo sobre como obter dados de exemplo. |
Exemplo: calcular taxa de vendas de produto para totalizar vendas ao longo do ano atual
Descrição
Suponhamos que você queira criar uma tabela que mostre a porcentagem de vendas em comparação com os anos de cada categoria de produto (ProductCategoryName). Para obter a porcentagem referente a cada ano de um valor de ProductCategoryName, você precisa dividir a soma de vendas referente a esse ano e categoria de produto pela soma de vendas da mesma categoria de produto ao longo de todos os anos. Em outras palavras, você deseja manter o filtro em ProductCategoryName, mas remover o filtro do ano ao calcular o denominador da porcentagem.
A tabela a seguir mostra os resultados quando uma nova medida, Ano de Vendas do Revendedor, é criada usando-se a fórmula mostrada na seção do código. Para ver como isso funciona, adicione o campo CalendarYear à área Rótulos de Linha da Tabela Dinâmica e 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 de porcentagem às células que contenham a medida, Reseller Sales Year.
Reseller Sales Year |
Rótulos de Coluna |
|
|
|
|
---|---|---|---|---|---|
Rótulos de Linha |
Acessórios |
Bikes |
Roupas |
Componentes |
Total Geral |
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% |
Total Geral |
100.00% |
100.00% |
100.00% |
100.00% |
100.00% |
Código
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Comentários
A fórmula é construída da seguinte maneira:
O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual da tabela dinâmica, com filtros de contexto aplicados nas colunas CalendarYear e ProductCategoryName.
Para o denominador, você remove o filtro existente em CalendarYear usando-se a função ALL(Column). Isso calcula a soma das linhas restantes na tabela ResellerSales_USD, depois de aplicar os filtros de contexto existentes dos rótulos de coluna. O efeito prático é que, para o denominador, a soma seja calculada a partir do ProductCategoryName selecionado (o filtro de contexto implícito) e todos os valores em Year.
Para obter mais informações sobre como criar medidas, consulte Criar uma medida em uma Tabela Dinâmica ou em um Gráfico Dinâmico.
Observação |
---|
Esse exemplo usa as tabelas, ResellerSales_USD, DateTime e ProductCategory, da pasta de trabalho de exemplo DAX. Para obter mais informações sobre exemplos, consulte o artigo sobre como obter dados de exemplo. |
Exemplo: calcular contribuição de categorias de produto para o total de vendas por ano
Descrição
Suponhamos que você queira criar uma tabela que mostre a porcentagem de vendas de cada categoria de produto, ano a ano. Para obter a porcentagem de cada categoria de produto em um determinado ano, você precisa calcular a soma de vendas dessa categoria de produto específica (ProductCategoryName) em n anos e, em seguida, dividir o valor resultante pela soma de vendas de n anos de todas as categorias de produto. Em outras palavras, você deseja manter o filtro em um ano, mas removê-lo em ProductCategoryName, ao calcular o denominador da porcentagem.
A tabela a seguir mostra os resultados quando uma nova medida, Nome da Categoria de Vendas do Revendedor, é criada usando-se a fórmula mostrada na seção do código. Para ver como isso funciona, adicione o campo CalendarYear à área Rótulos de Linha da Tabela Dinâmica e 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 de porcentagem às células que contenham a nova medida, Nome da Categoria de Vendas do Revendedor.
Reseller Sales CategoryName |
Rótulos de Coluna |
|
|
|
|
---|---|---|---|---|---|
Rótulos de Linha |
Acessórios |
Bikes |
Roupas |
Componentes |
Total Geral |
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% |
Total Geral |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
Código
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Comentários
A fórmula é construída da seguinte maneira:
O numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), é a soma dos valores em ResellerSales_USD[SalesAmount_USD] para a célula atual da Tabela Dinâmica, com filtros de contexto aplicados aos campos, CalendarYear e ProductCategoryName.
Para o denominador, você usa a função, ALL(Column), para remover o filtro em ProductCategoryName e calcula a soma nas linhas restantes da tabela ResellerSales_USD, depois de aplicar os filtros de contexto existentes dos rótulos de linha. O efeito prático é que, para o denominador, a soma é calculada em relação ao ano selecionado (o filtro de contexto implícito) e para todos os valores de ProductCategoryName.
Para obter mais informações sobre como criar medidas, consulte Criar uma medida em uma Tabela Dinâmica ou em um Gráfico Dinâmico.
Observação |
---|
Esse exemplo usa as tabelas, ResellerSales_USD, DateTime e ProductCategory, da pasta de trabalho de exemplo DAX. Para obter mais informações sobre exemplos, consulte o artigo sobre como obter dados de exemplo. |