⚠️ Ojo con esto: El redondeo por defecto en M es AwayFromZero (el "normal"), no el bancario. Si necesitas consistencia con Excel usa RoundingMode.AwayFromZero explícitamente.
Number.RoundDown / Number.RoundUp
Principiante
Sintaxis
Number.RoundDown(number as nullable number, optional digits as nullable number) as nullable number
Number.RoundUp(number as nullable number, optional digits as nullable number) as nullable number
¿Qué hace?
RoundDown trunca siempre hacia abajo (equivalente a REDONDEAR.MENOS). RoundUp redondea siempre hacia arriba independientemente del valor decimal.
Number.IntegerDivide(number1 as nullable number, number2 as nullable number, optional precision as nullable type) as nullable number
Number.Mod(number as nullable number, divisor as nullable number, optional precision as nullable type) as nullable number
¿Qué hace?
IntegerDivide realiza la división entera (cociente sin decimales). Number.Mod devuelve el resto de la división.
Ejemplo
Number.IntegerDivide(17, 5) // 3 (17 ÷ 5 = 3 resto 2)
Number.Mod(17, 5) // 2
// Detectar números pares
Number.Mod([Cantidad], 2) = 0 // true si es par
// Convertir minutos totales a "X h Y min"
let horas = Number.IntegerDivide([MinutosTotales], 60),
mins = Number.Mod([MinutosTotales], 60)
in Text.Format("#{0}h #{1}min", {horas, mins})
➕
Operaciones Matemáticas
Number.Abs
Principiante
Sintaxis
Number.Abs(number as nullable number) as nullable number
¿Qué hace?
Devuelve el valor absoluto de un número (elimina el signo negativo). Útil para calcular variaciones y diferencias.
Ejemplo
Number.Abs(-42) // 42
Number.Abs(42) // 42
// Calcular diferencia absoluta entre objetivo y real
Number.Abs([VentasReal] - [VentasObjetivo])
Number.Power / Number.Sqrt
Principiante
Sintaxis
Number.Power(number as nullable number, power as nullable number) as nullable number
Number.Sqrt(number as nullable number) as nullable number
¿Qué hace?
Number.Power eleva un número a una potencia. Number.Sqrt calcula la raíz cuadrada.
Number.Log(number as nullable number, optional base as nullable number) as nullable number
Number.Log10(number as nullable number) as nullable number
Number.Exp(number as nullable number) as nullable number
¿Qué hace?
Number.Log calcula el logaritmo (base e por defecto, o la base especificada). Number.Log10 calcula el logaritmo en base 10. Number.Exp calcula e elevado a un número.
Ejemplo
Number.Log(Number.E) // 1 (logaritmo natural de e)
Number.Log(100, 10) // 2 (log base 10 de 100)
Number.Log10(1000) // 3
Number.Exp(1) // 2.718... (número e)
Funciones trigonométricas
Avanzado
Sintaxis
Number.Sin(number as nullable number) as nullable number
Number.Cos(number as nullable number) as nullable number
Number.Tan(number as nullable number) as nullable number
Number.Asin / Number.Acos / Number.Atan
¿Qué hace?
Las funciones trigonométricas estándar. Los ángulos se expresan en radianes. Usa Number.PI / 180 para convertir grados a radianes.
Ejemplo
// Seno de 90 grados
Number.Sin(Number.PI / 2) // 1
// Calcular distancia entre dos coordenadas (fórmula Haversine simplificada)
let lat1 = 40.4168, lon1 = -3.7038, // Madrid
lat2 = 41.3851, lon2 = 2.1734, // Barcelona
R = 6371,
dLat = (lat2 - lat1) * Number.PI / 180,
dLon = (lon2 - lon1) * Number.PI / 180,
a = Number.Power(Number.Sin(dLat/2), 2)
in Number.Round(R * 2 * Number.Asin(Number.Sqrt(a)), 0)
// ≈ 506 km
🔄
Conversión
Number.From
Principiante
Sintaxis
Number.From(value as any, optional culture as nullable text) as nullable number
¿Qué hace?
Convierte cualquier valor compatible a número. Acepta textos, lógicos (true=1, false=0) y fechas (número de serie).
Number.ToText(number as nullable number, optional format as nullable text, optional culture as nullable text) as nullable text
¿Qué hace?
Convierte un número a texto con formato personalizado. Los formatos siguen las convenciones .NET: "N2" (2 decimales con separadores), "C" (moneda), "P" (porcentaje), "X" (hexadecimal).
💡 Tip kawaii:Number.ToText con formato "N0" y cultura "es-ES" es perfecto para mostrar números grandes con separadores de miles sin decimales, como totales de ventas.
🎲
Números Aleatorios
Number.Random / Number.RandomBetween
Intermedio
Sintaxis
Number.Random() as number
Number.RandomBetween(bottom as number, top as number) as number
¿Qué hace?
Number.Random genera un número decimal aleatorio entre 0 y 1. Number.RandomBetween genera un número decimal aleatorio entre dos valores.
Ejemplo
Number.Random() // ej. 0.7342...
Number.RandomBetween(1, 100) // ej. 67.23...
// Generar ID aleatorio entero entre 1000 y 9999
Number.RoundDown(Number.RandomBetween(1000, 9999))
⚠️ Ojo con esto: Los números aleatorios en Power Query se recalculan en cada actualización del informe. Si necesitas valores estables, genera los datos aleatorios una sola vez y guárdalos.
➕
Constantes Matemáticas
Number.E / Number.PI / Number.Epsilon
Intermedio
Sintaxis
Number.E as number // ≈ 2.71828...
Number.PI as number // ≈ 3.14159...
Number.Epsilon as number // Número positivo más pequeño representable
Number.NaN as number // Not a Number
Number.PositiveInfinity as number
Number.NegativeInfinity as number
¿Qué hace?
Constantes matemáticas predefinidas en M. Muy útiles para cálculos científicos, trigonométricos y para manejar casos especiales como infinito o NaN.
Ejemplo
// Área de un círculo con radio 5
Number.PI * Number.Power(5, 2) // 78.5398...
// Comprobar si un valor es NaN (no es número)
Number.IsNaN(0/0) // true
// Evitar división por cero
if [Denominador] = 0 then null else [Numerador] / [Denominador]
📌 Buena práctica: Usa Number.IsNaN para validar resultados de operaciones matemáticas complejas antes de mostrarlos. Los valores NaN pueden propagarse silenciosamente en cálculos encadenados.
🚀 ¡Números dominados! Ahora explora las Funciones de Fecha y Hora para trabajar con dimensiones temporales.