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,因为具有重复分数的名称将按所示顺序列出