Função ALLNOBLANKROW (DAX)

Da tabela pai de uma relação, retorna todas as linhas, exceto a linha em branco, ou todos os valores distintos de uma coluna, exceto a linha em branco, e desconsidera todos os filtros de contexto que possam existir.

Sintaxe

ALLNOBLANKROW(<table>|<column>)

Parâmetros

Termo

Definição

table

A tabela na qual todos os filtros de contexto são removidos.

column

A coluna na qual todos os filtros de contexto são removidos.

Somente um parâmetro deve ser passado; o parâmetro é uma tabela ou uma coluna.

Valor de retorno

Uma tabela, quando o parâmetro passado era uma tabela, ou uma coluna de valores, quando o parâmetro passado era uma coluna.

Comentários

A função ALLNOBLANKROW filtra apenas a linha em branco que uma tabela pai, em uma relação, mostrará quando houver uma ou mais linhas na tabela filho que tenha valores não correspondentes à coluna pai. Consulte o exemplo abaixo para obter uma explicação completa.

A tabela a seguir resume as variações de ALL fornecidas em DAX e suas diferenças:

Função e uso

Descrição

ALL(Column)

Remove todos os filtros da coluna especificada na tabela; todos os outros filtros na tabela, sobre outras colunas, ainda se aplicam.

ALL(Table)

Remove todos os filtros da tabela especificada.

ALLEXCEPT(Table,Col1,Col2...)

Substitui todos os filtros de contexto na tabela, exceto sobre as colunas especificadas.

ALLNOBLANK(table|column)

Da tabela pai de uma relação, retorna todas as linhas, exceto a linha em branco, ou todos os valores distintos de uma coluna, exceto a linha em branco, e desconsidera todos os filtros de contexto que possam existir

Para obter uma descrição geral sobre como a função ALL funciona, junto com exemplos passo a passo que usam ALL(Table) e ALL(Column), consulte Função ALL (DAX).

Exemplo

Nos dados de exemplo, a tabela ResellerSales_USD contém uma linha que não tem valores e, portanto, não pode ser relacionada a nenhuma das tabelas pai nas relações dentro da pasta de trabalho. Você usará essa tabela em uma Tabela Dinâmica para que possa ver o comportamento de linha em branco e como tratar contagens em dados não relacionados.

Etapa 1: verificar os dados não relacionados

Abra a Janela do PowerPivot e selecione a tabela ResellerSales_USD. Na coluna ProductKey, filtre para obter valores em branco. Uma linha permanecerá. Nessa linha, todos os valores da coluna devem estar em branco, com exceção de SalesOrderLineNumber.

Etapa 2: criar uma Tabela Dinâmica

Crie uma nova Tabela Dinâmica e arraste a coluna datetime.[Calendar Year] até o painel Rótulos de Linha. A tabela a seguir mostra os resultados esperados:

Rótulos de Linha

2001

2002

2003

2004

 

Grand Total

Observe o rótulo em branco entre 2004 e Grand Total. Esse rótulo em branco representa o membro desconhecido, que é um grupo especial criado pelo PowerPivot para contabilizar os valores na tabela filho que não têm nenhum valor correspondente na tabela pai, neste exemplo, a coluna datetime.[Calendar Year].

Quando você vir esse rótulo em branco na Tabela Dinâmica, saberá que em algumas tabelas relacionadas à coluna datetime.[Calendar Year], haverá valores em branco ou valores não correspondentes. A tabela pai é a que mostra o rótulo em branco, mas as linhas que não correspondem estão em uma ou mais tabelas filho.

As linhas adicionadas a esse grupo de rótulos em branco são valores que não correspondem a nenhum valor na tabela pai -- por exemplo, uma data que não existe na tabela datetime -- ou valores nulos, que significam que não há nenhum valor para data. Neste exemplo, colocamos um valor em branco em todas as colunas da tabela de vendas filho. A existência de mais valores na tabela pai do que nas tabelas filho não causa um problema.

Etapa 3: contar linhas usando ALL e ALLNONBLANK

Adicione estas duas medidas à tabela datetime, para contar as linhas da tabela: Countrows ALLNOBLANK de datetime, Countrows ALL of datetime. São dadas as fórmulas que é possível usar para definir essas medidas nesta seção de código.

Em uma Tabela Dinâmica em branco, adicione a coluna datetime.[Calendar Year] aos rótulos de linha e adicione as medidas recém-criadas. Os resultados deverão ser semelhantes a esta tabela:

Rótulos de Linha

Countrows ALLNOBLANK de datetime

Countrows ALL of datetime

2001

1280

1281

2002

1280

1281

2003

1280

1281

2004

1280

1281

 

1280

1281

Grand Total

1280

1281

Os resultados mostram uma diferença de 1 linha na contagem das linhas da tabela. Porém, se você abrir a Janela do PowerPivot e selecionar a tabela datetime, não poderá localizar nenhuma linha em branco na tabela, pois a linha em branco especial mencionada aqui é o membro desconhecido.

Etapa 4: verificar se a contagem é precisa

Para provar que ALLNOBLANKROW não conta linhas realmente em branco e apenas manipula a linha em branco especial na tabela pai, acrescente estas duas medidas à tabela ResellerSales_USD: Countrows ALLNOBLANKROW de ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Crie uma nova Tabela Dinâmica e arraste a coluna datetime.[Calendar Year] até o painel Rótulos de Linha. Agora adicione as medidas recém-criadas. Os resultados deverão ser semelhantes ao seguinte:

Rótulos de Linha

Countrows ALLNOBLANKROW de ResellerSales_USD

Countrows ALL of ResellerSales_USD

2001

60856

60856

2002

60856

60856

2003

60856

60856

2004

60856

60856

 

60856

60856

Grand Total

60856

60856

Agora as duas medidas têm os mesmos resultados. Isso ocorre porque a função ALLNOBLANKROW não conta as linhas verdadeiramente em branco em uma tabela, mas apenas manipula a linha em branco que é um caso especial gerado em uma tabela pai, quando um ou mais tabelas filho na relação contêm valores não correspondentes ou valores em branco.

// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))

// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime')) 

// Countrows ALLNOBLANKROW of ResellerSales_USD
=COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))

// Countrows ALL of ResellerSales_USD
=COUNTROWS(ALL('ResellerSales_USD'))

Consulte também

Referência

Outros recursos