易表在线答疑技术与交流精华分享 → 如何筛选名次列两头的数据?(小吴原创)


  共有8368人关注过本帖树形打印复制链接

主题:如何筛选名次列两头的数据?(小吴原创)

帅哥哟,离线,有人找我吗?
喜爱易表
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:天使 帖子:178 积分:0 威望:0 精华:0 注册:2006/8/11 11:09:00
如何筛选名次列两头的数据?(小吴原创)  发帖心情 Post By:2006/8/14 21:57:00 [只看该作者]

[操作技巧]如何筛选名次列两头的数据?

(本技巧原创人:小吴、渔斑竹、喜斑竹)

利用易表的Filterfor函数实现复杂的筛选功能其实已经比较完善了,但有时遇到一些比较特殊的要求时,仅靠Filterfor还是难以完全满足要求,比如有这样一个要求:

某表里有一列名次列,数值型,其中填写的都是数字,这些数字可能有重复并可能不连续(例如班级考试排名,会有3个第3个名,后面紧接着就是第6名,即跳过了4、5);如果我要一次筛选出其中的前10名和后10名该如何做呢?由于存在前面提到的名次并列问题,那么筛选前10名或后10名就可能不会各只有10行数据。

其实,我们利用一个变量和一个辅助列,同样可以通过使用Filterfor来实现这种“掐头取尾去中间”的筛选,下面详细操作方法:

1、为文件新增一个变量:%a%;

2、设计表:一列名为“名次”,另一列名为“辅助列”,均为数值型;将辅助列的公式设置为:if(row=firstrow,1,if(cell(row,"名次")=cell(row-1,"名次"),cell(row-1,col),cell(row-1,col)+1))

3、辅助列公式解析:实际上对名次列的数字给出真实的排名,对于名次列中2个连续相同的2个数字会给出同一排名,而下一数字的排名则继续上面的排名,如下图:

egd文件下载


另外,易表.net自 10.3 Build 1311起增加了一个函数——HideRowsfor,用它就可以更方便地实现上面的筛选要求,其使用方法这里就不具体讲了,基本和Filterfor一样。对于上面的例子,可以考虑利用HideRowsfor隐藏名次大于10,小于最大名次-9就记录就可以了。



 回到顶部