之前教了一个计算在区域中的百分比排名的案例,用到了两个专门计算百分比的函数。
有同学问,有没有常用一点的函数解法?
方法很多,简单粗暴用 if 的公式就不写了,讲点稍微高级的。
案例:下图 1 是公司所有员工的工资表,请算出员工的工资超过了公司百分之多少的人。
效果如下图 2 所示。
解决方案:1. 在 C2 单元格中输入以下公式 --> 下拉复制公式:
=SUMPRODUCT(($B$2:$B$13<B2)*1)/(COUNT($B$2:$B$13)-1)
公式释义:
计算百分比排名的逻辑是:用列表中小于自己的个数/除自己以外的总数。那么再来理解公式就不难了;
SUMPRODUCT(($B$2:$B$13<B2)*1):
该函数的作用是乘积求和,但是应用范围之广,功能之强大,令我写过很多案例;
$B$2:$B$13<B2:判断区域 $B$2:$B$13 中的值是否 <B2,生成一组由 true 和 false 组成的数组;
...*1:将上述数值的值 *1,使得逻辑值转换成可以计算的数值;
SUMPRODUCT(...):对数组求和,即可计算出区域中 <B2 的个数;
COUNT($B$2:$B$13)-1:计算区域内单元格的总数,然后 -1,将这个值作为分母;
二者相除就是所需的结果
* 请注意参数的绝对和相对引用。有关 sumproduct 函数的更多案例,可以在历史记录里搜索。
2. 为了便于理解,我们可以分别选中分子分母的公式 --> 按 F9,来验证一下计算结果。
3. 将 C 列的数值设置为百分比格式。