top of page

Ejemplo de la función INDIRECTO y HORA


El siguiente ejemplo consiste en que somos una persona que trabajamos en una empresa donde desde las ocho de la mañana hasta las dos de la tarde, estamos atendiendo un teléfono.

ree













Tenemos hecho un planing, podíamos decir, con las horas, y, queremos en estas columnas se vayan introduciendo las horas que correspondan, por ejemplo, una hora 8:30, debe de colocarse en la columna de las ocho.

ree



Por último, queremos saber en qué hora hubo más llamadas.


En el siguiente modelo es donde introducimos las horas.

ree















Decir que trabajamos con un modelo donde ya hay horas introducidas.


Pues vamos a buscar la primera hora que son las ocho.


Lo haremos en la celda G2, que es la hora ocho.


Tengo que preguntar que si la hora en el rango desde A2 donde está la primera hora de llamada hasta la última fila ocupada, por lo que vamos a usar la función HORA para extraer la hora, es igual a la hora ocho, pues, que devuelva las columnas A y B, es decir, hora de entrada, y, hora de salida, para ello, vamos a usar el condicional SI.


Como última fila voy a poner la fila 100.


=SI(HORA(A2:A100)=G1;A2:B100;""))


Aceptamos, y, tenemos una matriz desbordada con las horas que pertenecen a las ocho.

ree














Con la función ORDENAR, ordenamos las horas.


=ORDENAR(SI(HORA(A2:A100)=G1;A2:B100;""))

ree







Fijamos los rangos de búsquedas.


=ORDENAR(SI(HORA($A$2:$A$100)=G1;$A$2:$B$100;""))


Seleccionamos la función y pulsamos CTRL más C para copiar.

ree



Seleccionamos las celdas donde vamos a copiar con CTRL, tenemos que marcar todas las horas.

ree



Pulsamos CTRL más V para pegar.

ree





Ya tenemos nuestras horas cada una en su sitio.


Ahora en vertical voy a poner las horas, para calcular la suma de los minutos para cada hora.

ree











Vamos a preguntar que si la hora con la función HORA en el rango A2:A100 es igual a la primera hora, pues que nos reste ambas columnas, en caso contrario, que ponga un texto en blanco.


=SI(HORA(A2:A100)=D2;B2:B100-A2:A100;"")


Sumamos los resultados.


=SUMA(SI(HORA(A2:A100)=D2;B2:B100-A2:A100;""))


Ya tenemos el total de minutos para la primera hora.

ree




Fijamos los rangos de búsquedas, y, arrastramos.


=SUMA(SI(HORA($A$2:$A$100)=D2;$B$2:$B$100-$A$2:$A$100;""))


Ya tenemos los totales de minutos para cada hora.

ree










Lo siguiente que vamos a hacer es aplicar una regla de formato condicional para que quede resaltada la fila de más minutos, así sabremos de un simple vistazo cual ha sido la hora de más conversación.


Para ello, seleccionamos ambas columnas, desplegamos formato condicional y elegimos nueva regla.

ree




Ya lo tenemos también.


Todo esto está bien, pero hemos puesto como última fila la fila 100, pero ¿y si tenemos más de 100 llamadas?


Veamos cómo hacerlo en una celda.


Si escribo la siguiente expresión, obtendré el número de filas alfanuméricas ocupadas de la columna A.


=CONTARA(A:A)

ree













Debemos de tener en cuenta, que este resultado cuenta el encabezado, que no interesa, por lo que a la función CONTARA voy a restarle 1, como resultado tenemos 12.


Si escribo la letra A y lo concateno con CONTARA obtendré una referencia en formato de texto.


="a" & CONTARA(A:A)-1

ree














También podría usar CONTARA junto con DIRECCION de la siguiente manera:


=DIRECCION(CONTARA(A:A);1)


Obtengo la referencia en absoluta.

ree















Entonces, vamos a modificar la primera expresión, la que corresponde con la hora de las ocho.


Nosotros hemos pues desde A2 a A100, es este 100, el que tenemos que hacer dinámico.


Para ello, voy a poner entre comillas dobles desde A2:A, concateno, y, pongo la función CONTARA, y, toda esta función la encerramos en la función INDIRECTO, para que nos lo convierta en una referencia real.


=ORDENAR(SI(HORA(INDIRECTO("$A$2:$A$" & CONTARA(A:A)-1))=G1;INDIRECTO("$A$2:$b$" & CONTARA(A:A)-1);""))


Para el segundo rango que va desde A2 a B100, hacemos lo mismo.


=ORDENAR(SI(HORA(INDIRECTO("$A$2:$A$" & CONTARA(A:A)-1))=G1;INDIRECTO("$A$2:$b$" & CONTARA(A:A)-1);""))


Aceptamos y tenemos los mismos resultados, pero sabiendo cual es la última fila ocupada.


Lo siguiente que queremos es saber cuál fue la llamada de más duración, la hora de inicio y de fin.


Lo primero que voy a hacer es restar ambas columnas.


=Tabla1[Salida]-Tabla1[Entrada])


Obtengo la diferencia de todas las horas.

ree














Voy a sacar el valor máximo de esta resta.


=MAX(Tabla1[Salida]-Tabla1[Entrada])

ree






Voy a comparar el valor máximo con cada resta.


=SI(MAX(Tabla1[Salida]-Tabla1[Entrada])=Tabla1[Salida]-Tabla1[Entrada]


Si hay coincidencia le voy a decir que me devuelva ambas columns, en caso contrario, que ponga un texto en blanco.


=SI(MAX(Tabla1[Salida]-Tabla1[Entrada])=Tabla1[Salida]-Tabla1[Entrada];Tabla1;"")

ree















Ordenamos.


=ORDENAR(SI(MAX(Tabla1[Salida]-Tabla1[Entrada])=Tabla1[Salida]-Tabla1[Entrada];Tabla1;""))


Ya tenemos la hora de inicio y de fin de la llamada de más duración.

ree






Por último, vamos a aplicar una regla de formato condicional para resaltar dentro del modelo dicha llamada.


Ya sabemos que la función a usar en formato condicional debe de ser una que devuelva verdadero, o, falso, por lo que voy a usar el operador lógico Y, para preguntar por cada valor de la columna A y B.

ree





ree


















ree

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page