"Tengo una tabla con cifras de ventas de distintas zonas y me gustaría generar otra tabla idéntica que me ordenara automáticamente de mayor a menor dichas zonas en función de las ventas logradas".
Vamos a ello. Utilizaremos tres funciones, a saber: K.ESIMO.MAYOR, INDICE y COINCIDIR. Partimos del siguiente ejemplo:
Lo que queremos conseguir es que tras realizar las fórmulas necesarias obtengamos una copia de la lista original pero ordenada en base a la cifra de ventas:
Lo primero que vamos a hacer es crear nombres para los dos rangos que utilizaremos dentro de nuestras fórmulas. Para ello seleccionamos el rango B3:B13 y en el cuadro de nombres (a la izquierda de la barra de fórmulas) escribimos el nombre ZONA. Hacemos lo mismo con el rango C3:C13 y le damos el nombre VENTAS.
Nos situamos ahora en la celda G3 y escribimos la siguiente fórmula:
=K.ESIMO.MAYOR(ventas;E3) y copiamos dicha fórmula hasta la celda G13.
La función K.ESIMO.MAYOR devuelve el k-ésimo mayor valor de un conjunto de datos. En nuestro ejemplo el conjunto de datos es el rango VENTAS y al indicarle como segundo argumento de la función E3 le estamos pidiendo el primer valor mayor de dicho conjunto (y así sucesivamente en la celda G4, G5, etcétera). De esta manera obtenemos una lista ordenada de mayor a menor de las ventas. Ya sólo nos queda colocar a la izquierda la zona con la que se corresponden dichas ventas.
Nos situamos ahora en la celda F3 y escribimos la fórmula:
=INDICE(zona;COINCIDIR(G3;ventas;0))
La función COINCIDIR nos proporciona el número de fila en el que se encuentra cada cifra de ventas en la tabla original. Introduciendo este dato en la función INDICE como argumento de número de fila ya tenemos resuelto el problema de localizar la zona con la que se corresponde cada cifra de ventas.
Ahora, cada vez que modifiquemos alguna cifra en la tabla original la tabla de la derecha se reorganizará automáticamente. Puede comprobarlo escribiendo, por ejemplo, 400 en Galicia y 600 en Madrid. El resultado será esta otra tabla: