Share via


Función ALLNOBLANKROW (DAX)

A partir de la tabla primaria de una relación, devuelve todas las filas menos la fila en blanco o todos los valores distintos de una columna menos la fila en blanco, y omite cualquier filtro de contexto que pudiera existir.

Sintaxis

ALLNOBLANKROW(<table>|<column>)

Parámetros

Término

Definición

table

Tabla de la que se quitan todos los filtros de contexto.

column

Columna de la que se quitan todos los filtros de contexto.

Se debe pasar solo un parámetro; el parámetro es una tabla o una columna.

Valor devuelto

Una tabla, cuando el parámetro que se pasó era una tabla, o una columna de valores, cuando el parámetro que se pasó era una columna.

Comentarios

La función ALLNOBLANKROW solo filtra la fila en blanco que una tabla primaria, de una relación, mostrará cuando haya una o varias filas en la tabla secundaria que tengan valores no coincidentes con la columna primaria. Vea el ejemplo siguiente para obtener una explicación detallada.

En la siguiente tabla se resumen las variaciones de TODOS que se proporcionan en DAX, y sus diferencias:

Función y uso

Descripción

ALL(Column)

Quita todos los filtros de la columna especificada de la tabla; todos los demás filtros en las otras columnas de la tabla se siguen aplicando.

ALL(Table)

Quita todos los filtros de la tabla especificada.

ALLEXCEPT(Table,Col1,Col2...)

Invalida todos los filtros de contexto en la tabla excepto los de las columnas especificadas.

ALLNOBLANK(table|column)

A partir de la tabla primaria de una relación, devuelve todas las filas menos la fila en blanco, o todos los valores distintos de una columna menos la fila en blanco, y omite cualquier filtro de contexto que pudiera existir.

Para obtener una descripción general del funcionamiento de ALL, junto con ejemplos paso a paso que usan ALL(Table) y ALL(Column), vea Función ALL (DAX).

Ejemplo

En los datos de ejemplo, la tabla ResellerSales_USD contiene una fila que no tiene ningún valor y por consiguiente no se puede relacionar con ninguna de las tablas primarias en las relaciones dentro del libro. Utilizará esta tabla en una tabla dinámica para poder ver el comportamiento de la fila en blanco y cómo tratar los contadores en los datos no relacionados.

Paso 1: comprobar los datos no relacionados

Abra la Ventana de PowerPivot y a continuación seleccione la tabla ResellerSales_USD. En la columna ProductKey, filtre según los valores en blanco. Una fila permanecerá. En esa fila, todos los valores de las columnas deberían estar en blanco excepto SalesOrderLineNumber.

Paso 2: crear una tabla dinámica

Cree una nueva tabla dinámica y, a continuación, arrastre la columna, datetime.[Calendar Year], al panel Etiquetas de fila. En la tabla siguiente se muestran los resultados esperados:

Etiquetas de fila

2001

2002

2003

2004

 

Grand Total

Tenga en cuenta la etiqueta en blanco entre 2004 y Grand Total. Esta etiqueta en blanco representa el miembro desconocido, que es un grupo especial que crea PowerPivot para tener en cuenta los valores de la tabla secundaria que no tengan ningún valor coincidente en la tabla primaria: en este ejemplo, la columna datetime.[Calendar Year].

Cuando ve esta etiqueta en blanco en la tabla dinámica, sabe que en algunas de las tablas que se relacionan con la columna, datetime.[Calendar Year], hay valores en blanco o valores no coincidentes. La tabla primaria es la que muestra la etiqueta en blanco, pero las filas que no coinciden están en una o en varias de las tablas secundarias.

Las filas que se agregan a este grupo de etiquetas en blanco son alguno de los valores que no coinciden con ningún valor de la tabla primaria (por ejemplo, una fecha que no existe en la tabla de fecha y hora) o valores nulos, lo que significa que no hay ningún valor para la fecha. En este ejemplo, hemos colocado un valor en blanco en todas las columnas de la tabla de ventas secundaria. El que haya más valores en la tabla primaria que en las tablas de secundarias no supone ningún problema.

Paso 3: contar filas con ALL y ALLNONBLANK

Agregue las siguientes dos medidas a la tabla de fecha y hora, para contar las filas de la tabla: Countrows ALLNOBLANK of datetime, Countrows ALL of datetime. Las fórmulas que puede usar para definir estas medidas se proporcionan en la siguiente sección de códigos.

En una tabla dinámica en blanco, agregue la columna datetime.[Calendar Year] a las etiquetas de fila y, a continuación, agregue las medidas recién creadas. Los resultados deberían ser similares a los de la tabla siguiente:

Etiquetas de fila

Countrows ALLNOBLANK of datetime

Countrows ALL of datetime

2001

1280

1281

2002

1280

1281

2003

1280

1281

2004

1280

1281

 

1280

1281

Grand Total

1280

1281

Los resultados muestran una diferencia de una fila en el recuento de filas de la tabla. Sin embargo, si abre la Ventana de PowerPivot y selecciona la tabla datetime, no puede encontrar ninguna fila en blanco en la tabla porque la fila en blanco especial mencionada aquí es el miembro desconocido.

Paso 4: comprobar que el recuento es preciso

Para demostrar que ALLNOBLANKROW no cuenta ninguna fila realmente en blanco y solo trata la fila en blanco especial de la tabla primaria, agregue las siguientes dos medidas a la tabla ResellerSales_USD: Countrows ALLNOBLANKROW of ResellerSales_USD, Countrows ALL of ResellerSales_USD.

Cree una nueva tabla dinámica y arrastre la columna, datetime.[Calendar Year], al panel Etiquetas de fila. Ahora agregue las medidas recién creadas. Los resultados deberían ser similares a los siguientes:

Etiquetas de fila

Countrows ALLNOBLANKROW of 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

Ahora las dos medidas tienen los mismos resultados. Eso se debe a que la función ALLNOBLANKROW no cuenta las filas en blanco verdaderas de una tabla, sino que solo trata la fila en blanco que es un caso especial generado en una tabla primaria, cuando una o varias de las tablas secundarias de la relación contienen valores no coincidentes o valores en blanco.

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

Vea también

Referencia

Otros recursos