EXCEL如何取某额分类的前N名,改用ACCESS超简单
经常会遇到这样的问题,需要取得某个分类中的前N名。比如月末统计每天业绩前三甲给与奖励等等。使用Excel来处理这个问题,网上提供的方法都相对麻烦,有些甚至还需要运用VBA。那么有没有更简单的方法呢?当然有!我们可以改用Access来处理这个表格,只需要一条语句就能搞定。
新建Access数据库
首先,我们需要新建一个Access数据库。如果你不了解数据库也没有关系,我们可以将它当做一个普通的表格来使用。然后创建一个新表格,数据可以直接从Excel中复制黏贴过来。如果数据量较大,我们也可以使用数据导入向导来导入数据。
创建查询语句
接下来,我们需要创建查询语句。在设计向导中,我们选择关闭所有选项,最后进入SQL视图。在SQL视图中,输入以下语句:
```
select * from 表1 as t where 3 > (select count(*) from 表1 where 日期t.日期 and 业绩>t.业绩) order by t.日期, t.业绩 desc;
```
请注意,这条语句可能不够规范,会编程的朋友请不要喷,我们使用中文表名是为了简化步骤,特别为那些不熟悉编程的新手准备的。其中,`where 3 >` 可以填入你需要的前几名的数值;`日期t.日期` 是按照哪个分类进行排序;`order by t.日期, t.业绩 desc` 这部分是用来对查询结果进行排序,如果不需要排序也可以去掉,不会影响选出的结果。这条语句重点在于子查询,类似于while循环。它会逐条将数据与所有数据进行比较,统计有多少条数据比当前数据大。如果只有两条记录比当前数据大,那么该数据符合条件被选出(这就是第三大的数据);如果只有一条记录比当前数据大,那么该数据就是第二大的,以此类推。
运行查询语句
最后,点击运行按钮就可以得到处理好的数据。你可以选择将数据复制回Excel表格,或使用向导导出数据,也可以进行排序筛选等其他操作,根据你的需求来决定。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。