Comparación de medidas explícitas con grupos de cálculo en modelos tabulares

Con la llegada de las UDF, deberíamos repensar cómo utilizar los grupos de cálculo.

Ambas son características esenciales a la hora de simplificar un modelo semántico modularizando la lógica y reduciendo la duplicación de la lógica empresarial.

Si bien las UDF son muy útiles para estandarizar la lógica empresarial y tenerla solo una vez por modelo de datos, los grupos de cálculo son útiles para que los diseñadores de informes apliquen la lógica empresarial a las medidas.

Los grupos de cálculo son visibles para los diseñadores de informes, pero las UDF solo se pueden utilizar dentro de expresiones DAX y no se pueden utilizar en el front-end.

Puede encontrar recursos sobre cómo combinar UDF y grupos de cálculo en la sección Referencias a continuación.

La pregunta es si deberíamos agregar medidas explícitas o solo ofrecer grupos de cálculo a los usuarios.

Aquí hay un ejemplo:

Necesito ofrecer la posibilidad de calcular el valor del año anterior.

Puedo ofrecer un elemento de cálculo que el usuario puede utilizar para obtener el resultado deseado. Puedo agregar una medida explícita para el resultado de PY.

La pregunta es, ¿cuál ofrece más flexibilidad y es más fácil de usar?

Ésta es la pregunta que intentaré responder aquí.

La vista del usuario.

Primero, ¿quién es el usuario?

Hay dos grupos de usuarios:

Los diseñadores de informes que utilizan nuestros modelos semánticos y necesitan comprender el modelo semántico fácilmente. Los consumidores de informes deben comprender lo que mostramos en las visualizaciones sin mucho espacio para la interpretación.

Al final, debemos apoyar a ambos grupos de usuarios cuando construyamos un modelo semántico.

En la sección de conclusiones a continuación, encontrará mi pauta principal al diseñar un modelo semántico.

Pero primero, veamos los efectos de los dos enfoques para nuestros usuarios.

Uso de visualizaciones matriciales

Primero, construí una Matrix.

La Matriz debe contener la jerarquía del Calendario como Filas y las Medidas para Ventas en Línea, PY y PM en las columnas.

Además, quiero dividir los resultados por marca.

Primero, lo hice con Elementos de Cálculo:

Figura 1 – Matriz con los resultados necesarios. Los elementos de cálculo deben filtrarse para incluir solo los elementos necesarios (figura del autor)

El resultado es el necesario.

Tenga en cuenta que debo filtrar los elementos de cálculo para excluir el elemento PY (semana), ya que causaría un error cuando se usa con trimestres y meses.

A continuación, lo hice con Medidas explícitas:

Figura 2 – La misma Matriz que antes, pero esta vez con Medidas explícitas (Figura del Autor)

Como puede ver, los resultados son idénticos.

Pero observe que la primera columna muestra el nombre de la medida en lugar del nombre del elemento de cálculo, como puede ver en la primera captura de pantalla.

Medidas explícitas me permite modificar el nombre que se muestra en el objeto visual. Por ejemplo, las Medidas para PY y PM tienen un Nombre diferente:

Figura 3 – Las Etiquetas de las medidas explícitas con los nombres originales (Figura del Autor)

Esto es imposible cuando se utilizan elementos de cálculo. Los elementos visuales siempre muestran los nombres de los elementos de cálculo y no puedo cambiarles el nombre.

Ni siquiera veo el nombre de la medida original.

Por lo tanto, debo agregar un título significativo al Visual. Pero recomiendo hacer esto de todos modos.

Usar otros tipos de visualización (columnas o barras)

A continuación, lo hice con imágenes de columna:

Figura 4: Imágenes de columna con elementos de cálculo (arriba) y medidas explícitas (abajo) (Figura del autor)

El objeto visual superior utiliza los elementos de cálculo y el objeto visual inferior contiene las medidas explícitas.

Aquí tenemos la misma situación que antes:

Debo agregar un filtro en los elementos de cálculo para el objeto visual superior. Puedo cambiar el nombre de las medidas en el objeto visual inferior.

Pero los resultados siguen siendo los mismos.

