根据另一列的顺序对一列进行排序 - excel

New*_*Bee 2 excel vba excel-formula

我正在尝试根据 B 列的顺序对 A 列进行排序。

这里提出了类似的问题,但解决方案没有按预期工作。根据一列对另一列进行排序

这是我的数据的示例:

在此输入图像描述

这是我正在运行的 VBA:

Sub sort_a_b()

Application.ScreenUpdating = False
Range("A1:B12").Copy Destination:=Range("G1:H12")
Range("G1:H12").Sort Key1:=Range("H1:H12"), Order1:=xlAscending
Range("G1:G12").Copy Destination:=Range("A1:A12")
Range("G1:H12").Clear
Application.ScreenUpdating = True

End Sub
Run Code Online (Sandbox Code Playgroud)

这是我运行时看到的结果:

在此输入图像描述

我不确定发生了什么事。我希望根据 B 列的顺序看到 5 月、8 月、11 月、12 月,但事实并非如此。请注意,我的实际列表有 500 个变量长!

非常感谢任何建议——无论是手动的还是宏的。谢谢你!

Jus*_* MK 5

如果您可以使用 Excel 365 和SORTBY公式,那么您很幸运。正如您所看到的,公式解决方案非常简单 -

=SORTBY(A1:A4,MATCH(A1:A4,$B$1:$B$12,0))

在此输入图像描述

中间的参数MATCH基本上是指定给定月份的数字顺序 -

在此输入图像描述