Imprimir página | Cerrar ventana

función BUSCAR para horas

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86076
Fecha de impresión: 26/Marzo/2026 a las 19:24


Tema: función BUSCAR para horas
Publicado por: EstherJA
Asunto: función BUSCAR para horas
Fecha de publicación: 26/Julio/2021 a las 12:45
Hola, estoy creando una tabla de turnos de trabajadores y quiero que me arroje la hora que cada trabajador empieza el turno, contando desde columna con todas las horas y a su lado está la columna con cuantas horas hace desde esa hora. ejemplo:  
 FULANITA           LUNES
COLUMNA A  -  COLUMNA B                          Resultado: FULANITA SEMANA DEL 01 AL 07
  06:00:00          (vacia)                                LUNES:        07:00:00         8H.
  07:00:00              8                                    MARTES:      08:00:00         7H.
  08:00:00          (vacia)                                MIERCOLES: DESCANSO      0H.
  ETC...                                                         JUEVES:       ETC.....           ......
 DESCANSO
Donde la columna A lleva todas las horas hasta el DESCANSO, en la columna B sólo se rellena la hora en la que empieza el turno (con el número de horas que le tocan ese día) o se pone 0 al lado de DESCANSO.
He conseguido con BUSCAR que me dé el DESCANSO, pero no hay manera de que me dé las horas ni  pasando la columna a texto.
Sigo probando combinaciones con otras funciones a ver si doy con la tecla, pero no tengo suerte. 


-------------
Encantada de estar aquí. gracias a todos.



Respuestas:
Publicado por: xavi
Fecha de publicación: 26/Julio/2021 a las 23:41
Hola,

Asumiendo que la fila 1 contiene los títulos y que la columna A contiene las horas, la columna B el lunes, la C el martes, etc. yo lo plantearía así.

Para saber la hora de inicio en una columna concreta creo que bastaría con localizar cualquier registro de la columna con valor superior a 0. Para ello utilizaríamos la función COINCIDIR dónde el valor buscado sería 0, el lugar dónde se buscaría sería la columna del día de la semana y el tipo de coincidencia Mayor que.
Para el Lunes:

=COINCIDIR(0;B2:B15;-1)

Esa función nos devolverá la posición dentro de la matriz dónde se cumpla la condición (Nota: mayor que, en realidad, es mayor o igual que)

El resultado del COINCIDIR se puede utilizar en una función INDICE para saber el valor de la hora de inicio. Si hemos realizado el cálculo de COINCIDIR en J2, la función sería:

=INDICE($A$2:$A$15;J2)

Si lo queremos en una sola función, sustituimos:

=INDICE($A$2:$A$8;COINCIDIR(0;$B$2:$B$15;-1))

Finalmente, para saber las horas realizadas nos basta con un MAX de la columna del día de la semana. Para el lunes:

=MAX($B$2:$B$15) 

¿Te vale?

Un saludo




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: EstherJA
Fecha de publicación: 27/Julio/2021 a las 07:18
Chico, ha sido impresionante, muchas gracias, estoy deseando probar tus funciones propuestas. Yo con BUSCAR y SI.ERROR conseguí algunos resultados, pero siempre que transforme las horas en texto, por lo que para el siguiente paso me encontraba en dificultades para saber la duración con fórmulas, y ya estaba pensando en una función que interpretara un texto exacto en un número x para contabilizar las horas trabajadas. Espero que con tus funciones pueda salvar algunos pasos intermedios. Te digo cuando lo pruebe. Muchas gracias de nuevo por el interés y tu pronta respuésta.  



Imprimir página | Cerrar ventana