EXCEL表格如何将一组数按绝对值从大到小排列,要带正负号

要全自动,不用再去手动填充,直接根据公式排大小。

有一个简单的办法不知道是否满足,就是复制A列到B列,然后B列选择降序排列在弹出的对话框中选择【以当前选定区域排序】即可实现。

追问

要自动,不用我去用手拉

追答

思路:复制A到B列,然后利用系统排序自动排。
前面在想用Function来做,一直在试验看看能否解决。发现不可避免的自调用很容易死循环。最后只能用SUB来做,代码倒不复杂,如下:
Sub 排序0()
Range("A:A").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Range("B:B").Sort key1:=Range("B1"), order1:=xlDescending, Header:=xlNo
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-27

2021版,在B1中输入或复制粘贴下列公式

=LARGE(ABS(A$1:A$3),ROW(A1:A3))*IF(A$1:A$3<0,-1,1)

回车即可

追问

要按绝对值的大小从大至小排列,换一组数字就不行了。

第2个回答  2021-12-27
设定这一组数据在A列,先对A列的数据设置正负号的自定义格式,再B列输入公式并向下填充:=ABS(A2)
最后将A、B两列以B列为主要关键字按降序排序。追问

要自动,不用我去用手拉

追答

那就VBA编程处理

第3个回答  2021-12-27
首先用绝对值函数,然后再用排序函数。这样就不会有任何问题了
第4个回答  2021-12-27
首先用函数ABS获取绝对值;

第二根据绝对值进行排序;