ALLNOBLANKROW
Se aplica a:Columna calculadaTabla calculadaMedidaCálculo visual
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 no tiene en cuenta los filtros de contexto que puedan existir.
Sintaxis
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Parámetros
Término | Definición |
---|---|
tabla | Tabla en la que se quitan todos los filtros de contexto. |
columna | Columna en la que se quitan todos los filtros de contexto. |
Solo se debe pasar un parámetro, que es una tabla o una columna.
Valor devuelto
Una tabla, cuando el parámetro pasado ha sido una tabla, o una columna de valores, cuando el parámetro pasado ha sido una columna.
Notas
La función ALLNOBLANKROW solo filtra la fila en blanco que mostrará una tabla primaria, en una relación, cuando haya una o más filas en la tabla secundaria que tengan valores no coincidentes en la columna primaria. Vea el ejemplo siguiente para obtener una explicación detallada.
En la tabla siguiente se resumen las variaciones de ALL, 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. El resto de filtros de la tabla que hay en otras columnas se siguen aplicando. ALL(Table) Quita todos los filtros de la tabla especificada. ALLEXCEPT(Table,Col1,Col2...) Invalida todos los filtros de contexto de 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 no tiene en cuenta los filtros de contexto que puedan existir. Para obtener una descripción general de cómo opera la función ALL, junto con ejemplos paso a paso que usan ALL(Table) y ALL(Column), vea Función ALL.
Esta función no se admite para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).
Ejemplo
En los datos de ejemplo, la tabla ResellerSales_USD contiene una fila que no tiene valores y, por tanto, no se puede relacionar con ninguna de las tablas primarias en las relaciones dentro del libro. Usará esta tabla en una tabla dinámica para que pueda ver el comportamiento de las filas en blanco y cómo controlar los recuentos de los datos no relacionados.
Paso 1: comprobación de los datos no relacionados
Abra la ventana de Power Pivot y luego seleccione la tabla ResellerSales_USD. En la columna ProductKey, filtre por los valores en blanco. Se conservará una fila. En esa fila, todos los valores de columna deben estar en blanco, excepto SalesOrderLineNumber.
Paso 2: creación de una tabla dinámica
Cree una nueva tabla dinámica y, después, arrastre la columna datetime.[Calendar Year], al panel Etiquetas de fila. En la tabla siguiente se muestran los resultados esperados:
Etiquetas de fila |
---|
2005 |
2006 |
2007 |
2008 |
Total general |
Tenga en cuenta la etiqueta en blanco entre 2008 y Total general. Esta etiqueta en blanco representa el miembro desconocido, que es un grupo especial que se crea 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 vea esta etiqueta en blanco en la tabla dinámica, sabrá que en algunas de las tablas relacionadas 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 se encuentran en una o varias de las tablas secundarias.
Las filas que se agregan a este grupo de etiquetas en blanco son valores que no coinciden con ningún valor de la tabla primaria (por ejemplo, una fecha que no existe en la tabla datetime) o valores NULL, lo que significa que no hay ningún valor para fecha. En este ejemplo, se ha colocado un valor en blanco en todas las columnas de la tabla de ventas secundaria. Tener más valores en la tabla primaria que en las tablas secundarias no provoca ningún problema.
Paso 3: recuento de filas con ALL y ALLNOBLANK
Agregue las dos medidas siguientes a la tabla datetime para contar las filas de la tabla: CountRows ALLNOBLANK of datetime, CountRows ALL of datetime. Las fórmulas que se pueden usar para definir estas medidas son las siguientes:
// 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'))
En una tabla dinámica en blanco, agregue la columna datetime.[Calendar Year] a las etiquetas de fila y, después, agregue las medidas recientemente creadas. Los resultados deben tener un aspecto similar a la tabla siguiente:
Etiquetas de fila | CountRows ALLNOBLANK of datetime | CountRows ALL of datetime |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
Total general | 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 Power Pivot y selecciona la tabla datetime, no se puede encontrar ninguna fila en blanco porque la fila en blanco especial mencionada aquí es el miembro desconocido.
Paso 4: comprobación de que el recuento es preciso
Para demostrar que ALLNOBLANKROW no cuenta ninguna fila realmente en blanco y que solo controla la fila en blanco especial de la tabla primaria, agregue las dos medidas siguientes 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 que se acaban de crear. Los resultados deberían parecerse a lo siguiente:
Etiquetas de fila | CountRows ALLNOBLANKROW of ResellerSales_USD | CountRows ALL of ResellerSales_USD |
---|---|---|
2005 | 60 856 | 60 856 |
2006 | 60 856 | 60 856 |
2007 | 60 856 | 60 856 |
2008 | 60 856 | 60 856 |
60 856 | 60 856 | |
Total general | 60 856 | 60 856 |
Ahora las dos medidas tienen los mismos resultados. Esto se debe a que la función ALLNOBLANKROW no cuenta filas realmente en blanco en una tabla, sino que solo controla 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.