Saltar al contenido

Sumar horas extras diurnas y nocturnas


katechica

Recommended Posts

publicado

Respetados Usuarios:

tengo un cuadro en excel donde estoy registrando las horas extras de un empleado, tengo hora de entrada y salida, total de horas y demás. pero necesito saber del rango de la hora de entrada y salida cuantas horas son diurnas (6 a.m. a 10 p.m.) Cómo lo puedo hacer.

La formula que inventé inicialmente fue:=sumar.si(D39:E39;=>6:00=<22:00;0) pero no me funciona que debo hacer?

Horas Extras Alex.xls

publicado

Hola,

Pues veo algunos problemas que deberías resolver primero, por ejemplo:

[TABLE=width: 633]

[TR]

[TD]26[/TD]

[TD]JUEVES[/TD]

[TD]08:45:00[/TD]

[TD]17:00:00[/TD]

[TD]06:30:00[/TD]

[/TR]

[/TABLE]

La hora de entrada es mayor que la hora de salida, al parecer entra el jueves y sale el viernes, por lo cual el modelo que estas creando debería (creo), incluir un campo o columna donde se especifiquen ademas de las horas {IN - OUT} la fechas, pues si una persona trabaja en jornada nocturna, el numero de horas extras nocturnas no le aplica pues tiene un recargo nocturno.

Pero en el caso de esta persona que trabaja una jornada de las 17:00 a 6:30, y que tiene 13:30 como mínimo trabaja las 8 horas, ¿entonces que porción de tiempo le recargas como diurna o como nocturna?

17:00 - 20:00 es diurna

20:00 - 06:00 es nocturna

06:00 - 06:30 es diurna

Le quitas una hora de descanso, de la ¿diurna a o la nocturna?

Empieza haciendo un cambio, donde el campo, celda, columna, ingreso tenga fecha&hora, lo mismo que el de salida, de esta manera la salida es mayor que la entrada y el número de horas trabajadas se pueda calcular con base en el nuevo diseño.

Ahora podríamos analizar mejor que pasa con una persona que entra a las 17:00 de un día y sale a las 06:30 AM del día siguiente.

Te cuento que es bien interesante lo que estas haciendo, alguna vez construí un modelo muy parecido para alguien.

publicado

No hay ninguna posibilidad de trabajarlo así? son horas de trabajo de 3 meses y me parece un poco dispendioso; igual el me está calculando en total de horas extras bajo este formato.

lo que quiero saber es cuantas horas extras diurnas hay en el rango de horas que trabajo

Me explico mejor:

El empleado en cuestión no tiene un horario fijo de trabajo, por lo tanto el nos pasa una planilla donde nos indica de que horas a que horas trabajó y nosotros le liquidamos las horas extras.

Las horas de trabajo normal en nuestra empresa es de Lunes a viernes 8:45 descontando la hora de almuerzo y los sábados es de 4:00 como lo muestra el cuadro.

Bajo estos parámetros y según el reporte de horas le descontamos las 8:45 o las 4:00 dependiendo del día y el resto son horas extras. Que para los fines pertinentes serian:

Hora extra diurna de 6:00 a 22:00

Hora extra nocturna de 22:00 a 6:00

publicado

Hola,

Voy a preparar un archivo con algunas dudas, cuando lo tenga listo te lo paso y de esta forma podremos ampliar el tema de las extras y los recargos.

- - - - - Mensaje combinado - - - - -

Hola,

Adjunto el archivo donde tengo las dudas, dale una mirada y vamos aclarando las mismas.

Extras.zip

publicado

Bueno muchas gracias por tu mensaje, al respecto te cuento lo siguiente la forma como liquidaría la fila 5 sería teniendo en cuenta que las horas extras correrían de 12:00 a 2:00 y que las horas extras diurnas son de 6:00 a 22:00 simplemente le pido que me las sume en la comuna g.

En el caso de la fila 6 no le sumo recargo nocturno porque fue su turno normal. Como te dije en mi anterior mensaje este empleado no tiene un horario de trabajo definido y por tal motivo lo que realizamos es simplemente descontarle las 8:45 que trabajamos a diario y el resto serían horas extras.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
    • Podrías compartir tu solucion
    • Alguien me apoya a cerrar este tema,  ya lo solucioné Gracias
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.