从 Excel 列表内提取出每个分组的前 3 大的值,且降序排列
- 2026-11-10 02:26:18
从 Excel 列表内提取出每个分组的前 3 大的值,且降序排列





请在微信客户端打开
公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必“设为星标”哦!!!
点击任意文章上方的“☆星标”即可。

如何提取组内的前若干或末若干名?这个要求不太好办的。
一般提到分组就首先会想到数据透视表,但是透视表对于值无法不聚合,所以换个思路,用函数,朴素的函数。
案例:
统计出下图 1 中每种物资的前三名数量,效果如下图 2 所示。


解决方案:
1. 在 F2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 键结束 --> 向右向下拖动公式:
=LARGE(($C$2:$C$30=F$1)*($D$2:$D$30),ROW(A1))
公式释义:
$C$2:$C$30=F$1:
查找区域 $C$2:$C$30 中所有与 F$1 值相等的单元格,返回由结果 true 或 false 组成的一组数组;
此处 F$1 必须列相对引用,而行绝对引用;
...*($D$2:$D$30):
将上述的 true 或 false 与区域 $D$2:$D$30 中的值依次相乘,结果为 D 列的值或 0;
也就是列出 F1 单元格中物资的所有对应的数量;
LARGE(...,ROW(A1)):
large 函数的作用是返回数据集中第 k 个最大值;语法为 LARGE(要查找的区域,第 k 大);
此处 row(a1) 的结果为 1,因此就是返回第一大的值;
当公式下拉,变成 row(a2),结果为 2,从而返回第二大的值



转发、点赞、在看也是爱!
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。