我正在努力计算不同组织的前三名用户的排名,并为每个用户提供水平呈现的数据,以便将其输入我们的电子邮件系统以个性化电子邮件。
我可以垂直创建排名,但我不确定如何根据组织和返回值对公式进行排名。
这是我最终需要的东西:
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))
如果有人可以帮助我根据每个组织运行这个公式,并且横向运行会非常棒!
谢谢,
萨拉。
答案 0 :(得分:1)
假设您的数据以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
函数无法接收该文件。ROWS(H$1:H1)
更改为COLUMNS($C2:C2)
,以便您可以水平排名如果用法为空(为同一组织中的所有用户),并且您希望第一,第二和第三列为空白,那么同样如下:
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
包裹在所有内容中,如果上面的语句返回true,则将其清空。所以我们的最终公式看起来像:
=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
现在,如果您希望文本说出其他内容,只需将该文本放在TRUE
语句的IF
条件的引号内。