Ordene los datos por cumpleaños usando VBA en Microsoft Excel

Anonim

En este artículo, crearemos una macro para ordenar los datos en la hoja por fecha de nacimiento y no consideraremos el año al ordenar los datos.

Los datos brutos constan de dos columnas, una contiene el nombre y la segunda columna contiene la fecha de nacimiento.

Explicación lógica

Hemos creado una macro, "sorting_names_by_birthday", que ordenará los datos.

En esta macro, en primer lugar insertamos fórmulas en la columna C donde encontramos la diferencia entre la fecha de nacimiento y la primera fecha de su año de nacimiento. Luego, clasificamos los datos por Nombre para clasificar los datos en orden alfabético, de modo que si dos candidatos tienen la misma fecha de nacimiento, sus nombres deberían aparecer en orden alfabético. Luego, ordenamos los datos calculando la diferencia en orden ascendente para ordenar los datos por fecha de nacimiento. Después de ordenar los datos, para eliminar las fórmulas de la columna C, elimine toda la columna C.

Para ejecutar la macro, presione Alt + F8 o vaya a la pestaña Desarrollador> haga clic en Macro.

Siga a continuación para obtener el código

 Option Explicit Sub sorting_names_by_birthday () 'Desactivando la actualización de pantalla Application.ScreenUpdating = False Dim Last_Row As Long' Buscando la última fila Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row Range ("C16"). Seleccione 'Obteniendo los días del año' Restando la primera fecha del año de la fecha de cumpleaños ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (YEAR (RC [-1]), 1,1)" 'Arrastrando la fórmula Range ("C16: C" & Last_Row) .Select Selection.FillDown 'Ordenando los datos primero por la columna A y luego por la columna C Rango ("A15"). CurrentRegion.Sort _ key1: = Range ("C15"), order1: = xlAscending, _ key2: = Range ("A15"), order2: = xlAscending, _ Header: = xlYes 'Eliminando la columna C Columnas ("C"). Eliminar rango ("A15"). Seleccione End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico