Quieres agregar un botón de ordenación en Excel. La ordenación es una forma sencilla de ver los valores más altos o más bajos en tus datos. Esta es una tarea tan común en el análisis de datos que tener un botón que proporcione un método de un solo clic para ordenar tus datos te ahorrará tiempo.
Agregar un botón de ordenación con filtros
Cuando tienes un conjunto de datos tabular en Excel, puedes agregar interruptores a los encabezados de columna que te permiten ordenar y filtrar los datos. Esta es la forma más sencilla de agregar un botón de ordenación a tus datos que es visible y está disponible para su uso en todo momento.

Aquí te mostramos cómo puedes agregar opciones de ordenación y filtrado a tus datos.
- Selecciona los datos que deseas ordenar.
- Ve a la pestaña Datos.
- Haz clic en el comando Filtro.

Esto agregará filtros a tus datos y podrás verlos en el lado derecho de cada encabezado de columna de tus datos.

Cuando haces clic en uno de estos, se revelarán las diversas opciones de ordenación y filtrado. Estas te permitirán ordenar rápidamente cualquier campo en orden ascendente o descendente con los comandos Ordenar de menor a mayor o Ordenar de mayor a menor.
Agregar un botón de ordenación con un atajo de teclado
Los interruptores de ordenación y filtrado también se pueden agregar a la selección de datos con una simple combinación de atajos. Selecciona tu rango de datos y presiona el atajo de teclado Ctrl+ Shift+ Lpara agregar los interruptores de ordenación y filtrado. Esta es una forma sencilla de agregar o eliminar filtros, ya que el enlace actúa como un interruptor para activarlos o desactivarlos.
Agregar un botón de ordenación con VBA
VBA es un lenguaje de codificación disponible en la versión de escritorio de Excel y te permitirá crear soluciones personalizadas. Puedes crear una macro VBA para ordenar tus datos y asignarla a un botón en la hoja.
Luego puedes diseñar tu botón como quieras y agregar texto personalizado al botón. Esta es una excelente opción cuando otros usarán el libro de trabajo, ya que ayuda a que la ordenación sea muy intuitiva para el usuario. Aquí te mostramos cómo puedes crear tu propio botón de ordenación con VBA.
Presiona el atajo de teclado Alt+ F11para abrir el editor de Visual Basic.

Ve al menú Insertar del editor de Visual Basic y selecciona la opción Módulo . Esto crea un módulo de código donde puedes agregar tu código VBA que ordenará tus datos.
Sub ToggleSortOrder() Dim ascCell As Boolean ascCell = ActiveSheet.Range("ascCell").Value2 If ascCell = True Then ActiveSheet.Range("ascCell").Value2 = False With ActiveWorkbook.Worksheets("Data").ListObjects("Cars").Sort .SortFields.Clear .SortFields.Add2 Key:=Range("Cars[[#All],[Year]]"), Order:=xlAscending .Apply End With Else ActiveSheet.Range("ascCell").Value2 = True With ActiveWorkbook.Worksheets("Data").ListObjects("Cars").Sort .SortFields.Clear .SortFields.Add2 Key:=Range("Cars[[#All],[Year]]"), Order:=xlDescending .Apply End With End If End Sub
Agrega el código VBA anterior a tu nuevo módulo. La ToggleSortOrder()subrutina te permite alternar la ordenación en una tabla de Excel llamada Carsen la hoja llamada Dataentre orden ascendente y descendente de la Yearcolumna.
Comienza estableciendo una variable llamada ascCellen el valor de un rango llamado en la hoja llamada ascCell . Este es un valor Verdadero o Falso y se utiliza para rastrear la ordenación actual y permite que la rutina cambie de orden ascendente a descendente.
![]()
Puedes crear el rango con nombre en tu hoja seleccionando una celda y luego escribiendo ascCell en el cuadro de nombre y presionando Enter.
Una instrucción If... Then... Elseluego ordena los datos según el valor de ascCell. Cada parte de la instrucción Iftambién reescribe en el rango nombrado ascCell para rastrear la ordenación.

Ahora puedes crear un botón en tu hoja y configurar el botón para que ejecute tu código VBA cuando se haga clic en él.
Agregar un botón de ordenación con Scripts de Office
Office Scripts es un lenguaje de programación disponible para las versiones de escritorio y web de Excel con un plan de M365 Business. Office Scripts será el camino a seguir si necesitas un botón de ordenación personalizado que funcione tanto en la versión de escritorio como en la web de Excel.

Ve a la pestaña Automatizar y haz clic en la opción Nuevo script para abrir el editor de código y crear un nuevo script.

function main(workbook: ExcelScript.Workbook) { let cars = workbook.getTable("Cars"); let ascCell = workbook.getActiveWorksheet().getRange("ascCell").getValue(); let ascValue: boolean; if (ascCell === true) { ascValue = true; workbook.getActiveWorksheet().getRange("ascCell").setValue(false); } else { ascValue = false; workbook.getActiveWorksheet().getRange("ascCell").setValue(true); }; cars.getSort().apply([{ key: 2, ascending: ascValue }], false); }
Agrega el código anterior al editor de código y presiona el botón Guardar script.
Este código se puede usar para ordenar una tabla en un libro de Excel. Comienza declarando dos variables: carsy ascCell. La carsvariable almacena la tabla del libro de trabajo, mientras que la ascCellvariable almacena un valor que indica si la operación de ordenación debe realizarse en orden ascendente ( verdadero ) o descendente ( falso ).
Comprueba el valor de la celda del rango con nombre ascCell para determinar qué orden de ordenación se debe utilizar. Esta celda se utiliza para rastrear la opción de ordenación aplicada anteriormente.
El código actualizará el rango ascCell cada vez que se ejecute. Esto permite que el código actúe como un interruptor entre orden ascendente y descendente.
Si ascCell se establece en verdadero , los datos se ordenan en orden ascendente, de lo contrario, se ordenan en orden descendente.
El valor ascCell se utiliza para establecer la ascValuevariable que determina la ordenación.
Finalmente, llama al .getSort()método con dos parámetros. Esto asegura que la operación de ordenación deseada se realice en la tabla.
key: 2representa qué columna se debe ordenar. Esto usa un índice basado en cero, por lo que el 2 ordenará la tercera columna.ascending: ascValuees un valor booleano para establecer si deseas una ordenación ascendente ( verdadero ) o descendente ( falso ).

Este código se puede ejecutar desde el botón Ejecutar en el editor de código , pero también puedes crear un botón en la hoja que ejecutará el código. Haz clic en el icono Elipsis en el área superior derecha del editor de código y selecciona la opción Agregar botón del menú. Esto crea un botón que flota sobre la cuadrícula y ejecutará el Office Script cada vez que se presione.

Agregar un botón de ordenación con un Slicer
Excel tiene una opción Slicer muy útil para filtrar los datos de la tabla. Es un objeto de filtro interactivo que flota sobre la cuadrícula y permite a un usuario filtrar un campo determinado en los datos haciendo clic en los elementos del slicer.
Desafortunadamente, no existe un objeto equivalente para ordenar los datos. Pero puedes crear una herramienta de ordenación de datos utilizando slicers y la función de matriz dinámica SORTBY.
Esto te permite configurar slicers con opciones ascendentes y descendentes que se pueden seleccionar y obtener la ordenación deseada. Aquí te mostramos cómo configurarlo.

Primero, necesitarás configurar una segunda tabla que finalmente se conectará a los slicers. Esta tendrá 2 columnas, una contendrá las etiquetas a mostrar en los slicers y la otra contendrá las entradas de argumentos requeridas para la función SORTBY. En la tabla anterior, la columna Tipo contiene las etiquetas y la columna Valor contiene los argumentos SORTBY correspondientes.
La tabla tendrá dos filas porque la función SORTBY tiene dos entradas posibles. Puede ordenar en orden ascendente ( 1) o descendente ( -1).

Ahora puedes crear slicers para esta tabla secundaria. Selecciona la tabla, ve a la pestaña Diseño de tabla y haz clic en el comando Insertar slicer.

Se abrirá el menú Insertar Slicer donde puedes seleccionar el campo en el que basar el slicer. Selecciona la columna Tipo que contiene las etiquetas Ascendente y Descendente y presiona el botón Aceptar para crear el slicer.
Esto creará un slicer donde puedes seleccionar Ascendente o Descendente . Esto filtrará la tabla para mostrar solo la opción seleccionada. Ahora necesitarás una forma de obtener el valor visible de tu tabla filtrada. Esto se puede lograr con la función SUBTOTAL. Te permitirá agregar una columna según las filas visibles.

=SUBTOTAL(104, Sort[Value])
La fórmula SUBTOTAL anterior obtendrá el valor máximo basado en las filas visibles en la columna Valor. Devuelve 1 cuando la tabla no está filtrada o está filtrada en Ascendente y devuelve -1 cuando la tabla está filtrada en Descendente.

=SORTBY(Cars, Cars[Year], SUBTOTAL(104, Sort[Value]))
Este resultado SUBTOTAL se puede utilizar en la función SORTBY para cambiar la ordenación utilizando slicers. La fórmula anterior devolverá la tabla Cars ordenada por la columna Year según los resultados de SUBTOTAL.

¡Ahora puedes ordenar tus datos con un slicer!
Conclusiones
Ordenar datos es una parte fundamental de cualquier análisis de datos, y tener un botón para ello hará que el proceso sea mucho más fácil. Los interruptores de filtro ofrecen un botón integrado para cada encabezado de columna en los datos, y estos se pueden agregar rápidamente con un atajo. Pero las opciones de ordenación que proporcionan no son obvias.
Otra forma de insertar un botón de ordenación para sus datos es con VBA o Office Scripts. Ambos te permitirán crear código para ordenar tus datos y estos se pueden agregar a un botón colocado en tu hoja.
Autor John MacDougall
Pubblicato in Excel
Sé el primero en comentar