Respuestas:
TRUNC()
está diseñado para eliminar la parte decimal de cualquier número inmediatamente y sin ninguna modificación a la parte no decimal.
Entonces, según la respuesta de LinYan , solo necesita usar:
TRUNC(A1)
para obtener la parte entera del valor en A1
A1-TRUNC(A1)
para obtener la parte fraccionaria del valor en A1
A diferencia FLOOR()
, TRUNC()
funciona en números positivos y negativos sin requerir ajustes, y funciona de la misma manera en Microsoft Excel y LibreOffice.
FLOOR()
requiere que el parámetro de significación tenga el mismo signo que el número que se está procesando (o de lo contrario arrojará un error), por lo que 1
al final tendría que cambiarse -1
para procesar números negativos, o podría insertar SIGN()
y complicar innecesariamente la fórmula.
Y, en OpenOffice y LibreOffice, FLOOR()
también tiene un tercer parámetro "modo" adicional (en comparación con Excel) que cambia los resultados que la función devuelve para números negativos.
puede probar la FLOOR
función, floor(A1,1)
para la parte entera de A1, A1-floor(A1,1)
para la parte decimal de A1.
Por ejemplo, imagine que A1 es 167.583:
int(A1)
daría 167 y
mod(A1,1)
daría 0.583.
int(1.6) === 1
y int(-1.6) === -2
... Pero trunc(decimal;0)
funciona correctamente para ambos.
No piense que hay una función específica para hacer esto, sin embargo, al anidar un par puede hacerlo.
Suponiendo que está intentando devolver el valor del derecho de decimal para la celda A1, la fórmula sería:
=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))
Efectivamente, lo que está haciendo aquí es usar la función MID para devolver cierto número de caracteres comenzando en el punto decimal. Las 3 referencias a A1 deben actualizarse para cada celda a la que apunta para que funcione correctamente.
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)
¿No sería perfecto y estético también?