Hace ya bastante tiempo conté la manera de ordenar valores numéricos en un rango de celdas (ver). Hoy vamos a aplicar una técnica similar para ordenar un conjunto de celdas con texto.
En particular aprenderemos la particularidad de la función CONTAR.SI respecto a esta ordenación.
Nuestro objetivo será ordenar en sentido ascendente, esto es de A a Z, este conjunto de celdas:
Para esto es fundamental comprobar los valores resultantes de aplicar CONTAR.SI sobre un rango de celdas con texto, veamos la imagen siguiente donde he colocado las cinco vocales...
Observamos que la función:
=CONTAR.SI($A$2:$A$6;">="&A2)
con el operador mayor o igual que nos devuelve el número de elementos ordenados posteriores a la celda condicionada...
De igual forma
=CONTAR.SI($A$2:$A$6;"<="&A2)
nos dice el número de elementos en el rango a evaluar anteriores a la celda condicionada...
Dicho de otro modo el operador mayor o igual a me da una ordenación alfabética en sentido descendente (de Z a A), y el operador menor o igual a en sentido ascendente (de A a Z).
Así que ya tenemos la primera parte de nuestra fórmula matricial.
Si volvemos sobre nuestro listado original a ordenar en sentido ascendente, y para trabajar de una manera más sencilla, le asignaremos un nombre definido 'listado':
listado =Hoja1!$A$2:$A$20
A continuación seleccionaremos el rango contiguo en B2:B20 y en la celda activa B2 escribiremos nuestra matricial:
=INDICE(listado;COINCIDIR(K.ESIMO.MENOR(CONTAR.SI(listado;"<"&listado);FILA()-1);CONTAR.SI(listado;"<"&listado);0))
tras lo cual presionaremos Ctrl+Mayusc+Enter.
El resultado será nuestro 'listado' ordenado de A a Z:
En particular aprenderemos la particularidad de la función CONTAR.SI respecto a esta ordenación.
Nuestro objetivo será ordenar en sentido ascendente, esto es de A a Z, este conjunto de celdas:
Para esto es fundamental comprobar los valores resultantes de aplicar CONTAR.SI sobre un rango de celdas con texto, veamos la imagen siguiente donde he colocado las cinco vocales...
Observamos que la función:
=CONTAR.SI($A$2:$A$6;">="&A2)
con el operador mayor o igual que nos devuelve el número de elementos ordenados posteriores a la celda condicionada...
De igual forma
=CONTAR.SI($A$2:$A$6;"<="&A2)
nos dice el número de elementos en el rango a evaluar anteriores a la celda condicionada...
Dicho de otro modo el operador mayor o igual a me da una ordenación alfabética en sentido descendente (de Z a A), y el operador menor o igual a en sentido ascendente (de A a Z).
Así que ya tenemos la primera parte de nuestra fórmula matricial.
Si volvemos sobre nuestro listado original a ordenar en sentido ascendente, y para trabajar de una manera más sencilla, le asignaremos un nombre definido 'listado':
listado =Hoja1!$A$2:$A$20
A continuación seleccionaremos el rango contiguo en B2:B20 y en la celda activa B2 escribiremos nuestra matricial:
=INDICE(listado;COINCIDIR(K.ESIMO.MENOR(CONTAR.SI(listado;"<"&listado);FILA()-1);CONTAR.SI(listado;"<"&listado);0))
tras lo cual presionaremos Ctrl+Mayusc+Enter.
El resultado será nuestro 'listado' ordenado de A a Z:











