ALLNOBLANKROW

Aplica-se a:Colunacalculada Tabelacalculada MedidaCálculo visual

Na tabela pai de um relacionamento, retorna todas as linhas, exceto a linha em branco, ou todos os valores distintos de uma coluna, exceto a linha em branco, e ignora quaisquer filtros de contexto que possam existir.

Sintaxe

ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )

Parâmetros

Termo Definição
tabela A tabela sobre a qual todos os filtros de contexto são removidos.
coluna Uma coluna sobre a qual todos os filtros de contexto são removidos.

Apenas um parâmetro deve ser passado; O parâmetro é uma tabela ou uma coluna.

Valor devolvido

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

Observações

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

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

    Função e utilização Description
    ALL(Coluna) Remove todos os filtros da coluna especificada na tabela; Todos os outros filtros na tabela, sobre outras colunas, ainda se aplicam.
    ALL(Tabela) Remove todos os filtros da tabela especificada.
    ALLEXCEPT(Tabela, Col1, Col2...) Substitui todos os filtros de contexto na tabela, exceto nas colunas especificadas.
    ALLNOBLANK(tabela|coluna) 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 ignora quaisquer filtros de contexto que possam existir

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

  • Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da linha (RLS).

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 da linha em branco e como lidar com contagens em dados não relacionados.

Etapa 1: Verificar os dados não relacionados

Abra a janela do Power Pivot e, em seguida, selecione a tabela ResellerSales_USD. Na coluna ProductKey, filtre por valores em branco. Uma fila permanecerá. Nessa linha, todos os valores de coluna devem estar em branco, exceto SalesOrderLineNumber.

Etapa 2: Criar uma tabela dinâmica

Crie uma nova Tabela Dinâmica e, em seguida, arraste a coluna, datetime. [Ano Civil], para o painel Etiquetas de Linha. A tabela a seguir mostra os resultados esperados:

Rótulos de linha
2005
2006
2007
2008
Total Geral

Observe o rótulo em branco entre 2008 e o Grand Total. Esse rótulo em branco representa o membro Desconhecido, que é um grupo especial criado para contabilizar quaisquer valores na tabela filho que não tenham valor correspondente na tabela pai, neste exemplo a datetime. Coluna [Ano Civil].

Quando você vê esse rótulo em branco na Tabela Dinâmica, sabe que em algumas das tabelas relacionadas à coluna, datetime. [Ano Civil], existem valores em branco ou valores não correspondentes. A tabela pai é aquela que mostra o rótulo em branco, mas as linhas que não correspondem estão em uma ou mais das tabelas filhas.

As linhas que são 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, o que significa nenhum valor para data. Neste exemplo, colocamos um valor em branco em todas as colunas da tabela de vendas filho. Ter mais valores na tabela pai do que nas tabelas filhos não causa um problema.

Etapa 3: Contar linhas usando ALL e ALLNOBLANK

Adicione as duas medidas a seguir à tabela datetime, para contar as linhas da tabela: Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. As fórmulas que você pode usar para definir essas medidas são:

// 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'))  

Numa Tabela Dinâmica em branco, adicione datetime. Coluna [Ano Civil] aos rótulos de linha e, em seguida, adicione as medidas recém-criadas. Os resultados devem ser semelhantes à tabela a seguir:

Rótulos de linha Countrows ALLNOBLANK de datetime Countrows TODOS de datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Total Geral 1280 1281

Os resultados mostram uma diferença de 1 linha na contagem de linhas da tabela. No entanto, se abrir a janela do Power Pivot e selecionar a tabela datetime, não poderá encontrar nenhuma linha em branco na tabela porque a linha em branco especial mencionada aqui é o membro Desconhecido.

Etapa 4: Verificar se a contagem é precisa

Para provar que ALLNOBLANKROW não conta nenhuma linha verdadeiramente em branco e apenas manipula a linha em branco especial na tabela pai, adicione as duas medidas a seguir à tabela ResellerSales_USD: Countrows ALLNOBLANKROW de ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Crie uma nova Tabela Dinâmica e arraste a coluna, datetime. [Ano Civil], para o painel Etiquetas de Linha. Agora adicione as medidas que você acabou de criar. Os resultados devem ter a seguinte aparência:

Rótulos de linha Countrows ALLNOBLANKROW de ResellerSales_USD Countrows TODOS ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Total Geral 60856 60856

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

Funções de filtro
Função ALL
Função FILTRO