Excel 2010 PowerPivot: ¿Cómo muestro elementos sin datos?


12

En las tablas dinámicas de Excel estándar, hay una opción para los campos que le permiten forzar la visualización de todos los elementos, incluso si no hay resultados para su selección actual. Aquí está la opción:

Cuadro de diálogo Configuración de campo de tabla dinámica

Sin embargo, al usar el complemento PowerPivot para Excel 2010, esta opción está atenuada. ¿Hay alguna solución para poder forzar la aparición de todos los resultados?

Escenario de ejemplo: número de bananas vendidas por mes. Si no vendo plátanos en agosto, la tabla powerpivot no muestra una columna para agosto, simplemente se salta de julio a septiembre. Necesito que aparezca agosto, con un número en blanco de plátanos o cero.

¿Algunas ideas? Tal vez se requiere una expresión DAX?

EDITAR : para responder la pregunta de harrymc, he creado esta tabla dinámica seleccionando tabla dinámica de este menú en la ventana de PowerPivot.

Menú de inserción de tabla dinámica PowerPivot


En un conjunto de datos PowerPivot no puede agregar elementos sin datos, por lo tanto, es natural que la opción "Mostrar elementos sin datos" esté atenuada. ¿Está utilizando una tabla dinámica aplanada como se describe aquí ?
harrymc

Gracias por la respuesta harrymc, no estoy usando una tabla dinámica aplanada, he usado una tabla dinámica estándar (ver imagen arriba).
Andi Mohr

En su primer punto, no estoy seguro de haberlo entendido correctamente. Usted dice que no puede agregar artículos sin datos, sin embargo, mi conjunto de datos incluye las ventas de agosto para manzanas. Esto normalmente significa que habilitar "Mostrar elementos sin datos" muestra la columna de agosto. ¿Está diciendo que las tablas dinámicas que se extraen de los datos de PowerPivot se comportan de manera diferente que cualquier otra fuente de datos?
Andi Mohr

Respuestas:


5

En realidad esta es una mejor solución. Gracias a Alberto Ferrari por este.

Debe crear una tabla de Meses (es decir, una lista de nombres de mes, enero / febrero / marzo, etc., una tabla vinculada funcionará bien) y crear una relación entre su nueva tabla de Meses y su tabla de hechos.

Luego escribe una medida como esta:

NeverBlankUnits:=IF( ISBLANK( SUM(FruitSales[Units]) )
                      , 0
                      , SUM(FruitSales[Units]) 
                   )

EDITAR : cuando agrega la columna de nuevos meses en su tabla dinámica, puede encontrar que el orden predeterminado es frustrantemente alfabético; Abr, agosto, diciembre, febrero ... Aquí hay un gran tutorial que le muestra cómo solucionar esto.


0

Una solución alternativa podría ser posible usar una expresión de análisis de datos (DAX) para reemplazar espacios en blanco con ceros.

DAX puede forzar un cero en lugar de un espacio en blanco siempre que no existan datos en la tabla de hechos, pero desea que la fila aparezca en la tabla dinámica.

Para una hoja de trabajo simple con Depts, Divisions y una tabla de hechos llamada Numbers, y con una sola columna "D" que contiene un número para sumar, escriba el código DAX de esta manera:

=IF (
    COUNTROWS (Divisions) > 0; 
    IF (ISBLANK (SUM (Numbers[D])), 0, SUM (Numbers[D]))
)

Para obtener más información, consulte:
Cómo usar DAX en las expresiones de análisis de datos del complemento PowerPivot de Excel
(DAX) en PowerPivot

Este enfoque se sugirió originalmente en el hilo Mostrar elementos sin datos en filas .


Gracias, solo mira este enfoque para ver si puedo hacerlo funcionar. Lo primero que noté es un pequeño error tipográfico en la fórmula: tienes un punto y coma en lugar de una coma. (Al igual que la publicación original de Alberto Ferrari en el enlace.)
Andi Mohr

Lamentablemente, esto no parece hacer el truco. He adaptado la fórmula como sigue: Units_2:=IF (COUNTROWS('FruitSales') > 0,IF(ISBLANK (SUM (FruitSales[Units])), 0, SUM (FruitSales[Units]))). La tabla dinámica solo muestra las unidades vendidas en julio y septiembre.
Andi Mohr

Si no se puede encontrar otra solución, lo que queda es aplanar la tabla dinámica en una hoja de cálculo local. El artículo al que me he vinculado anteriormente podría ayudar.
harrymc

0

Un método de fuerza bruta sería crear una medida para cada mes. Mientras una de las columnas del mes tenga algunos datos, aparecerán todas las columnas del mes. Sin embargo, crear todas estas medidas individuales es muy tedioso, no ideal.

=CALCULATE(
   SUM([Units])
   ,Filter('FruitSales',[Month Name]="August")
   )

0

esto funciona para mi:

= if (sum (calender [Date])> 0; if (isblank (sum (Sales_SalesOrderDetail [LineTotal])); 0; sum (Sales_SalesOrderDetail [LineTotal])))


De donde ha calendar[Date]venido Eso no está en mi escenario de ejemplo, entonces, ¿cómo ha agregado esto y cómo se vincula esta tabla en PowerPivot?
Andi Mohr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.