Quien hace conversiones?

Necesito de su colaboración. Tengo un problemita con un dato que necesito.
Resulta que tengo una cifra (31.51875) esta cifra corresponde a una suma de horas (equivalentes a tiempo de capacitación a personal). El punto es que necesito que este valor se convierta en años, meses, días, horas, minutos. Buscando en internet encontré una formula que me los convierte en años, meses, días pero me hacen falta las horas y minutos.
Dicha formula es esta
=ENTERO(S1/360)&" años, "&ENTERO((S1-ENTERO(S1/360)*360)/30)&" mes y "&ENTERO(S1-(ENTERO(S1/360)*360+ENTERO((S1-ENTERO(S1/360)*360)/30)*30))&" días"
En la celda S1 esta la cifra mencionada en la parte de arriba.
Como no soy muy ducho con el excel no he podido agregarle estas horas y minutos, se que no tiene mucho complique pero no lo he podido hacer y por esta razón he tenido que acudir a su ayuda.
Agradezco de antemano la colaboración que me pueda prestar en el tema.

1 respuesta

Respuesta
1

Como puedes ver la formula se complica a cada paso q

Vaya, se mandó sola las respuesta y todo lo que escribeí después no me ha dejado mandarlo y se ha perdido.

Decía que como ves la fórmula se complica mucho en cada paso, al final va a quedar algo completamente incomprensible y es probable que Excel admita la fórmula se se exceden los límites.

Frente a eso te ofrezco dos opciones.

1) Calcularlo con una macro. Las macros utilizan un lenguaje mucho más amigable que las funciones Excel. Yo te mandaría la macro, si no sabes como introducirla podrías mandarme el fichero y yo lo haría

2) Usando celdas independientes para los años, meses, días, horas y minutos. Asi se aprovechan los cálculos ya realizados y es mucho mas comprensible todo.

Ya me dirás. Si optas por mandarme el fichero hazlo a

[email protected]

Pon como asunto el título de la pregunta.

Esta es la macro que hace esa conversión.

Function amdhm(ByVal x As Double) As String
Dim a, m, d, h As Integer, min As Double
a = Int(x / 360)
x = x - 360 * a
m = Int(x / 30)
x = x - 30 * m
d = Int(x)
x = x - d
h = Int(24 * x)
x = x - h / 24
min = x * 1440
amdhm = a & " años, " & m & " meses, " & d & " días, " & h & " horas y " & Round(min, 2) & " minutos"
End Function

En la casilla donde quieras que aparezca el resultado escribe la fórmula

= amdmh(S1)

Y la macro insértala en un módulo con el editor de Visual Basic

Si te interesa, no costaría mucho hacer que los ceros no aparecieran

Te mando el fichero para que lo veas mejor. Por cierto el ejemplo que ponías en el e-mail estaba mal calculado, en el fichero tienes el cálculo correcto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas