Impacto de los tipos de datos decimales en Power Query y Power BI

Written by:

La elección correcta del tipo de datos para columnas numéricas en Power BI es fundamental para garantizar un rendimiento óptimo, un uso eficiente de la memoria y precisión en la presentación de informes. Este aspecto se vuelve especialmente relevante si estás preparando la certificación oficial de Microsoft, tal como explico con detalle en el curso PL-300 de Namasdata. Además, es importante entender cómo manejar los Decimales en Power Query para mejorar la precisión de los datos: https://www.namasdata.com/bundles/paquete-curso-certificacion-pl-300

Decimal flotante frente a decimal fijo (Currency)

El tipo decimal flotante permite un rango amplio de valores y alrededor de 15 dígitos de precisión significativa, similar al manejo numérico de Excel. Sin embargo, debido a su naturaleza de almacenamiento (coma flotante IEEE 754), puede introducir pequeñas imprecisiones de redondeo. Al sumar grandes cantidades de datos, estas mínimas diferencias pueden producir resultados inesperados en comparaciones, clasificaciones o rankings.

Por otro lado, el tipo decimal fijo (Currency) almacena valores con precisión exacta de cuatro decimales, evitando las imprecisiones típicas del formato flotante. Internamente, estos valores se tratan como números enteros escalados, lo que proporciona cálculos más rápidos y precisos. En contextos financieros y empresariales, esta precisión suele ser más que suficiente y preferible.

Cardinalidad y almacenamiento en memoria

La cardinalidad se refiere a la cantidad de valores distintos dentro de una columna. Con decimales flotantes, las variaciones mínimas generan múltiples valores únicos, aumentando considerablemente la cardinalidad. Esto afecta negativamente la compresión del modelo y aumenta el consumo de memoria.

Usar decimales fijos reduce significativamente estas pequeñas variaciones, logrando mejor compresión al almacenar menos valores únicos. El resultado es un modelo más eficiente y rápido al ejecutar consultas DAX.

Velocidad y precisión en informes

Al trabajar con decimales fijos, la carga computacional disminuye. Esto se traduce en consultas DAX más rápidas y una mejor respuesta en los informes. Además, garantiza consistencia en cálculos delicados, como rankings, evitando que pequeñas diferencias invisibles afecten los resultados mostrados al usuario.

Por ejemplo, dos cifras visualmente iguales (7.23) podrían diferir ligeramente en decimal flotante (7.230000001 frente a 7.229999999), afectando resultados críticos en tus análisis. Esto se evita completamente usando decimal fijo.

Transformación en Power Query: un ejemplo práctico

Supongamos una columna con importes monetarios que tienen hasta seis decimales debido a conversiones de divisas. Para optimizarla:

  • Usa Power Query para redondear o truncar a dos o cuatro decimales.
  • Cambia el tipo de datos a «decimal fijo» antes de cargar al modelo.

Este procedimiento reduce la cardinalidad y mejora considerablemente la eficiencia del modelo.

Puedes ver ejemplos prácticos en este vídeo que he preparado en YouTube:

Recomendaciones para elegir el tipo de datos adecuado

  • Usa decimal fijo (Currency) para valores monetarios, porcentajes o medidas financieras que no excedan los cuatro decimales.
  • Usa decimal flotante únicamente cuando se requieren más de cuatro decimales o se trabajan magnitudes muy grandes.
  • Usa enteros para valores que no necesitan decimales, como cantidades, conteos o códigos identificativos.

Evitar la pérdida de precisión

Antes de convertir tipos de datos, verifica cuidadosamente que la precisión adicional que eliminas no sea necesaria. Después de realizar transformaciones, valida nuevamente los totales y comparaciones importantes en tus informes para asegurar coherencia y exactitud.

Además, evita mezclar tipos numéricos en expresiones DAX para mantener la precisión deseada y evitar problemas de conversión implícita.

Conclusión

Seleccionar correctamente el tipo de dato numérico es esencial en Power BI. El uso preferente del decimal fijo (Currency) para la mayoría de escenarios empresariales aporta claras ventajas: precisión, mejor rendimiento y optimización del almacenamiento.

Si quieres profundizar en estos conceptos, te recomiendo mi curso PL-300 de Namasdata: https://www.namasdata.com/bundles/paquete-curso-certificacion-pl-300, donde abordo estas y otras técnicas de modelado eficiente en Power BI. Además, recuerda consultar el vídeo práctico en mi canal de YouTube: https://youtu.be/Rzs7p2nnRls?si=bg3LWwOmXpG8WarK para aplicar estas recomendaciones con ejemplos reales.

Al aplicar estos consejos, obtendrás modelos más robustos, informes más ágiles y una base sólida para respaldar decisiones empresariales informadas.

Aprende más sobre Power Query aquí

2 responses to “Impacto de los tipos de datos decimales en Power Query y Power BI”

  1. Avatar de José Antonio Fernández Puga
    José Antonio Fernández Puga

    Buenos días Alex,
    Creo que en la definición de cardinalidad, en lugar de referirse a la cantidad de valores únicos sería a la cantidad de valores distintos dentro de una columna.
    Muchas gracias,
    Un saludo.

    1. Avatar de Alex Ayala
      Alex Ayala

      Hola José Antonio,

      Muchas gracias por tu aportación. Revisé diversas fuentes especializadas y técnicas sobre el término «cardinalidad». Aunque ambas expresiones, «cantidad de valores únicos» y «cantidad de valores distintos», suelen usarse indistintamente en documentación técnica, coincido contigo en que el término «distintos» resulta más claro para los lectores.

      Entre las fuentes consultadas están:

      Documentación técnica de Tableau:
      https://help.tableau.com/current/pro/desktop/es-es/cardinality_and_ri.htm

      Definiciones proporcionadas por Qlik:
      https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/cardinality.htm

      Explicación en DataCamp sobre cardinalidad en ingeniería de datos:
      https://www.datacamp.com/es/tutorial/cardinality

      Documentación oficial de IBM:
      https://www.ibm.com/docs/es/iis/11.5?topic=properties-data-property-analysis

      Artículo especializado sobre cardinalidad y estadísticas en SQL Server:
      https://javiersql.wordpress.com/sql-server-que-son-las-estadisticas-en-sql-server-y-para-que-sirven/

      En conclusión, ambas expresiones son técnicamente intercambiables, pero coincido plenamente contigo en que «valores distintos» es un término más claro y facilita la comprensión inmediata por parte de los lectores. Por esta razón, voy a modificar el artículo para incorporar tu sugerencia.

      Gracias nuevamente por tu observación, que sin duda mejora el contenido.

      Un saludo,
      Alex

Deja un comentario

Descubre más desde Blog de Alex Ayala

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo