您的位置:首页 > 数据库

关于Excel与SQL结合的优势所在-查找最大一名数据

2013-05-06 19:13 274 查看
查找每组中的前几名数据

这是个筛选与排名结合的问题,但似乎已成为Excel 中经常讨论的话题,下面我们来看几种解决方案并比较他们的不同。

1、查找每组中的第一名数据

这个问题有多种答案,可以通过函数,透视表解决,也可以通过SQL解决。我们用一张订单表为例,这张表中包括货主地区,货主城市,货主名称和运货费四个字段,企业想在该数据表中按货主地区提取每组中的最大运货费





函数:先对数据按货主地区排序,再按运货费排序,创建一个排名列,作用显示每个地区的每条记录的名次,函数:countif($a$1:a1,a1),最后筛选每组中的第一名,缺点是如果想查每组中最小的一条记录就不太容易

透视表:在2007以上的版本中透视表包含筛选:值最大的10项功能,我们可以利用这个来查找每组中最大一名记录,也可以查找每组中最小一名记录,功能仅限于此,如果想在所有地区查看前3名数据,并且只有该地区大于3条订单记录的数据才可以显示,透视表自身就无能为力了





用Excel的ODBC数据源引用SQL语句:

select 货主地区,货主城市,货主名称,运货费 from [Sheet1$]

where 运货费 in (

select max(运货费) from [Sheet1$]

group by 货主地区

)这种语句结构可以适合很多场合

继续。。。
本文出自 “做自己的office” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: