Saludos a todos, por favor, necesito una fórmula que me calcule desde la celda D2 hasta la D13, el rango de horas.
Ejemplo, debe mostrarme en F2 el texto: 06:01 - 12:00 en la celda D10 debería mostrarme el texto: 18:01 - 23:59, así sucesivamente cada vez que se encuentre con esas horas en la columna D, ahora si se encuentra una celda vacía, o la palabra imprecisa, debería mostrar el texto: "imprecisa"
Adjunto una imagen explicando el problema y la urgencia de una fórmula
Adjunto | Tamaño |
---|---|
necesito_formula.jpg | 116.82 KB |
Si tu hora es una hora de verdad, Excel lo guarda como un número, entonces en tu comparación no puedes utilizar 06:00 concatenado con otras cosas, porque no lo entiende bien.
Me explico Excel guarda las fechas y horas como un número, la fecha es la parte entera y la hora es la parte decimal
en cuanto a las horas, el número representa la fracción del día, es decir, las 6 de la mañana para excel es 0.25, las 12 del mediodía se guarda como 0.5, y las 6 de la tarde es 0.75
También puedes utilizar las funciones HORA y MINUTO para que de devuelva la hora o los minutos de una celda donde tienes una hora y así hacer una comparación más parecida a nuestra forma de hablar
------
Ya sé Excel, pero necesito más.
Si, le entiendo, y si me ayuda entonces con una fórmula que cuando vea la hora en la celda D2, la ubique en el rango de horas comprendida desde las 06:00 AM, osea, mayor a 06:00 AM y menor a las 11:59am y me muestre en la celda F2 el texto Mañana. Y así sucesivamente con el resto de las horas (tarde, noche, madrugada, mañana). No sé si me doy a explicar con el mismo ejemplo de laexplicar. Gracias
puedes hacer lo siguiente:
como tienes tus horas de referencia ordenadas de menor a mayor en esa tabla donde defines qué es la mañana, la tarde y la noche, puedes utilizar la función COINCIDIR para encontrar la posición de la hora que estás buscando, con la opción de encontrar el valor que sea menor o igual qeu lo que estás buscando, es decir, que si buscas la 07:00 encontrará las 06:01 que está en la segunda posición
COINCIDIR(D2;$H$2:$K$2;1))
Luego, esta posición la puedes utilizar como argumento de la función INDICE para que te diga el nombre que corresponde a esas horas, es decir, para la segunda posición, la función INDICE nos dará el resultado "Mañana"
INDICE($H$1:$K$1;COINCIDIR(lo de antes))
Por último, si no encuentra la hora, nos va a dar un error, pero queremos que devuelva el texto "impreciso", y para conseguir esto tenemos la función SI.ERROR,
SI.ERROR(INDICE(lo de antes);"Impreciso")
creo que con esto puedes conseguir lo que necesitas.
------
Ya sé Excel, pero necesito más.
Antes que nada, gracias la formula me sirvió, pero, al encontrarse con una celda vacía me muestra la palabra "madrugada", como resulvo eso, debería decir "impreciso"
Otra duda:
Existe una formula que me indique en los bloques de horas (madrugada, mañana, tarde, noche), cuando sea mayor o igual en la fila 4 y menor o igual en la fila 5, por cada bloque de hora, desde la G hasta la J, en una misma formula, ???? quise aplicar esta formula siguiendo su comentario anterior, pero, no me funcionó:
SI.ERROR(INDICE($G$1:$J$1;COINCIDIR($D$2;">="&$G$4:"<="G5;1));"IMPRECISA")
y lo que quiero es que por cada bloque G - H - I - J me calcule las horas cuando sea mayor o igual en la fila 4 por cada columna y menor o igual en la fila 5 por cada columna (bloque de horas), puede suministrarme una formula general para esto???
Gracias.
Anexo dos imagenes.
para detectar celdas vacías puedes emplear la función ESBLANCO
SI(ESBLANCO(tucelda); ... ; ... )
Sobre la segunda duda, seguramente la función SUMAR.SI o SUMAR.SI.CONJUNTO son lo que necesitas para sumar las horas en cada intervalo
------
Ya sé Excel, pero necesito más.