Cómo ordenar el número de columnas numéricas de una sola vez

Cómo ordenar el número de columnas numéricas de una sola vez

de entrada y salida

Tengo 350 columnas. A continuación se muestra un subconjunto de todos los datos.

Datos de muestra en una hoja de cálculo de Excel divididos en filas por año y mes y en columnas por distrito.

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".

Datos > Ordenar y filtrar > Ordenar de menor a mayor

2.Elija "Continuar con la selección actual".

Continuar con la selección actual

Como puede ver, solo se ordenó una columna.
Ordenado solo una columna

Repita esto para el resto de 349 columnas :)


Para hacerlo todo junto de una sola vez:

  1. Abra la hoja que desea ordenar.

  2. Abra el editor VBA usando Alt+F11

  3. Insertar > Módulo

  4. 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
  1. En el código, cambia ActiveSheet.Range("A2")con la dirección de la celda donde comienza tu tabla de datos, por ejemplo ActiveSheet.Range("B5").
  2. GolpearF5

Resultados:
antes de clasificar y después

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.

información relacionada