domingo, febrero 18, 2007

Redondear por múltiplos en Excel

Excel tiene varias funciones para redondear, como ya vimos en notas anteriores. Pero a veces queremos redondear por múltiplos. Es decir, por saltos de un número determinado. Por ejemplo, redondear números por múltiplos de 0.25.

Si tenemos instalado el
Análisis Toolpak, podemos usar la función MROUND de la siguiente manera:
si N el número que queremos redondear y m el factor de redondeo (en nuestro caso, 0.25)

La fórmula es =MROUND(N;m)

Si no tenemos instalado el Análisis ToolPak, podemos usar esta fórmula

=REDONDEAR(N/m;0)*m

El truco consiste en dividir el número a redondear por el múltiplo, el resultado redondearlo a 0 decimales y finalmente multiplicar este resultado por el múltiplo.

En esta tabla usamos ambas funciones para redondear números aleatorios con dos decimales




La fórmula en la celda B2 es =REDONDEAR(A2/m,0)*m (m es nombre que contiene el valor del múltiplo, en nuestro caso 0.25)
La fórmula en la celda C2 es =MROUND(A2,m)

La forma de la fórmula =REDONDEAR(N/m;0)*m podemos usarla con otras funciones de redondeo y obtener resultados interesantes.

Hace unos días preguntaban en uno de los foros en castellano qué fórmula permite redondear un número por múltiplos de 0.05, de la siguiente manera:

dado el número 123.4x, donde 4x es la parte decimal, si x es menor que 5, redondear a 0; si x es igual o mayor a 5, redondear a 5. Por ejemplo,:

123.42 redondear a 123.40
123.46 redondear a 123.45

La solución es usar la fórmula =REDONDEAR.MENOS(N/m,0)*m. En esta tabla vemos los resultados (m = 0.05)


De la misma manera podemos usar =REDONDEAR.MAS, =MULTIPLO.SUPERIOR y =MULTIPLO.INFERIOR.

Los resultados pueden compararse en esta tabla (m = 0.05)


El archivo con el ejemplo se puede descargar aqui
mult_frac
mult_frac.xls
Hosted by eSnips


El sitio XLDynamics tiene una
excelente nota (en inglés) sobre el tema.


Technorati Tags:

