Excel函数用于对重复值进行sorting
我有一个包含两列数据的Excel表,我想排名。
假设我们有以下几点:
AB Franz 58 Daniel 92 Markus 37 Jörg 58
我想要一个公式来根据B列对上述数据进行sorting,并且在那里有重复的值(Franz和Jörg)把字母名称放在第一位。 我现在所拥有的仅仅是复制了弗朗茨两次:
=INDEX(Name,MATCH(A2,Points,0))
有人可以build议我的公式/代码将排名数据和按字母顺序排列重复值?
谢谢
我会在您的数据旁边添加一个帮手列,以帮助您解决问题。 所以在C列使用
=B1+1/COUNTIF($A$1:$A$4,"<="&A1)/10
这将添加基于名称的小数排名系统。 这假设你在B列中的数字没有小数位,如果他们这样做,那么你将需要增加公式末尾的10来解释它,即:2位小数使用1000,3:10000等
使用这个公式来得到名字
=INDEX(name,MATCH(LARGE(points,1),points,0))
调整1到2为第二个名字等
编辑有错误的方式周围的迹象
这将排名您的数据,也不会重复重复:
在C2中:
=SUM(1*(b2>$b$2:$b$5))+1+IF(ROW(b2)-ROW($b$2)=0,0,SUM(1*(b2=OFFSET($b$2,0,0,INDEX(ROW(b2)-ROW($b$2)+1,1)-1,1))))
CTRL + SHIFT + ENTER将其变成一个数组
把它们拖到C5,它不会重复名称相同的等级,如果它们是相同的,它们将按字母顺序排列。
然后,如果您想按照最佳表演者/乐谱的顺序自动订购,请执行以下操作:
把它放在E2中:
=INDEX(A2:A5,MATCH(LARGE(C2:C5,ROW()-1),C2:C5,0))
…并向下拖动
然后在你的数据上使用一个vlookup把这个分数返回到F2:
=vlookup(E2,A2:C5,2,false)
…并向下拖动
这应该给你一个得分顺序最高得分人的表格。
假设A2是排名积分第一名,请尝试使用此版本
=INDEX(Name,SMALL(IF(A2=Points,ROW(Points)-MIN(ROW(Points))+1),COUNTIF(A$2:A2,A2)))
用CTRL + SHIFT + ENTER确认并复制下来
需要对名称列表进行sorting,因为具有重复分数的名称将按所示顺序列出