问题情境
如下样表:
【Excel数据分属不同组别,同一组别内排序】
文章插图
有“店长组”和“组员”两个组别 , 要求保持数据顺序不变 , 分别对“店长组”和“组员”两个组内的成绩排序 。
公式实现
在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 , 得排名 。
推荐阅读
- python如何创建数据库连接池?python创建数据库连接池的方法是什么?
- Python组合数据类型是什么?Python有哪几种组合数据类型
- 用excel公式生成工资条
- Excel图表根据规定好的占比划分成绩等级
- excel图表根据等级计算总成绩
- 利用Excel条件格式自制盈亏图,数据对比一目了然
- excel图表算式内既有各种单位又有小数点,怎么计算?
- excel图表计算完成销售计划的产品数量与总销量
- excel图表工资条的又一神奇写法
- excel图表怎么随时添加选项的二级联动菜单