36 comentarios:

  1. TE FELICITO. ERES DE GRAN AYUDA

    ResponderBorrar
  2. una pregunta, cómo hago para redondear esto

    si el número está entre 1,01 y 1,49 debo redondearlo a 1, 50
    si está entre 1,51 y 1,59 debo redondearlo a 2,00

    gracias

    ResponderBorrar
  3. Con =MULTIPLO.SUPERIOR(A1;0,5)

    Puedes fijarte en esta nota.

    ResponderBorrar
  4. gracias Jorge estuvo fantástico.

    Ahora te pregunto
    cómo escribir la función si para que determine si tiene que redondear a 0,50 o a 1.

    Desde ya muchas gracias
    Patricia

    ResponderBorrar
  5. Hola Jorge
    No sé si te llegó mi comentario anterior respondiendo a tu pregunta

    el rango sería entre 0,1 y 9,9

    Gracias otra vez
    Patricia

    ResponderBorrar
  6. Patricia

    está todo explicado en la nota que te menciono en mi comentario anterior.

    ResponderBorrar
  7. disculpame Jorge pero me dice que no se encuentra el blog
    Patricia

    ResponderBorrar
  8. Hola. Quiero redondear una cifra de una celda, que contiene una formula te doy un ejemplo:
    la celda F13
    =A13*B13+C13-D13
    esto me resulta 198.980 y quiero redondearla a 199.000 pero en la misma celda F13.
    se puede? llevo un par de horas tratando, se que seria mas facil hacerlo en una celda distinta pero tanto rato tratando me obsecione con la formula. desda ya te agradesco adios....

    ResponderBorrar
  9. En la celda F13 pones esta fórmula

    =MULTIPLO.SUPERIOR(A13*B13+C13-D13;1000)

    ResponderBorrar
  10. Hola Jorge. Tengo un problema a ver si te lo resumo, tengo las filas:

    A1=0,789741
    A2=0,122050
    A3=0,088209
    Total=1
    Ahora quiero truncar a valores de 4decimales pero que el resultado siga siendo la unidad.


    Muchas Gracias por tu respuesta

    ResponderBorrar
  11. Si truncás, el resultado no necesariamente será 1. Lo que podés hacer es cambiar el formato a cuatro decimales, lo que altera como se ven los números en el monitor pero no altera el resultado.

    ResponderBorrar
  12. buenas, saludos jorge, quiero redondear las calificaciones de mis alumnos, si la nota por ejemplo es 4.49 debo redondear a 4, si la nota es de 4.50 a 4.99 debo redondear a 5, me imagino es con un condicional, pero no se como detectar los decimales

    ResponderBorrar
  13. Sencillamente con la función REDONDEAR, con el argumento número de decimales puesto a 0.
    Si la nota está en la celda A1, sería

    =REDONDEAR(A1,0)

    ResponderBorrar
  14. listo amigo, lo soluciones asi.... =IF(A1-INT(A1)>0.5,ROUNDUP(A1,0.5),ROUND(A1,0.5))-...SALudos y gracias :D.. ya tengo su pagina en favoritos... pronto mas consultas... jejeje

    ResponderBorrar
  15. acabo de probar con esa solucion que usted me dijo y tambien funciona... gracias nuevamente

    ResponderBorrar
  16. Y para redondear de 1,25 a 5? Gracias

    ResponderBorrar
  17. No me queda claro que redondeo quieres hacer.

    ResponderBorrar
  18. Hola jorge mi problema es el siguiente:

    Valor que cargo 95% 5%
    1043.10 990.95 52.16

    el problema esta en q el redondeo es para arriba y si te fijas en los decimales .95 + .16 no es igual a .10 xq redondeo para arriba el .16 como hago para solucionar esto necesito trabajar con 2 decimales y que los valores q se leen sean iguales. osea me gustaria q se redonde a 52.15 y asi si me daria.
    lo necesito asi porq despues esos valores los cargo en un sistema q trabaja con 2 decimales y voy a tener un error de 0.01 centavos

    ResponderBorrar
  19. Buenos dias!!

    necesito ayudar para redondear una cifra, en mi tabla concentro calificaciones y la final se debe de redondear al proximo inmediato, excepto cuando es 5.99 debe quedar en 5 y a partir de 6 en adelante si se debe redondear 6.99 a 7. espero me hayas entendido y puedas darme una respuesta

    ResponderBorrar
  20. Tendrías que combinar una condición con la función SI. Por ejemplo
    =SI(B2=5.99,5,tu fórmula pra redondear)

    ResponderBorrar
  21. Un saludo!
    Tengo esta fórmula =REDONDEAR.MAS((C7*B$1+D$1)*F$1;-3)
    El resultado es 190050 y está redondeando a 191000 pero en realidad necesito redondearlos todos hacia arriba al 5 más cercano ... 195000 en este caso. y no doy con la fórmula. Gracias de antemano!

    ResponderBorrar
  22. Si el número a redondear estás en A1,

    =MULTIPLO.SUPERIOR(A1,5)

    o

    =MULTIPLO.SUPERIOR.EXACTO(A1,5)

    ResponderBorrar
  23. waaa ayuda necesitooo

    tengo un valor de 13.684,49
    y kiero redondearlo a 14.000,00 ¿Como lo hago?

    he probado todas las formulas y no me sale.. :(

    ResponderBorrar
  24. Tal vez si escribieras "quiero" te saldría :)
    Ahora, en serio:
    =MULTIPLO.SUPERIOR(13.684,49,1000)

    ResponderBorrar
  25. Hola, para redondear también se puede emplear la función REDONDEAR 'a secas':
    =REDONDEAR(13684,49;-3)
    Slds

    ResponderBorrar
  26. que tal buen dia una pregunta comop puedo rendondear un resultado que me da 266 a 270 es decir redondearlo a ceros tengo esta formula:

    =REDONDEAR((C7-D7)*(35%),0)el resultado es 594.65 y con esta formula se redondea a 595 pero quisiera redondearlo a 600 y me quden los resultados en multiplos de 10 gracias!!

    ResponderBorrar
  27. =REDONDEAR((C7-D7)*(35%),-2)

    o también

    =MULTIPLO.SUPERIOR((C7-D7)*(35%),10)



    ResponderBorrar
  28. hola una pregunta

    como puedo redondear a múltiplo de 500 tengo un estacionamiento y se cobra por 1/4 de hora y cada uno cuesta 500 tengo una formula =REDONDEAR.MAS($E$4*E6*24;-2)
    esta me arroja lo que tengo que cobrar pero quiero que lo redondee al multiplico de 500 superior mas cercano 500,1000,1500,2000...

    muchas gracias

    ResponderBorrar
  29. hola una pregunta

    como puedo redondear a múltiplo de 500 tengo un estacionamiento y se cobra por 1/4 de hora y cada uno cuesta 500 tengo una formula =REDONDEAR.MAS($E$4*E6*24;-2)
    esta me arroja lo que tengo que cobrar pero quiero que lo redondee al multiplico de 500 superior mas cercano 500,1000,1500,2000...

    muchas gracias

    ResponderBorrar
  30. Con MULTIPLO.SUPERIOR. Supongamos que en la celda A1 tenemos el precio por el 1/4 de hora (500), en la celda A2 la hora de entrada y en la celda B2 la hora de salida. Para calcular el pago y redondearlo a los 500 superiores más cercanos usamos

    =MULTIPLO.SUPERIOR((B2-A2)*96*$A$1,500)

    96 viene de dividir 1440 (los minutos de un día) por 15 (la base de pago).

    ResponderBorrar
  31. gracias jorge por tu ayuda no me salio en un principio porque con , me sale error lo cambie por ; y ya todo solucionado

    muchas gracias

    ResponderBorrar