Tengo 350 columnas. A continuación se muestra un subconjunto de todos los datos.
Utilicé la herramienta "Ordenar de menor a mayor". Da resultados solo para una columna. De lo contrario, puede ordenar la primera columna y las demás columnas cambiarán según la primera. Pero quiero ordenar todas las columnas AZ por separado.
Quiero ordenar los datos por distrito.
Respuesta1
1.Seleccione la columna que desea ordenar. Luego haga clic en "Ordenar de menor a mayor".
2.Elija "Continuar con la selección actual".
Como puede ver, solo se ordenó una columna.
Repita esto para el resto de 349 columnas :)
Para hacerlo todo junto de una sola vez:
Abra la hoja que desea ordenar.
Abra el editor VBA usando Alt+F11
Insertar > Módulo
Pega este código:
Sub sort_columns_separately_AZ() Dim rngStart como rango Dim rngHeaders como rango Dim c como rango Establecer rngStart = ActiveSheet.Range("A2") Establecer rngHeaders = ActiveSheet.Range(rngStart, rngStart.End(xlToRight)) Para cada c en rngHeaders ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Agregar clave:=c, _ OrdenarEn:=xlSortOnValues, Orden:=xlAscendente, OpciónDatos:=xlSortNormal Con ActiveSheet.Sort .SetRange ActiveSheet.Range(c, c.End(xlDown)) .Encabezado = xlSí .MatchCase = Falso .Orientación = xlArribaAAbajo .SortMethod = xlPinYin .Aplicar Terminar con Próximo Subtítulo final
- En el código, cambia
ActiveSheet.Range("A2")
con la dirección de la celda donde comienza tu tabla de datos, por ejemploActiveSheet.Range("B5")
. - GolpearF5
Nota: si tiene celdas vacías en sus datos, este código necesitará ajustes para funcionar correctamente en aquellas columnas que tienen celdas vacías.