首页 > 解决方案 > 如何在不移动相邻列数据的情况下对多列列表进行排序

问题描述

我目前有大约 2000 列带有数字列表的列。这些列表特定于每一列(例如,A 列下面可能有 9 行不同的数字,但所有数字都特定于 A 列)。我需要一种更快的方法来按升序对每个列的数字进行排序。同样,我不希望 A 列中的数字在排序后更改任何其他列的列出方式。

例如,在 AI 列中,A1、A2 和 A3 中可能分别有 120、121、110。每列都有不同数量的数字,范围从 1 到 60(在我的示例中,A 列有 3 个数字)。我需要每列在列中列出其相应的数字以升序排列,因此 A 列将是:A1=110、A2=120 和 A3=121。我需要为 2000 列完成此操作。

如果这是在没有 VBA 的情况下完成的,我宁愿不花时间编写代码,但如果我必须提供一些帮助,我将不胜感激,因为我是 VBA 的新手。

如果这没有多大意义,我深表歉意。我一直在寻找这个答案,我看到的一切都表明每一列都需要引用相邻的单元格。我一直在一次手动地对每一列进行排序,而且它所花费的时间比想要的要长,我知道那里必须有一个解决方案。

提前致谢!

标签: excelexcel-formula

解决方案


这将需要 VBA,但它是简单的 vba。

循环列号并分别对每一列进行排序:

Sub lkjlj()
    With Worksheets("Sheet1") 'change to your sheet name
        Dim i As Long
        For i = 1 To 2000
            .Columns(i).Sort key1:=.Cells(1, i), Order1:=xlAscending, Header:=xlYes
        Next i
    End With
End Sub

推荐阅读