有一位做电商数据分析的朋友,传给我一组数据,说要进行所有商品销量的总排名以外,还要进行分仓库、分商品的排名分析。他的数据每个月都有几万行,总排名用RANK函数,问我分类排名的可不可以用函数实现?
推荐SUMPRODUCT函数来进行分类排名。
把朋友给的数据简化成以下数据:
步骤
总排名RANK.EQ函数:
E2中输入公式:=RANK.EQ(D2,$D$2:$D$26)
RANK.EQ函数用法:
RANK.EQ(number,ref,[order])
中文语法:
RANK.EQ(要找到其排位的数字,数字列表的数组,[指定数字排位方式的数字])
如果 Order 为 0(零)或省略,Excel 对数字的排位是基于 Ref 为按降序排列的列表。
如果 Order 不为零, Excel 对数字的排位是基于 Ref 为按照升序排列的列表。
RANK.EQ 赋予重复数相同的排位。 但重复数的存在将影响后续数值的排位。 例如,在按升序排序的整数列表中,如果数字 10 出现两次,且其排位为 5,则 11 的排位为 7(没有排位为 6 的数值)。
分类排名SUMPRODUCT函数:
F2中输入公式:=SUMPRODUCT((B2=$B$2:$B$26)*($D$2:$D$26>=D2))
SUMPRODUCT函数功能:
在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和;
SUMPRODUCT函数用法:
SUMPRODUCT(array1, [array2], [array3], …)
中文语法:
SUMPRODUCT(其相应元素需要进行相乘并求和的第一个数组参数, [其相应元素需要进行相乘并求和的第二个数组参数], [其相应元素需要进行相乘并求和的第三个数组参数], …)
本题目中SUMPRODUCT函数的解释:
F2的结果是:
B2与B2:B26区域内的单元格依次比较得出数组1,D2:D26区域中的数据与D2单元格的数值依次比较得出数组2,数组1与数组2对应的元素相乘得到25个乘积,再加和。
结果: