Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7615|回复: 6

[已解决]将某一列数据:大于0的数据从小到大排序,小于0的数据从大到小排序

[复制链接]
匿名  发表于 2014-12-8 20:20 |阅读模式
数值
排序结果
22.06
4
34.67
8
19.86
3
49.02
9
13.95
2
-181.68
14
26.25
6
1400.27
12
-108.35
13
13.44
1
23.25
5
30.29
7
139.04
10
215.61
11

最佳答案
2014-12-8 21:29
C1
  1. =FREQUENCY(ABS(A$$1:A$$14)+(A$$1:A$$14<0)*2000,ABS(A1)+2000*(A1<0))
复制代码
下拉
QQ截图20141208212758.png
发表于 2014-12-8 21:14 | 显示全部楼层
  1. =ABS((COUNT(0/(A$2:A$15>0))+1)*(A2>0)-RANK(A2,A$2:A$15,0))
复制代码
回复

使用道具 举报

发表于 2014-12-8 21:29 | 显示全部楼层    本楼为最佳答案   
C1
  1. =FREQUENCY(ABS(A$$1:A$$14)+(A$$1:A$$14<0)*2000,ABS(A1)+2000*(A1<0))
复制代码
下拉
QQ截图20141208212758.png
回复

使用道具 举报

匿名  发表于 2014-12-9 21:52
hsl215 发表于 2014-12-8 21:14

我试了一下,结果好像不是我要的那样
数值
排序
排序结果
22.06
7
4
34.67
3
8
19.86
8
3
49.02
2
9
13.95
9
2
-181.68
14
14
26.25
5
6
1400.27
1
12
-108.35
13
13
13.44
10
1
23.25
6
5
30.29
4
7
139.04
1
10
215.61
0
11

回复

使用道具

匿名  发表于 2014-12-9 21:55
tgydslr 发表于 2014-12-8 21:29
C1下拉

谢谢3楼的回复,这个公式跟我要的结果是一样的,但是我不明白是啥意思,能讲解一下吗?
回复

使用道具

发表于 2014-12-9 22:32 | 显示全部楼层
QQ_E93E6C 发表于 2014-12-9 21:55
谢谢3楼的回复,这个公式跟我要的结果是一样的,但是我不明白是啥意思,能讲解一下吗?

1、请注意frequency的意义。他返回一个垂直数组,一个是小于等于第二参数的数量,一个是大于他的数量,不用三键结束时,返回的是第一个小于等于的值。
2、楼主说的正数从小到大负数从大到小,按绝对值排的话到是统一的从小到大了,为了使负数排后面,所以给负数的绝对值统统加一个很大的数(正数的话不加),这样一来负数的就排后面了ABS(A$1:A$14)+(A$1:A$14<0)*2000就是这个意思。
回复

使用道具 举报

发表于 2016-1-14 08:57 | 显示全部楼层
tgydslr 发表于 2014-12-8 21:29
C1下拉

将某一列数据:大于0的数据从小到大排序,小于0的数据从大到小排序,同时先排小于0的数字,后排大于0的数字,请教,急?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-13 06:01 , Processed in 0.272386 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表