jueves, 30 de enero de 2020

La función desbordada ORDENAR o SORT

Hoy veremos otra de las funciones desbordadas imprescindibles, la función ORDENAR (SORT).
Su sintaxis:
=ORDENAR(matriz;[ordenar_indice];[criterio_ordenación];[por_col])

siendo
matriz: El rango o matriz para ordenar
[ordenar_indice]: Un número que indica la fila o columna por la que ordenar
[criterio_ordenación]: Un número que indica el orden deseado:
1 para orden ascendente (predeterminado)
-1 para orden descendente
[por_col]: Un valor lógico que indica la dirección de ordenación deseada
FALSO para ordenar por fila (predeterminado)
VERDADERO para ordenar por columna


Veamos algunos ejemplos.
Partamos de una Tabla (llamada 'TblDatos') con información de empleados, departamentos y unidades vendidas, la cual queremos recuperar ordenada por unidades vendidas...
Con la fórmula desbordada siguiente:
=ORDENAR(TblDatos;3;1;FALSO)
Hemos indicado que nos ordene la matriz 'TblDatos' teniendo en cuenta la tercera columna (Uds vendidas en el ejemplo) en sentido ascendente y en sentido vertical, i.e., por fila.

La función desbordada ORDENAR o SORT



Recuerda que estas funciones desbordadas (dynamics arrays) son volátiles, por lo que cambios en la matriz se reflejan automáticamente en nuestro rango desbordado.

Un uso muy frecuente de esta función es el empleo combinado o anidado con otras funciones desbordadas.

Por ejemplo, la siguiente función devuelve los departamentos registrados ordenados en sentido ascendente:
=ORDENAR(UNICOS(TblDatos[Departamento]))

La función desbordada ORDENAR o SORT



El siguiente ejemplo muestra los registros ordenados en descendente, teniendo en cuenta el departamento, siempre que sea el departamento AAA o CCC y las unidades superen las 50
=ORDENAR(FILTRAR(TblDatos;((TblDatos[Departamento]="AAA")+(TblDatos[Departamento]="CCC"))*(TblDatos[Uds vendidas]>50));2;-1)

La función desbordada ORDENAR o SORT



Un último ejemplo.
Listaremos horizontalmente, de manera única, los empleados que han trabajado en cada departamento

=TRANSPONER(ORDENAR(UNICOS(FILTRAR(TblDatos[Empleado];TblDatos[Departamento]=$F4));1;-1))

La función desbordada ORDENAR o SORT


Prueba a eliminar la función UNICOS de la 'ecuación' y notarás la diferencia...
=TRANSPONER(ORDENAR(FILTRAR(TblDatos[Empleado];TblDatos[Departamento]=$F4);1;-1))


NOTA IMPORTANTE: Todas las fórmulas desbordadas NO funcionan dentro del contexto de Tabla!!, y por tanto SIEMPRE se deben emplear en celdas 'normales' de la hoja de cálculo.
:'(

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.