viernes, 7 de mayo de 2010

La función K.ESIMO.MAYOR.

Mencionaré una función útil a la hora de analizar datos con un orden determinado, la función K.ESIMO.MAYOR y su correspondiente para el orden inverso K.ESIMO.MENOR; funciones que nos devuelven el orden k, por arriba o por abajo, de un listado de valores.
El ejemplo que planteamos surge de la duda de un usuario:

...Según el ejemplo que te envio el problema que tengo es que necesito saber para B5:AE5, los días transcurridos (celdas en blanco) desde la ultima "x" y la anterior "x", con una formula que me lo vaya calculando automáticamente....




Tenemos distribuido por filas los días de un mes, y en otra fila más abajo, determinados días concretos marcados con una 'x'. Lo que necesitamos saber es cuántos días han transcurrido entre la última y penúltima 'x' marcadas.
Antes de aplicar la función objeto de estudio, incorporaremos un sencillo condicional en una nueva fila, que nos convierta en cero los días no marcados (en blanco):
=SI(B5="";0;B3)


Sobre estos últimos valores conseguidos, i.e., sobre el rango de celdas $B$8:$AE$8, aplicaremos la función K.ESIMO.MAYOR(matriz, k); donde sólo debemos indicar el orden k-ésimo superior del rango indicado.
Necesitamos conocer la última y la penúltima 'x', es decir, queremos conocer cuál es el valor más alto (el primer valor) y el anterior (el segundo más alto) del rango seleccionado. Escribimos:
  1. Para el mayor: =K.ESIMO.MAYOR($B$8:$AE$8;1)

  2. para el segundo mayor: =K.ESIMO.MAYOR($B$8:$AE$8;2)

Obteniendo en nuestro ejemplo el siguiente resultado:


haz click en la imagen


Por supuesto en cada momento que cambiemos nuestros días marcados, obtendremos siempre los días entre el último y penúltimo.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.