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 个变量长!
非常感谢任何建议——无论是手动的还是宏的。谢谢你!
如果您可以使用 Excel 365 和SORTBY公式,那么您很幸运。正如您所看到的,公式解决方案非常简单 -
=SORTBY(A1:A4,MATCH(A1:A4,$B$1:$B$12,0))
中间的参数MATCH基本上是指定给定月份的数字顺序 -