miércoles, 26 de agosto de 2015

Ordenar con Fórmulas en Base a dos Criterios

"Mi pregunta es la siguiente ¿Cómo solucionar el ordenar con fórmulas una lista con cifras repetidas utilizando una segunda variable? En el ejemplo que nos muestras en Ordenar Automáticamente una Lista con Valores Repetidos me interesa ordenar los casos repetidos teniendo en cuenta el número de empleados de cada zona. Es decir, que quede por delante, en caso de iguales ventas, la zona que menos empleados tenga".

Empecemos recordando el ejemplo en cuestión y añadiéndole, de paso, la columna de número de empleados:
Como se puede comprobar, hay zonas que obtienen idéntica cifra de ventas, como por ejemplo Galicia, Asturias y Madrid o Aragón y País Vasco, etcétera. En el post Ordenar Automáticamente una Lista con Valores Repetidos resolvimos la cuestión de ordenar automáticamente (con fórmulas) esta lista y, por otro lado, resolvimos el problema de encontrarnos con valores repetidos. En este caso lo que buscamos es ordenar por medio de fórmulas esta lista pero en base no a uno si no a dos criterios. Es decir, que primero ordene las zonas en base a la cifra de ventas y que en aquellos casos en los que haya empate sea el número de empleados el criterio a seguir para establecer el orden.
Lo primero que hacemos es crear una columna para realizar un proceso intermedio, a la que llamaremos Proceso1:
La fórmula que he escrito en la celda G3 y que después he copiado hasta G14 es:
=D3+1-(E3/10000)
Lo que hago es sumar a la cifra de ventas el número de empleados pero "ponderándolo". Al dividir la cifra de empleados por un número lo suficientemente grande lo que conseguimos es que al sumárselo a la cifra de ventas no altere la parte entera de dicho número (por lo que la cifra de ventas será el primer elemento de orden) pero pueda establecer una jerarquía con los decimales. El problema aquí es que queremos que aparezca primero la zona con más ventas PERO con MENOS empleados. Para conseguir esto lo que hacemos es restarle a 1 el resultado del cociente que acabo de explicar, o lo que es lo mismo:
1-(E3/10000). Con esta expresión no alteramos la parte entera de las ventas y conseguimos establecer un orden de menor a mayor con los decimales. Así las cosas, aplicamos ahora la función JERARQUIA: En la celda I3 escribimos la fórmula:
=JERARQUIA(G3;$G$3:$G$14)   y la copiamos hasta la celda I14:
Procedemos ahora a identificar cada una de estas cifras con la zona en cuestión. Para ello preparamos la siguiente salida de datos:
Nos situamos en la celda C18 y escribimos:
=INDICE($C$3:$C$14;COINCIDIR($B18;$I$3:$I$14;0))   y copiamos hasta C29:
En D18 escribimos:
=BUSCARV($C18;$C$3:$E$14;2;FALSO)   y copiamos hasta D29.
En E18 escribimos:
=BUSCARV($C18;$C$3:$E$14;3;FALSO)   y copiamos hasta E29:
Problema resuelto!

4 comentarios:

  1. Hola Kiko, me encanta tu blog y estoy buscando algun articulo para mi duda pero no encuentro :( , mi duda es... tengo una hoja de evaluación para futbolistas (tecnica, pase, pie malo, etc etc.un total de 37 variables ) mi duda es... se podria ponder debajo de la tabla apartado de comentarios donde se divida en 2 columnas: una que te diga los 5 (por decir un ejemplo) de mejores cualidades y otra columna que te diga las 5 cualidades con menor puntuacion para potenciarlas? un saludo !!!

    ResponderEliminar
    Respuestas
    1. Hola José. Te sugiero la lectura del post:
      http://lareboticadeexcel.blogspot.com.es/2009/04/jerarquia-de-un-valor-dentro-de-un.html
      El problema que planteas se puede resolver con las funciones JERARQUIA y K.ESIMO. Puedes crear columnas para procesar la información (ponderar las distintas cualidades, por ejemplo) y tras aplicar la función JERARQUIA a dicha columna obtener la información deseada. Creo que es bastante parecido a lo que se explica en el post que te recomiendo. Si necesitas ayuda adicional, por favor, házmelo saber.

      Eliminar
  2. Hola de nuevo Kiko, llevo 1hora y cuarto intentando hacerlo y no puedo.... o no se, seria posible si puedo enviarle el archivo? Un saludo y siento las molestias :(

    ResponderEliminar
  3. Claro. Mándamelo a kiko.rial@gmail.com
    Por favor indícame claramente en el archivo qué es lo que quieres conseguir. Te contestaré lo antes posible.

    ResponderEliminar