问题情境
问题情境
如下样表:
有“店长组”和“组员”两个组别,要求保持数据顺序不变,分别对“店长组”和“组员”两个组内的成绩排序。
公式实现
在E2单元格输入公式:
=SUMPRODUCT(N(($D$2:$D$11=D2)*($C$2:$C$11)>C2))+1
确定,并往下填充,可得“店长组”和“组员”两个组内的成绩排序。
如下图:
公式解析
$D$2:$D$11=D2:
判断D2:D11区域内每个单元格值是否与D2相等,如果相等返回TRUE,不相等返回FALSE,所以本部分返回值为TRUE和FALSE组成的数组:
{TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE}(以下称数组一)。
($D$2:$D$11=D2)*($C$2:$C$11):
数组一与C2:C11对应位置数值相乘,返回数组:
{80;0;0;70;100;0;85;0;0;70}{以下称数组二}。
($D$2:$D$11=D2)*($C$2:$C$11)>C2:
数组二中各数值与C2比较,如果大于C2返回TRUE,否则返回FALSE,本部分返回值为:
{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE}{以下称数组三}。
N(($D$2:$D$11=D2)*($C$2:$C$11)>C2):
将数组三中的逻辑值转换为数值,得到数组:
{0;0;0;0;1;0;1;0;0;0}{以下称数组四}。
SUMPRODUCT(N(($D$2:$D$11=D2)*($C$2:$C$11)>C2))+1:
将数组四中数值加和再加1,得排名。