FUNCIONES MATEMÁTICAS Y DE REDONDEO DE POWER BI

Las funciones matemáticas y de redondeo de Power BI, principalmente en DAX, permiten realizar cálculos precisos, limpiar datos y controlar cómo se muestran los números en los reportes. Aunque son similares a las de Excel, tienen algunas diferencias importantes en el comportamiento, especialmente con números negativos.

Funciones de redondeo (las más importantes)

Función Qué hace Sintaxis Ejemplo Resultado
ROUND Redondeo matemático normal (0.5 hacia arriba) "ROUND(número, dígitos)" "ROUND(2.15, 1)" 2.2
ROUNDUP Siempre redondea hacia arriba (lejos de cero) "ROUNDUP(número, dígitos)" "ROUNDUP(2.11, 1)" 2.2
ROUNDDOWN Siempre redondea hacia abajo (hacia cero) "ROUNDDOWN(número, dígitos)" "ROUNDDOWN(2.19, 1)" 2.1
TRUNC Elimina los decimales (trunca) "TRUNC(número [, dígitos])" "TRUNC(2.99)" 2
INT Redondea hacia el entero inferior "INT(número)" "INT(2.99) / INT(-2.1)" 2 / -3
CEILING Redondea hacia arriba al múltiplo más cercano "CEILING(número, múltiplo)" "CEILING(4.42, 0.05)" 4.45
FLOOR Redondea hacia abajo (hacia cero) al múltiplo más cercano "FLOOR(número, múltiplo)" "FLOOR(4.42, 0.05)" 4.40
MROUND Redondea al múltiplo más cercano "MROUND(número, múltiplo)" "MROUND(17, 5)" 15
ISO.CEILING Similar a CEILING, pero con comportamiento ISO en números negativos "ISO.CEILING(número, múltiplo)" "-" -

Consejos de uso

  • Usar "ROUND" para la mayoría de los casos (precios, porcentajes, etc.).
  • Usar "ROUNDUP" cuando no quieras perder valor (ej. facturación, stock).
  • Usar "CEILING" y "FLOOR" cuando necesites redondear a múltiplos específicos (ej. a 0.05, a 10, a 100).

Ejemplos prácticos en medidas

// Redondear ventas a 2 decimales
Ventas Redondeadas = ROUND([Total Ventas], 2)

// Precio siempre hacia arriba (para no perder margen)
Precio Final = ROUNDUP([Precio Base] * 1.16, 2)

// Redondear a múltiplos de 5
Cantidad Empaque = CEILING([Cantidad], 5)

// División segura de margen
% Margen = DIVIDE([Beneficio], [Ventas], 0)

// Valor absoluto de la variación
Variación Absoluta = ABS([Ventas Actuales] - [Ventas Anteriores])