ALL
Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual
Retorna all linhas de uma tabela orall o values em uma coluna, ignorando qualquer filters que possa ter sido aplicada. Esta função é útil para limpar filtersand criar cálculos em all as linhas de uma tabela.
Sintaxe
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Parâmetros
Vigência | Definição |
---|---|
table |
A tabela que você deseja limpar filters sobre. |
column |
A coluna na qual você deseja limpar filters. |
O argumento para a função ALL deve ser uma referência a uma tabela base or uma referência a uma coluna base. Não é possível usar expressões de tabela or expressões de coluna com a função ALL.
Regresso value
A tabela or coluna com filters removida.
Comentários
Esta função not é usada por si só, mas serve como uma função intermediária que pode ser usada para alterar o conjunto de resultados sobre o qual algum outro cálculo é realizado.
O comportamento normal para DAX expressões que contêm a função ALL() é que qualquer filters aplicada será ignorada. No entanto, existem alguns cenários em que isso not é o caso por causa da
auto-exist
, uma tecnologia DAX que otimiza a filtragem a fim de reduzir a quantidade de processamento necessária para determinadas consultas DAX. Um exemplo em que andALLde existência automática () fornecem resultados inesperados é quando filtra em duas or mais colunas da mesma tabela (como ao usar segmentações de dados), and há um measure nessa mesma tabela que usa ALL(). Nesse caso, a autoexistência será mesclada os vários filters em um and só filter em combinações existentes de values. Devido a essa mesclagem, o measure será calculado sobre as combinações existentes de valuesand o resultado será baseado em values filtrados em vez de allvalues como esperado. Para saber mais sobre a autoexistência and seus effect sobre cálculos, consulte o artigo Understanding DAX Auto-Exist do Microsoft MVP Alberto Ferrari sobre sql.bi.com.A tabela a seguir descreve como você pode usar as funções ALLandALLEXCEPT em diferentes cenários.
Função and uso Descrição ALL() Remove allfilters em todos os lugares. ALL() só pode ser usado para limpar filters mas not para retornar uma tabela. ALL(Tabela) Remove allfilters da tabela especificada. Em effect, ALL(Tabela) retorna all dos values na tabela, removendo qualquer filters do contexto que, de outra forma, poderia ter sido aplicado. Esta função é útil quando você está trabalhando com muitos níveis de agrupamento and deseja criar um cálculo que cria uma proporção de um value agregado para o total value. O exemplo first demonstra esse cenário. ALL (Coluna[, Coluna[, ...]]) Remove allfilters das colunas especificadas na tabela; all outros filters em outras colunas da tabela ainda se aplicam. All argumentos de coluna devem vir da mesma tabela. A variante ALL(Coluna) é útil quando você deseja remover o filters de contexto de uma or colunas mais específicas and manter all outro contexto filters. Os secondand terceiros exemplos demonstram esse cenário. ALLEXCEPT(Tabela, Coluna1 [,Coluna2]...) Remove allfilters de contexto no exceptfilters da tabela que são aplicados às colunas especificadas. Este é um atalho conveniente para situações em que você deseja remover o filters em muitas, mas notall, colunas em uma tabela. Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).
Exemplo 1
Calculate rácio entre as Vendas da Categoria e as Vendas Totais
Suponha que você deseja find a quantidade de vendas para a célula atual, em sua Tabela Dinâmica, dividida pelo total de vendas para all revendedores. Para garantir que o denominador seja o mesmo, independentemente de como o usuário da Tabela Dinâmica possa estar filtrando or agrupando os dados, você define uma fórmula que use ALL para criar o total geral correto.
A tabela a seguir mostra os resultados quando um novo measure, All Índice de Vendas de Revendedores, é criado 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
Rótulos de linha | Acessórios | Bicicletas | Vestuário | 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% |
Fórmula
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
A fórmula é construída da seguinte forma:
O numerador,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, é o sum do values em ResellerSales_USD[SalesAmount_USD] para a célula atual na Tabela Dinâmica, com filters de contexto aplicado em CalendarYear and ProductCategoryName.Para o denominador, comece especificando uma tabela, ResellerSales_USD and use a função ALL para remover allfilters de contexto na tabela.
Em seguida, use a função SUMX para sum o values na coluna ResellerSales_USD[SalesAmount_USD]. Em outras palavras, você obtém o sum de ResellerSales_USD[SalesAmount_USD] para as vendas de all revendedores.
Exemplo 2
Calculate relação entre Product vendas e vendas totais até Year correntes
Suponha que você queira criar uma tabela mostrando a porcentagem de vendas comparadas ao longo dos anos para cada categoria de product (ProductCategoryName). Para obter a porcentagem para cada year em cada value de ProductCategoryName, você precisa divide o sum de vendas para essa categoria de yearandproduct específica pelo sum de vendas para a mesma categoria de product ao longo de all anos. Em outras palavras, você deseja manter o filter em ProductCategoryName, mas remover o filter no year ao calcular o denominador da porcentagem.
A tabela a seguir mostra os resultados quando um novo measure, Reseller Sales Year, é criado 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
Rótulos de linha | Acessórios | Bicicletas | Vestuário | 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% |
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 forma:
O numerador,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, é a sum do values em ResellerSales_USD[SalesAmount_USD] para a célula atual na tabela dinâmica, com filters de contexto aplicado nas colunas CalendarYear and ProductCategoryName.Para o denominador, remova o filter existente em CalendarYear usando a função ALL(Coluna). Isso calcula o sum sobre as linhas restantes na tabela ResellerSales_USD, depois de aplicar o contexto existente filters dos rótulos de coluna. O effect líquido é que, para o denominador, o sum é calculado sobre o ProductCategoryName selecionado (o contexto implícito filter) and para allvalues em Year.
Exemplo 3
Calculate Contribuição de Product categorias para o total de vendas por Year
Suponha que você deseja criar uma tabela que mostra a porcentagem de vendas para cada categoria de product, em uma base yearporyear. Para obter a porcentagem para cada categoria de product em um yearespecífico, você precisa calculate o sum de vendas para essa categoria de product específica (ProductCategoryName) em year n, anddivide o value resultante pelo sum de vendas para o year n sobre allproduct categorias. Em outras palavras, você deseja manter o filter em year mas remover o filter em ProductCategoryName ao calcular o denominador da porcentagem.
A tabela a seguir mostra os resultados quando um novo measure, Reseller Sales CategoryName, é criado 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
Rótulos de linha | Acessórios | Bicicletas | Vestuário | 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% |
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 forma:
O numerador,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, é a sum do values em ResellerSales_USD[SalesAmount_USD] para a célula atual na Tabela Dinâmica, com filters de contexto aplicado nos campos, CalendarYear and ProductCategoryName.Para o denominador, use a função ALL(Column) para remover o filter em ProductCategoryName andcalculatesum sobre as linhas restantes na tabela ResellerSales_USD, depois de aplicar o filters de contexto existente dos rótulos de linha. O effect líquido é que, para o denominador, o sum é calculado sobre o Year selecionado (o contexto implícito filter) and para allvalues de ProductCategoryName.