SUMPRODUCT轻松搞定分组排名
如下样表,要求不改变现有排序的情况下,计算出每位员工在自己组内的排名:
公式实现
在F2输入公式:
=SUMPRODUCT(($C$2:$C$14=C2)*($D$2:$D$14>=D2))
确定,即可得到第一位员工组内排名。
公式向下填充,即可得所有员工组内排名。
如下图:
SUMPRODUCT函数简介
功能:
在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和;
用法:
SUMPRODUCT(array1, [array2], [array3], …)
中文语法:
SUMPRODUCT(其相应元素需要进行相乘并求和的第一个数组参数, [其相应元素需要进行相乘并求和的第二个数组参数], [其相应元素需要进行相乘并求和的第三个数组参数], …)
本示例解析
=SUMPRODUCT(($C$2:$C$14=C2)*($D$2:$D$14>=D2))
($C$2:$C$14=C2):
在C2:C14区域的 每一个单元格与C2相比较,如果相等返回TRUE,否则返回FALSE。本部分返回数组:
{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}(数组一)
($D$2:$D$14>=D2):
在D2:D14区域的 每一个单元格与D2相比较,如果大于或等于D2返回TRUE,否则返回FALSE。本部分返回数组:
{TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE ;FALSE }(数组二)
SUMPRODUCT(($C$2:$C$14=C2)*($D$2:$D$14>=D2)):
以上两个参数得到的(数组一)与(数组二)对应位置的数据相乘然后加和。TURE相当于1,FALSE相当于0,两数组对应位置数据相乘,可得A组大于等于D2的数值个数,即是D2在A组内的排序。