excel高手请进:用公式一次性找到最大前几位数的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:30:25
我有一张表,例子如下:用公式列出提成每店前3名营业员
门店 姓名 职位 提成 公式(该店第一名写1,第二名写2,第三名写3)
a 张三 店长 300
b 刘华 营业员 400 2
b 张红 营业员 499 1
b 张小 营业员 123
c 芳芳 副店长 577
c 小青 营业员 450 1
a 小华 营业员 330 1
b 小风 营业员 234 3
若不符号条件,即显示空白
请大家注意,我的条件是:
1.门店 2.营业员 3.提成前三名 (店长不参与排名)

假设门店在A列 姓名在B列 职位在C列 提成在D列,且表格第一行为标题行
则在E2输入如下公式
=IF(D2=LARGE(IF($A$2:$A$9=A2,$D$2:$D$9,FALSE),1),1,IF(D2=LARGE(IF($A$2:$A$9=A2,$D$2:$D$9,FALSE),2),2,IF(D2=LARGE(IF($A$2:$A$9=A2,$D$2:$D$9,FALSE),3),3,"")))
按ctrl+shift+enter结束公式
然后向下填充.

另一种方法
在E2输入如下公式
=IF(SUMPRODUCT(($A$2:$A$9=A2)*($D2<$D$2:$D$9))+1>3,"",SUMPRODUCT(($A$2:$A$9=A2)*($D2<$D$2:$D$9))+1)
以回车结束,然后向下填充.
----------------------------------
居然还有条件~~~
那么公式修改一下
=IF(SUMPRODUCT(($A$2:$A$9=A2)*($D2<$D$2:$D$9)*($C$2:$C$9="营业员"))+1>3,"",SUMPRODUCT(($A$2:$A$9=A2)*($D2<$D$2:$D$9)*($C$2:$C$9"营业员"))+1)

=rank(“要排名的项目所在位置”,"区域")
这个就可以了

或是用if,在E2处输入
IF(SUMPRODUCT((A$2:A$9=A2)*(C$2:C$9<>"店长")*(D$2:D$9>D2))>2)+(C2="店长"),"",SUMPRODUCT((A$2:A$9=A2)*(C$2:C$9<>"店长")*(D$2:D$9>D2))+1)

注:请给满分,不给满分的不得好死,回骂的没好下场!