Excel formula 基于组织的横向领导委员会
我正试图计算出不同组织中前三名用户的排名,并将每个用户的数据水平显示,以便将其输入到我们的电子邮件系统中,对电子邮件进行个性化设置 我可以创建一个垂直排名,但我不知道如何得到公式排名的基础上组织和回报值 以下是我最后需要的:Excel formula 基于组织的横向领导委员会,excel-formula,lookup,ranking,Excel Formula,Lookup,Ranking,我正试图计算出不同组织中前三名用户的排名,并将每个用户的数据水平显示,以便将其输入到我们的电子邮件系统中,对电子邮件进行个性化设置 我可以创建一个垂直排名,但我不知道如何得到公式排名的基础上组织和回报值 以下是我最后需要的: Name Organisation Usage First Second Third User 1 Organisation 1 8 User 3 User 5 User 2 User 2 Organisation 1 10 User
Name Organisation Usage First Second Third
User 1 Organisation 1 8 User 3 User 5 User 2
User 2 Organisation 1 10 User 3 User 5 User 2
User 3 Organisation 1 222 User 3 User 5 User 2
User 4 Organisation 1 1 User 3 User 5 User 2
User 5 Organisation 1 14 User 3 User 5 User 2
User 1 Organisation 2 215 User 4 User 1 User 5
User 2 Organisation 2 18 User 4 User 1 User 5
User 3 Organisation 2 12 User 4 User 1 User 5
User 4 Organisation 2 310 User 4 User 1 User 5
User 5 Organisation 2 161 User 4 User 1 User 5
我可以使用
=INDEX($A$2:$A$6,MATCH(1,INDEX(($C$2:$C$6=LARGE($C$2:$C$6,ROWS(H$1:H1)))*(COUNTIF(H$1:H1,$A$2:$A$6)=0),),0))
如果有人能帮助我根据每个组织和水平运行这个公式,那就太棒了
谢谢
Sarah.非空使用解决方案:
假设您的数据从A1
开始,如下所示:
A B C D E F
---------------------------------------------------------
1 | Name Organisation Usage First Second Third
2 | User 1 Organisation 1 8 User 3 User 5 User 2
3 | User 2 Organisation 1 10 User 3 User 5 User 2
4 | User 3 Organisation 1 222 User 3 User 5 User 2
5 | User 4 Organisation 1 1 User 3 User 5 User 2
6 | User 5 Organisation 1 14 User 3 User 5 User 2
7 | User 1 Organisation 2 215 User 4 User 1 User 5
8 | User 2 Organisation 2 18 User 4 User 1 User 5
9 | User 3 Organisation 2 12 User 4 User 1 User 5
10| User 4 Organisation 2 310 User 4 User 1 User 5
11| User 5 Organisation 2 161 User 4 User 1 User 5
您可以将从D2开始的公式更改为:
=INDEX($A$2:$A$11,MATCH(1,INDEX(($C$2:$C$11=LARGE(($B$2:$B$11=$B2)*$C$2:$C$11,COLUMNS($C2:C2)))*(COUNTIF($C2:C2,$A$2:$A$11)=0),),0))
我改变的是:
添加了($B$2:$B$11=$B2)
在LARGE
中,它将其他组织的所有使用值乘以0
。然后,LARGE
功能将不会拾取该值
将行(H$1:H1)
更改为列($C2:C2)
,以便可以水平排列
我还将对整个数据集行2的单元格引用更改为11
可能为空的解决方案:
如果用法为空(对于同一组织中的所有用户),并且您希望第一、第二和第三列为空,则如下所示:
A B C D E F
---------------------------------------------------------
1 | Name Organisation Usage First Second Third
2 | User 1 Organisation 1 8 User 3 User 5 User 2
3 | User 2 Organisation 1 10 User 3 User 5 User 2
4 | User 3 Organisation 1 222 User 3 User 5 User 2
5 | User 4 Organisation 1 1 User 3 User 5 User 2
6 | User 5 Organisation 1 14 User 3 User 5 User 2
7 | User 1 Organisation 2
8 | User 2 Organisation 2
9 | User 3 Organisation 2
10| User 4 Organisation 2
11| User 5 Organisation 2
我们可以通过检查组织的整个使用情况是否为0来实现这一点。然后我们就可以把该组织的所有级别都清空
要检查组织的使用总和是否为0,我们可以使用SUMPRODUCT:
因此对于单元格D2
,如下所示:
=SUMPRODUCT(($C$2:$C$11)*($B$2:$B$11=$B2))=0
=IF(SUMPRODUCT(($C$2:$C$11)*($B$2:$B$11=$B2))=0,"",INDEX($A$2:$A$11,MATCH(1,INDEX(($C$2:$C$11=LARGE(($B$2:$B$11=$B2)*$C$2:$C$11,COLUMNS($C2:C2)))*(COUNTIF($C2:C2,$A$2:$A$11)=0),),0)))
^^ Throw whatever you want in there
然后,我们可以将IF
包装在所有内容周围,如果上述语句返回true,则将其清空。因此,我们的最终公式如下所示:
=SUMPRODUCT(($C$2:$C$11)*($B$2:$B$11=$B2))=0
=IF(SUMPRODUCT(($C$2:$C$11)*($B$2:$B$11=$B2))=0,"",INDEX($A$2:$A$11,MATCH(1,INDEX(($C$2:$C$11=LARGE(($B$2:$B$11=$B2)*$C$2:$C$11,COLUMNS($C2:C2)))*(COUNTIF($C2:C2,$A$2:$A$11)=0),),0)))
^^ Throw whatever you want in there
现在,如果您想让文本说明其他内容,只需将该文本放在if
语句的TRUE
条件的引号中。是否有重复的用法
?是的,有些用户可能有相同的用法,但我只是想找出前三个,如果两个是相同的,我很乐意按字母顺序排列。谢谢。谢谢,这太棒了,效果很好!唯一轻微的问题是,对于没有“使用”但返回第一个用户的名称的组织?是否有一种方法可以在使用率已用完的用户数中添加默认的空白选项?再次感谢。@Sarah.Frances那么你是说如果用法
列为空,你希望用户也为空吗?是的,或者允许选择其他文本,以便电子邮件中自动填充的排行榜让用户知道还没有人开始。@Sarah.Frances好吧,我(希望)补充说,这非常有效,非常感谢你的帮助。