当数据表中每个分类都有多个重复项时,如何计算出各个分类所对应的最大值?
案例:计算出下图 1 中每个人获得的最高奖金,效果如下图 2 所示。
解决方案 1:1. 在右边设置结果数据表模板,列出所有人名。
2. 在 I2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter --> 下拉复制公式:
=MAX(($C$2:$C$25=H2)*($F$2:$F$25))
公式释义:
$C$2:$C$25=H2:判断区域中的每个单元格是否等于 H2,生成一组结果为 true 或 false 的逻辑值;
*($F$2:$F$25):将上述逻辑值与区域中的单元格相乘,结果为 F 列的数值或 0;也就是说当 C 列的人名与 H2 单元格的人名相等时,提取出 F 列的奖金值,否则就为 0;
MAX(...):计算出相同人名下的最大奖金值
解决方案 2:也可以使用如下公式。
1. 在 I2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter --> 下拉复制公式:
=AGGREGATE(14,6,$F$2:$F25/($C$2:$C25=H2),1)
公式释义:
aggregate 是个万能函数王,几个参数含义分别如下:
14:相当于 large 函数;
6:忽略错误值;
$F$2:$F25/($C$2:$C25=H2):将 $F$2:$F25 区域中的每个值除以 $C$2:$C25=H2 计算出来的一组逻辑值 true 或 false(相当于 1 或 0),结果为 F 列的值或错误值;
1:提取出第一大的值
有关 aggregate 函数的详解,请参阅Excel–集19个函数功能于1身的全能函数aggregate。