excel 比较数选出最大数的名称
答案:2 悬赏:20 手机版
解决时间 2021-03-21 22:37
- 提问者网友:精神病院里
- 2021-03-21 14:27
excel 比较数选出最大数的名称
最佳答案
- 五星知识达人网友:像个废品
- 2021-03-21 15:58
如图,在B8中输入公式:
=INDEX($A$2:$A$6,MATCH(LARGE($C$2:$C$6-$B$2:$B$6,ROW(B1)),$C$2:$C$6-$B$2:$B$6,0))
按Ctrl+Shift+Enter三键输入数组公式,
向下拖拉复制
不过“差额最大”定义不明确,是C列减B列得到数值大小还是差值的绝对值大小。以上公式是按前者设计的。
追问有同学的成绩的差值是一样的话,怎么解决。
比如都是10,然后总是返回的最近的那个同学,下面同样进步10的同学名字被忽略了。这个能解决吗?追答有相同成绩差时,可把公式修改一下:
=INDEX($A$2:$A$6,99-RIGHt(LARGE(($C$2:$C$6-$B$2:$B$6+100)*10000-ROW($B$2:$B$6),ROW(C1)),2))
Ctrl+Shift+Enter三键数组公式
公式思路说明:
差额+100,消除差额为负数的情况,因为都加上了100,不会影响差额大小排名
再*10000,将差额放大1万倍,为后面减去一个值做准备,放大后同样不影响差额大小排名顺序
然后把放大了差额减去所在行对应的行号,这样当有相当差额时,因为行号不同,排在后面的减去了较大的数,差额就不同了,从而达到实际差额相同处理后不同的目的。因为前面把差额放大了1万倍,现在减去的数只100以内的数(学生人数一般少于100),所以仍然不会差额排名顺序,即($C$2:$C$6-$B$2:$B$6+100)*10000-ROW($B$2:$B$6)得到的数据序列大小与原差额一致,但后两位分别从98递减1
用LARGE函数,按ROW()分别取得最大到小的数据
再用RIGHT函数取得对应名次差额的后两位数数
最后100减去前面得到的数字,就是所求名次在原排序中所在的行。用INDEX来按行号得到姓名。
=INDEX($A$2:$A$6,MATCH(LARGE($C$2:$C$6-$B$2:$B$6,ROW(B1)),$C$2:$C$6-$B$2:$B$6,0))
按Ctrl+Shift+Enter三键输入数组公式,
向下拖拉复制
不过“差额最大”定义不明确,是C列减B列得到数值大小还是差值的绝对值大小。以上公式是按前者设计的。
追问有同学的成绩的差值是一样的话,怎么解决。
比如都是10,然后总是返回的最近的那个同学,下面同样进步10的同学名字被忽略了。这个能解决吗?追答有相同成绩差时,可把公式修改一下:
=INDEX($A$2:$A$6,99-RIGHt(LARGE(($C$2:$C$6-$B$2:$B$6+100)*10000-ROW($B$2:$B$6),ROW(C1)),2))
Ctrl+Shift+Enter三键数组公式
公式思路说明:
差额+100,消除差额为负数的情况,因为都加上了100,不会影响差额大小排名
再*10000,将差额放大1万倍,为后面减去一个值做准备,放大后同样不影响差额大小排名顺序
然后把放大了差额减去所在行对应的行号,这样当有相当差额时,因为行号不同,排在后面的减去了较大的数,差额就不同了,从而达到实际差额相同处理后不同的目的。因为前面把差额放大了1万倍,现在减去的数只100以内的数(学生人数一般少于100),所以仍然不会差额排名顺序,即($C$2:$C$6-$B$2:$B$6+100)*10000-ROW($B$2:$B$6)得到的数据序列大小与原差额一致,但后两位分别从98递减1
用LARGE函数,按ROW()分别取得最大到小的数据
再用RIGHT函数取得对应名次差额的后两位数数
最后100减去前面得到的数字,就是所求名次在原排序中所在的行。用INDEX来按行号得到姓名。
全部回答
- 1楼网友:千夜
- 2021-03-21 16:48
=INDEX(A:A,MIN(IF(ABS($B$2:$B$6-$C$2:$C$6)=LARGE(ABS($B$2:$B$6-$C$2:$C$6),ROW(A1)),ROW($B$2:$B$6),65536)))
公式输入结束后同时按Ctrl+Shift+Enter三键确认,再下拉填充。追问同时也谢谢你的帮助,楼上的牛人算法思路真是佩服,不得不选他,谢谢你
公式输入结束后同时按Ctrl+Shift+Enter三键确认,再下拉填充。追问同时也谢谢你的帮助,楼上的牛人算法思路真是佩服,不得不选他,谢谢你
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