在处理销售排名、绩效分析、比赛成绩统计等工作时,我们常需要从大量未排序数据中快速筛选出前三名和后三名。手动排序再筛选不仅耗时,还容易出错。下面分享如何在 Excel 中直接从原始数据中自动提取目标数据,数据更新后结果还能实时同步。
1、打开 Excel,在表格中输入需要分析的数据。以下是示例数据格式,A 列为产品名称,B 列为对应销量值,后续将从这些数据中提取前三名和后三名:
| 产品 | 销量值 |
|---|---|
| A | 23775 |
| B | 46000 |
| C | 6000 |
| D | 35872 |
| E | 7500 |
| F | 33458 |
| G | 27990 |
| H | 20996 |
| I | 21150 |
| J | 42000 |
| K | 22555 |
| L | 29468 |
| M | 36880 |
| N | 17228 |
| O | 28990 |
| P | 33456 |
| Q | 25662 |
| R | 50000 |
| S | 8000 |
2、预留结果展示区域,示例中用 D 列和 E 列展示“前三名”数据,G 列和 H 列展示“末三名”数据,可根据实际需求调整位置。
3、选中需要显示前三名结果的起始单元格(示例中为 D2 单元格)。
4、在单元格中输入以下公式,输入完成后按回车键:
=TAKE(SORTBY(A2:B20,B2:B20,-1),3)
5、公式执行后,D 列和 E 列会自动显示销量值最高的前三名产品及对应销量,无需手动调整格式。
公式语法解析
• SORTBY(A2:B20,B2:B20,-1):将 A2:B20 区域的数据,按照 B2:B20 列(销量值)进行排序,第三个参数“-1”表示降序(从大到小排列)。
• TAKE(...,3):从排序后的区域中提取前 3 行数据,也就是销量值最大的 3 组数据。
• TAKE 函数完整语法:TAKE(从哪个数据区域提取, 要获取的行数,[ 要获取的列数]),可根据需求调整提取的行列数量。
提取后三名数据(按升序排序)
1、选中需要显示后三名结果的起始单元格(示例中为 G2 单元格)。
2、在单元格中输入以下公式,输入完成后按回车键:
=TAKE(SORTBY(A2:B20,B2:B20,1),3)
3、公式执行后,G 列和 H 列会自动显示销量值最低的后三名产品及对应销量。
公式语法解析
• 该公式与提取前三名的公式核心逻辑一致,仅将 SORTBY 函数的第三个参数改为“1”(也可直接省略该参数),表示按升序(从小到大)排序。
• 再通过 TAKE 函数提取排序后的前 3 行数据,即销量值最小的 3 组数据。
注意事项
• TAKE 函数提取数据时,要求提取的行列区域必须是连续的,否则可能导致提取失败。
• 公式中数据区域(如 A2:B20)需根据实际数据范围调整,确保包含所有需要分析的数据行和列。
按照以上步骤,就能快速从 Excel 表格中自动提取出前三名和后三名数据,不管是日常办公还是数据统计,都能帮你节省大量时间。如果觉得实用,欢迎分享给身边需要的小伙伴!
