ALLNOBLANKROW
Aplica-se a:Coluna calculadaTabela calculadaMedidaCá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
Vigência | Definição |
---|---|
table |
A tabela sobre a qual todos os filtros de contexto são removidos. |
column |
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 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 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 em DAXe suas diferenças:Função e utilização 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 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 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(Tabela) e ALL(Coluna), consulte ALL função.
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 Power Pivote, 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 do Total Geral. 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 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'))
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 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 1 linha na contagem de linhas da tabela. No entanto, se abrir a janela Power Pivot e selecionar a tabela datetime, não conseguirá 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 o 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 de 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 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 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.