Este es un problema publicado por uno de nuestros miembros en el foro LuckyTemplates . El usuario quería que las columnas se parecieran al formato tabular de la tabla dinámica de Excel con el total general en la parte inferior, pero no el subtotal. Voy a compartir un par de formas en que puedes resolver esto. Uno es a través de una matriz visual y el otro es a través de DAX.
Lo que hice fue comenzar con la herramienta externa Practice Dataset, que es una herramienta que desarrollamos exactamente con este propósito para crear conjuntos de datos de práctica. Crea un conjunto de datos de tres años con un modelo de datos completo hasta la fecha de hoy. Es un modelo de datos de esquema de estrella básico, pero se puede usar para desarrollar una gran cantidad de buenos modelos de prueba.
Acabo de armar una matriz visual, que es muy similar a lo que el miembro quería en la pregunta del foro.
He usado una medida de ventas totales muy simple para la SUMA de ventas de línea dentro de la tabla de ventas. Mantuve eso en dos productos, tres canales diferentes, y luego lo configuré en cuatro trimestres dentro del año 2020.
Como puede ver, hice cuatro copias diferentes de esta tabla. Luego, utilizando la técnica que les voy a mostrar, pueden conservar los totales de las filas y eliminar todo lo demás, conservar los totales de las columnas y eliminar todo lo demás, conservar los subtotales y variarlos por subtotal individual, o eliminar todos los subtotales y todos los totales generales y solo quedarme con las filas base. Por lo tanto, tiene total flexibilidad y control aquí, y le mostraré cómo se hace esto.
Ahora, si vamos a la tabla principal, hacemos clic en ella, y luego vamos al formato, hay una opción que es por nivel de fila. Enciéndelo. También hay uno por nivel de columna y nos aseguramos de que esté activado también. También podemos activar Nombre del producto, que activa los totales generales en la parte inferior. El Nombre del canal desactiva los subtotales, y el Trimestre y el Año desactivan los totales de fila.
Simplemente enciéndalos y cambie las opciones. Esa es la manera realmente simple y fácil de hacerlo. La forma más difícil es a través de DAX.
Solución DAX para controlar totales y subtotales en una matriz Visual In Power
Quizás se esté preguntando, si tenemos esta forma realmente simple de hacer esto, ¿por qué deberíamos molestarnos con una forma más difícil? Todo se reduce al problema que surge mucho en términos de totales incorrectos.
Entonces, en este caso, reduje el ejemplo de la página anterior a solo el cuarto uno y el cuarto dos, pero por lo demás, es la misma matriz visual.
Tenemos la medida de ventas totales simple y funciona bien, los totales son correctos. Pero entonces, si usamos una medida de ventas más compleja aquí, Total Sales SWITCH, esto depende del valor de nuestro canal de ventas.
Acabo de inventar algunos números para señalar aquí que si tenemos un cálculo de Ventas totales más complejo, los números son incorrectos (debajo de la tabla en el lado derecho). Si miramos de cerca, los números anteriores, que son correctos, son los mismos y, sin embargo, no puede ser cierto. Cuando observamos la exportación, por ejemplo, es un 30% más alta que en el caso anterior y, sin embargo, los totales aquí se muestran iguales. Eso simplemente no puede ser correcto.
Entonces, ¿cómo se corrige eso?
Para hacer esto dentro de DAX, puede usar toda una serie de funciones, que he presentado aquí. Tenemos HASONEFILTER , HASONEVALUE , ISFILTERED , ISCROSSFILTERED e ISINSCOPE . Todos estos se utilizan para determinar, entre otras cosas, si se encuentra en una fila de datos, una fila de subtotal o una fila de total.
Como puede ver, todos tienen el mismo aspecto con la excepción de HASONEVALUE , donde muestra el subtotal del producto. Eso es solo por un artefacto en los datos que he desarrollado para este, donde el producto uno solo tiene un canal de distribución. No tiene un canal de exportación o mayorista en la tabla Ventas.
No muestran el total general y los subtotales, pero si imponemos una segmentación en esto, por ejemplo, elijamos Distribuidor y Mayorista, de repente estas tablas cambian mucho.
Y ahora, hay una gran diferencia entre estas tablas. HASONEFILTER aquí no muestra el subtotal del producto mientras que HASONEVALUE sí. ISFILTERED ahora muestra el total general, los totales de fila y los subtotales al igual que ISCROSSFILTERED. ISINSCOPE, por otro lado, proporciona un resultado muy similar a HASONEFILTER. Puede ver que la imposición de esa segmentación adicional cambia la naturaleza de lo que obtiene aquí.
No hay una respuesta dura y rápida a lo que debe usar para fijar un total dado. Va a depender de su modelo de datos. Va a depender de su DAX . Pero lo importante aquí es ver que las diferentes funciones producen diferentes resultados en términos de borrar los totales versus los subtotales y el gran total.
Los detalles de eso están más allá del alcance de este tutorial. Consulte otros tutoriales en los enlaces a continuación para obtener más contenido relacionado. Solo tenga en cuenta que a menudo también hay distinciones de rendimiento que encontrará entre estas diferentes funciones y que también hablarán de cuál elige en su última medida.
Le he mostrado dos técnicas que puede implementar para controlar totales y subtotales en su matriz visual en LuckyTemplates. Con suerte, eso le brinda algunas herramientas buenas y útiles para su caja de herramientas.