Descuadre de un 'miserable' céntimo en un cálculo matemático

No comprendo esto, y me desespera:

En una celda de una determinada hoja -en concreto la Q18, siendo ser exactos- está dispuesto el valor numérico 1408,888, aunque 'visualmente' y redondeándolo Excel muestra el guarismo 1408,89.

Bien.

Para llevar determinado valor aritmético que derivará del valor anterior a la celda Q28 -en concreto el valor de Q18 menos su 33 por ciento- tengo escrito el siguiente código:

Range("Q28").Value = Range("Q18").Value - Range("R20").Value * Range("Q18").Value / 100

Pues bien, el resultado que me ofrece la fórmula cuando pego su resultado en la Q28 -habiéndole indicado antes a través de un InputBox que el valor que va a ir a la R20 es 33- es 943,96 en lugar de los 943,95 reales.

Y es que creo que pese a que le digo -O CREO DECIRLE!!!- que tome el valor de la Q18 -el real, con tres decimales-, la fórmula hasta el pegado en la Q28 yo diría que toma el valor redondeado : 1408,89-(33*1408,89/100)=943,9563, [redondeado 943,96], pues si tomase los tres decimales, calcularía:  1408,888-(33*1408,888/100)=943,6446, [redondeado 943,95].

¿Qué hago mal? ¿Cómo fuerzo a que tome los tres decimales reales?

Respuesta
1

Te invito a SUSCRIBIRTE a mi canal de YouTube:

Excel y Macros

Ahí encontrarás más sobre Excel y Macros:

https://www.youtube.com/channel/UCs644-v3ti4SF7zE_bt_YXA 

Comparte los enlaces en tus redes sociales.


Revisa si tienes desactivada la casilla precisión en pantalla:

De esa manera no importa lo que veas en pantalla (1408,89), los cálculos se realizarán con el valor "real" de la celda (1408,888)


Comparte los enlaces en tus redes sociales.


Comenta...

2 respuestas más de otros expertos

Respuesta
1

Increíble -al menos para mí-!     : - 0

Resulta que en un muy determinado cálculo aritmético -el que casi con exclusividad he relatado en mi pregunta- si el valor inicial con el que opero aritméticamente tiene formato moneda, le suma un céntimo :-O al resultado calculado, con idénticas operaciones aritméticas, a si el formato de la celda inicial es número.

Ciertamente el tema me descoloca absolutamente.

Si no hay otro remedio prescindiré de dar formato moneda a las celdas origen de datos... pero: ¿Habría alguna forma de darles ese formato de moneda, después?, es decir, ¿una vez efectuadas las operaciones matemáticas que ocasionaban la distorsión comentada?

Respuesta
1

Podrías utilizar la función Round en tu primer fórmula mostrada aquí:

Range("Q28").Value = ROUND(Range("Q18"),3) - Range("R20").Value * ROUND(Range("Q18"),3) / 100

Esto te devolverá el valor: 943,95496, al que podrás redondear a 2 o 3 según el formato aplicado.

En mi caso, aplico formato con 2 decimales, lo que me devuelve: 943,95

[Q28].NumberFormat = "$ #,##0.00"

ROUND se puede aplicar a una sola celda (como lo solicitas aquí) o a todo el resultado de cualquier cálculo.

¡Gracias!  Elsa!!!  : - )

Finalmente he resuelto con la línea:   Range("P14:S18").NumberFormat = " #,##0.00 €"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas