En una entrada anterior he mencionado como usar la función JERARQUIA (RANK en la versión inglesa). Allí dimos la siguiente definición:
JERARQUIA (RANK): Devuelve la jerarquía de un número en una lista de números. La
jerarquía de un número es su tamaño en comparación con otros valores de la
lista. (Si ordenara la lista, la jerarquía del número sería su posición).
Pero a veces hay situaciones en las cuales dos miembros de la lista reciben el mismo ranking, como en este caso

Como podemos ver hay "empate" entre las celdas C5 y C6. Ambas reciben el ranking 14, y el 15 no existe.
Si queremos que en caso de "empate" el ranking se establezca por orden de aparición, podemos utilizar la siguiente fórmula:
=JERARQUIA(B4,sales)+CONTAR.SI($C$4:C4,C4)-1
Si copiamos esta fórmula en todo el rango de la columna D, veremos este resultado
En nuestra fórmula, la función CONTAR.SI (COUNTIF) evalúa cuantas veces aparece el número de ranking de la celda en el rango. Si aparece sólo una vez, el resultado de CONTAR.SI será 0 y el resultado será idéntico al de la fórmula original. Si el número de ranking ya figura en el rango, el resultado de la fórmula será incrementado en 1 por CONTAR.SI
El cuaderno con el ejemplo se puede descargar
aquí
Categorías: Funciones&Formulas_,






9 comentarios:
como le puedo hacer para que las celdas con el musmo valor tengan la misma jerarquia pero el valor siguiente tenga la siguiente jerarquia. ES decir que no se brinque ninguna jerarquia.
Hola
la respuesta en esta entrada
Gracias de antemano,
Necesitaba saber como podia realizar una jerarquia condicionada por otra columna. Me explico, en el ejemplo de los agentes con las ventas, y si se repitiera el nombre del agente y tuviera diferentes ventas (el mismo agente). ¿Podria tener el ranking por agente?
Salu2, JRM
No me queda claro qué es lo que quieres hacer. Puedes mandarme un archivo con un ejemplo?
buen día Jorge, excelente tu blog y admirable la forma en que explicas las cosas.
Consulta como puedo efectuar un ranking o jerarquía condicionada con filtros de una columna, es decir, que las celdas queden parametricas sólo con el filtro deseado y sólo dentro del rango visible (que me excluya las no filtradas)
saludos
rené
No creo que se pueda hacer con una única fórmula. La única función que toma en cuenta celdas visibles es SUBTOTALES y ésta no funciona con jerarquía.
Una solución sería escribir una función definida por el usuario (UDF, macro). Otra posibilidad sería extraer la lista filtrada a otro rango en la hoja (con Filtro Avanzado) y allí aplicar la función JERARQUIA.
No se si tendra alguna falencia que todavia no detecte.
pero lo que hice es los siguiente:
al lado del valor a considerar, le agregue una serie de numeros. 0.000001 0.0000002 0.000003 y lo sume al resultado.
si aplico la jerarquia al resultado sumado con los 000000
nunca tendre 2 valores iguales y tampoco influira lo suficiente como para que el ultimo numero de la lista de 800 empleados por ejemplo, sea superior al numero uno ya que a lo sumo tendria la jerarquia 800,0000800 mientras que el numero uno de la lista sera el (por ejemplo) 66,000000001
Espero haber sido claro y que esto le pueda servir a alguien.
Matias Parenti
Como puedo programar el rank para que me varié de fila y columna de acuerdo a la que yo quiera, me explico cuando yo grabo una macro el código me aparece es este ActiveCell.FormulaR1C1 = "=RANK(RC[-1],RC[-1]:R33C7,0" como lo puedo modificar para que r=a la fila que yo quiero, c= a la columna que yo quiero. gracias espero me puedan ayudar
No está claro por qué quieres o tienes que usar macros, pero lo que tienes que hacer es definir variables para los rangos. Como supongo que no tienes mucha experiencia con macros, te sugiero que uses fórmulas con rangos dinámicos.
Publicar un comentario en la entrada