Compartilhar via


ALLNOBLANKROW

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

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 os 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 A 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 retornado

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 apenas filtra a linha em branco que uma tabela pai, em uma relação, mostrará quando houver uma ou mais linhas na tabela filho contendo valores não correspondentes para a coluna pai. Confira o exemplo abaixo para obter uma explicação completa.

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

    Função e uso Descrição
    ALL(Column) Remove todos os filtros das colunas especificadas na tabela. Todos os outros filtros na tabela, nas 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 nas 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 ignora os filtros de contexto que possam existir

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

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

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

Etapa 1: Verificar os dados não relacionados

Abra a janela Power Pivot e, em seguida, selecione a tabela ResellerSales_USD. Na coluna ProductKey, filtre valores em branco. Uma linha 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, então arraste a coluna datetime.[Calendar Year] para o painel rótulos de linha. A seguinte tabela mostra os resultados esperados:

Rótulos de linha
2005
2006
2007
2008
Total Geral

Observe o rótulo em branco entre 2008 e Total Geral. Esse rótulo em branco representa o membro Desconhecido, que é um grupo especial criado para considerar quaisquer valores na tabela filho que não têm 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 das tabelas relacionadas à coluna datetime.[Calendar Year], há 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 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, ou seja, nenhum valor para a 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 filho 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 de datetime, Countrows ALL de 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'))  

Em uma Tabela Dinâmica em branco, adicione a coluna datetime.[Calendar Year] para os 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 ALL 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 uma linha na contagem de linhas da tabela. No entanto, se você abrir a janela 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: Verifique se a contagem é precisa

Para provar que o ALLNOBLANKROW não conta todas as linhas realmente em branco e só processa a linha em branco especial na tabela pai, adicione as duas medidas a seguir à tabela ResellerSales_USD: Countrows ALLNOBLANKROW de ResellerSales_USD, Countrows ALL de ResellerSales_USD.

Crie uma nova Tabela Dinâmica e arraste a coluna datetime.[Calendar Year] para o painel rótulos de linha. Agora, adicione as medidas que você acabou de criar. Os resultados devem ser semelhantes aos seguintes:

Rótulos de linha Countrows ALLNOBLANKROW de ResellerSales_USD Countrows ALL de 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 em branco verdadeiramente 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 FILTER