Ordenación de datos personalizada con la función ORDENARPOR

Como sabes Excel cuenta con varias formas de ordenar la información de una hoja. La más sencilla, la que conoce todo el mundo, es la herramienta Ordenar y filtrar que puedes encontrar tanto en la ficha Inicio como en la ficha Datos de la cinta de opciones. Otra forma de ordenar es mediante fórmulas. La semana pasada ya te hablé de la función ORDENAR (disponible solo para suscriptores de Microsoft 365) con la que puedes ordenar un rango de celdas por una o varias columnas basándote en órdenes habituales (alfabético, cronológico o cuantitativo).

La función ORDENARPOR va un paso más allá, pues permite ordenar tablas, matrices o rangos con un orden personalizado basado en listas o rangos de celdas, ¿útil, verdad?

Esta es su sintaxis:

=ORDENARPOR(matriz;por_orden_1;[orden_1];[por_orden_2;orden;2];…)

Los argumentos por_orden_1, por_orden_2, etc. son los rangos que se tomarán como ejemplo para ordenar la matriz y los argumentos orden_1, orden_2, etc sirven para indicar si se debe ordenar de forma ascendente (del primer elemento al último) o de forma descendente (del último elemento al primero).

Consideraciones de la función ORDENARPOR

Para que la función ORDENARPOR realice su trabajo correctamente debes tener en cuenta algunos puntos importantes:

  • Los argumentos por_orden_1, por_orden_2… deben ser un rango de una fila o una columna.
  • Tanto el argumento matriz como por_orden_1, por_orden_2… deben tener el mismo número de filas. De lo contrario la fórmula mostrará el error #¡VALOR!
  • Si la matriz devuelta por la función ORDENARPOR no se utiliza como argumento de otra función, Excel creará un rango dinámico derramado y lo rellenará con los resultados. Por tanto asegúrate de tener suficientes celdas vacías hacia abajo o hacia la derecha de la celda donde introduces la fórmula. En caso contrario obtendrás el error #¡DESBORDAMIENTO!
  • Aunque el resultado de la función ORDENARPOR se actualiza automáticamente cuando cambian los datos, la matriz introducida como argumento se mantiene fija. Esto significa que al agregar datos al lado de los datos originales, debes darle a la matriz las dimensiones apropiadas. Si no lo haces algunos datos se quedarán fuera de la matriz (y, por supuesto, no se ordenarán).

¿Cómo funciona ORDENARPOR?

Veamos cómo funciona ORDENARPOR con un ejemplo típico:

Imagina que tienes una lista con los artículos existentes en un almacén y las unidades de cada uno. Tu objetivo es ordenar los productos según su cantidad en una lista aparte. Los productos se mostrarán de forma descendente (de la cantidad mayor a la menor). Como no deseas que otras personas vean el número de unidades prefieres no incluir la columna Cantidad en los resultados.

Para que la función devuelva el resultado correcto debes introducir los siguientes argumentos:

  • Matriz: A2:A17, que es el rango que deseas que se muestre como resultado.
  • Por_orden_1: B2:B17 para ordenar según la cantidad.
  • Orden_1: -1, para decirle a Excel que deseas ordenar de forma descendente.

=ORDENARPOR(A2:A17;B2:B17;-1)

Este sería el resultado:

¿Qué hacer cuando ORDENARPOR no funciona?

Como has comprobado la función ORDENARPOR es sencilla de utilizar. No obstante podrías obtener algunos errores cuando:

  • Introduzcas el argumento por_orden incorrectamente.
    • Fíjate siempre en que el argumento matriz contiene el mismo número de filas que por_orden. De lo contrario se mostrará el error #¡VALOR!
  • No haya suficiente espacio para los resultados:
    • Como cualquiera de las otras funciones de matriz dinámica, ORDENARPOR muestra los resultados en un rango que se redimensiona automáticamente. Si se encuentra ocupado el espacio donde deben mostrarse los resultados aparecerá el error #¡DESBORDAMIENTO!
  • El libro con el origen de datos se encuentre cerrado:
    • Si el libro con la matriz de origen de datos está cerrado Excel no podrá conectarse y mostrará el error #¡REF!
  • Tienes una versión de Excel no compatible con matrices dinámicas:
    • En caso de contar con una versión que no sea Excel 365 cualquier función que devuelva matrices dinámicas devolverá el error #¿NOMBRE?

Resumen

Quizá con la herramienta Ordenar y filtrar de la cinta de opciones ya tengas cubiertas tus necesidades de ordenación de datos. Cuando esto no es así Excel 365 cuenta con dos funciones muy útiles que resuelven la situación al instante: ORDENAR y ORDENARPOR.

Todos ordenamos rangos, tablas o matrices… si tienes una forma poco habitual de hacerlo me gustaría leer tu comentario.

Respuestas

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *