取分组达成累加目标值时间的前 N 组

 

例题描述

有人员业绩表文件book1.xlsx中有下图所示的数据:

..

现在要按业绩达成50000的达成时间排序,找出入围时间最早的前10名人员,如下图所示:

..

此题涉及数据分组、组内迭代累加、取排序后的前N名等知识。

 

实现步骤

1、  编写脚本:


A

1

=file("E:/top10/book1.xlsx").xlsimport@t(;"金额明细")

2

=A1.group(姓名;~.select@1( 业绩 [:0].sum()>=50000). 达成时间: 入围时间 )

3

=A2.top(10; 入围时间)

4

=file("E:/top10/book1.xlsx").xlsexport@ta(A3;"入围名单")

A1   读取book1.xlsx文件中的数据

A2   按姓名分组,在组内选出业绩累加值达到 50000 的第 1 条记录,取它的达成时间重新命名为入围时间。业绩 [:0] 表示从第 1 条到当前记录中的业绩字段值组成的序列。

A3   找出入围时间排在前10名的记录

A4   A3导出到book1.xlsx中的入围名单Sheet,选项@t表示首行输出列标题,a表示追加导出Sheet

 

2、  运行程序,结束后再打开book1.xlsx就可以看到入围名单Sheet中的数据。

   

问答搜集  http://club.excelhome.net/thread-1570037-1-1.html

 

 

【附件】 top10.zip