Dejé el título predeterminado y la posición de la leyenda. Puede ver que es necesario cambiarlos, ya que contienen información duplicada. Además, en la variante superior, puede ver el término “Función de tiempo” en el subtítulo, que no tiene sentido para ningún consumidor de informes.

Además de los títulos y subtítulos, las diferencias son aún menores en comparación con la imagen matricial.

Tablas dinámicas en Excel

Ahora, veamos cómo funciona en las tablas dinámicas de Excel:

Pero aquí tenemos un problema con el elemento de cálculo PY:

Figura 5: Tabla dinámica de Excel mientras se utilizan elementos de cálculo. Tenga en cuenta los valores de PY que faltan para el primer año mostrado, aunque hay valores (Figura del autor)

Lo que no cambia es la necesidad de filtrar los elementos de cálculo para conservar solo los elementos necesarios:

Figura 6: Filtre el elemento de cálculo PY (Semanas), ya que no es necesario (Figura del autor)

Como puede ver, la columna PY está vacía, aunque hay datos para el año 2022.

Al intentar esto con medidas explícitas, obtuve este resultado:

Figura 7: Tabla dinámica de Excel mientras se utilizan medidas explícitas. El problema de PY persiste (marcado en rojo), pero no aparece cuando se utilizan medidas que utilizan inteligencia temporal clásica (marcado en verde) (Figura del autor)

Incluso con medidas explícitas, el problema del PY persiste.

Luego agregué una medida PY usando la inteligencia de tiempo clásica y funcionó, como se muestra arriba con los valores resaltados en verde.

Esto apunta a un problema con Excel y la inteligencia del tiempo basada en calendario.

Pero aún puedo cambiar el nombre de las medidas, como en Power BI.

Por tanto, no existe diferencia entre las dos variantes.

La vista del usuario – otra vez

Cuando miramos al consumidor de informes, podemos crear los mismos informes sin ver ninguna diferencia.

Al menos para los ejemplos simples que mostré arriba.

Para el diseñador del informe, la historia es diferente.

Este tipo de usuario debe saber utilizar el modelo de datos y los grupos de cálculo.

Esto es un obstáculo para el BI de autoservicio, donde los desarrolladores ponen a disposición el modelo de datos y otros usuarios crean sus propios informes.

Una buena documentación sobre cómo utilizar el modelo de datos, junto con educación y capacitación, es imperativa cuando se utilizan únicamente grupos de cálculo en lugar de ofrecer medidas explícitas.

Pero llegamos a límites, por ejemplo, cuando intentamos filtrar datos por una medida inexistente, porque sólo está disponible con un elemento de cálculo.

Lo mismo se aplica a los usuarios de Excel que desean crear informes de Excel con tablas dinámicas basadas en el modelo semántico.

Nuevamente, debemos educarlos sobre cómo utilizar correctamente el modelo de datos.

Esto es mucho más fácil cuando materializamos todas las medidas necesarias y las colocamos en Carpetas de visualización bien estructuradas.

Los usuarios pueden elegir las medidas necesarias y trabajar con ellas.

Conclusión

Como ha visto, la creación de medidas explícitas puede beneficiar al diseñador de informes que trabaja con nuestros modelos semánticos.

Mi pauta a la hora de crear modelos semánticos es la siguiente:

Las necesidades del usuario son lo primero.
Las razones técnicas siempre están en segundo lugar.
Ninguna ganancia técnica supera la usabilidad y comprensibilidad del resultado.

Ahora es tu turno.

¿Cuáles son sus pautas durante la creación de un modelo semántico?

¿Cuál es su razonamiento más importante durante la fase de diseño?

Referencias

El artículo de SQLBI, que compara UDF y grupos de cálculo y muestra cómo combinarlos.

Y aquí está el vídeo de este artículo:

Aquí, el vídeo de Guys in a cube sobre el mismo tema con una visión ligeramente diferente:

Como en mis artículos anteriores, utilizo el conjunto de datos de muestra de Contoso. Puede descargar el conjunto de datos ContosoRetailDW de forma gratuita desde Microsoft aquí.

Los datos de Contoso se pueden utilizar libremente bajo la licencia MIT, como se describe en este documento. Actualicé el conjunto de datos para cambiar los datos a fechas contemporáneas y eliminé todas las tablas que no eran necesarias para este ejemplo.