jueves, 5 de enero de 2012

Ordenar con JERARQUIA

Vamos a terminar esta serie de artículos dedicados a la ordenación de listas con un nuevo método utilizando la función JERARQUIA, cuya sintaxis es:

JERARQUIA(número;referencia;[orden])

Esta función devuelve la posición que un número tiene en una lista numérica. El argumento "número" es el valor cuya posición en la lista queremos conocer; "referencia" es la matriz o lista de la que forma parte "número"; "orden", puede ser 0 (u omitido), en cuyo caso la lista se considera ordenada de mayor a menor, o cualquier otro número, en cuyo caso la lista se considera ordenada de menor a mayor.

Si dos o más números son iguales JERARQUIA les asignará el mismo valor, pero los números siguientes se contarán como si los repetidos tuvieran jerarquías correlativas. Así, si a tres números iguales JERARQUIA les ha asignado las posiciones 5, 5 y 5, al número que le sigue en el orden le asignará la posición 8.

Ordenaremos la lista de los equipos vencedores de la Copa Davis en las 100 ediciones celebradas desde 1900 a 2011 (no hubo competición en los años 1901, 1910, 1915-1918 y 1940-1945). La lista está ordenada por orden alfabético de países (rango B2:E15) y debemos ordenarla por el número de títulos conseguidos (J2:M15). Usaremos las columnas G y H como columnas auxiliares.

El primer paso consistirá en asignar su posición a los números de la columna Títulos.

En G3:
=JERARQUIA(C3;$C$3:$C$15;0)

Extendemos la fórmula hasta la fila 15.

El número 1 le corresponde a los 32 títulos conseguidos por los Estados Unidos. Le sigue, con el número 2, Australia, que tiene 28 títulos. Hay dos países con el número 3, Francia y Reino Unido, con 9 victorias cada uno. No existe el número 4 ya que JERARQUIA asigna el mismo número de orden a los valores coincidentes. De este modo, saltamos al 5 que corresponde a las 7 victorias de Suecia. Tampoco existen el 10, 11, 12 y 13.

Como queremos conseguir una lista correlativa de números del 1 al 13 (hay trece países vencedores), debemos modificar un poco la fórmula.

En H3:
=JERARQUIA(C3;$C$3:$C$15;0)+CONTAR.SI($C$3:C3;C3)-1

Extendemos la fórmula hasta la fila 15. La lista es correcta.

Como ya tenemos el orden jerárquico de los vencedores, con INDICE y COINCIDIR, obtendremos la lista definitiva.

En J3:
=INDICE($B$3:$E$15;COINCIDIR(FILA($A1);$H$3:$H$15;0);COLUMNA(A$1))

Copiamos la fórmula hasta la fila 15 y, luego, hasta la columna M.

Nota: Si quisiéramos ordenar la lista por orden creciente de títulos, sólo sería necesario cambiar la fórmula de H3 por la siguiente: =JERARQUIA(C3;$C$3:$C$15;1)+CONTAR.SI($C$3:C3;C3)-1

Extendiendo la fórmula hacia abajo, el ejercicio quedaría terminado. No sería necesario modificar las fórmulas de la columna G (no interviene en el resultado final).

Importante: Microsoft ha introducido dos nuevas funciones en Excel 2010 para sustituir a la función JERARQUIA. Estas funciones son JERARQUIA.EQV y JERARQUIA.MEDIA. No se ha eliminado la antigua función JERARQUIA para mantener la compatibilidad con las anteriores versiones de Excel, pero se recomienda usar las nuevas funciones. La fórmula de H3 (ordenación decreciente) con JERARQUIA.EQV sería: =JERARQUIA.EQV(C3;$C$3:$C$15;0)+CONTAR.SI($C$3:C3;C3)-1



7 comentarios:

  1. No era más fácil ordenar descendentemente en función de la columna C?

    ResponderEliminar
  2. Muchísimas Gracias, Sr. Javier Mozo, me ha ayudado mucho para realizar una clasificación para un grupo de amigos.

    ResponderEliminar
  3. Gracias desde colombia me fue de mucha ayuda

    ResponderEliminar
  4. quiero lo siguiente nombre goles
    juan 4
    pedro 4
    chino 2
    nene 2
    borre 1
    quiero que me ponga las posiciones de cada jugador de acuerdo a sus goles. o sea que ordene asi. juan 1, pedro 1, chino 2, nene 2 y borre en lugar 3.... como le puedo hacer... con jerarquía no pude
    saludos mi correo jsdrogao@gmail.com

    ResponderEliminar
  5. quiero ordenar por posición continua de acuerdo a puntos
    nombre puntos posición
    diego 7 1
    juan 7 1
    pedro 4 3
    checo 4 3
    javi 2 2
    mane 1 4
    chavo 1 4 asi quiero que me queden ordenados de acuerdo a los goles y no 1,2,3,4,5,6

    ResponderEliminar