本文为大家介绍实例教你学excel:函数排序与筛选数据(excel函数排序和筛选怎么操作),下面和小编一起看看详细内容吧。
execl本身就有非常方便的排序和过滤功能。下拉“数据”菜单选择排序或过滤,对数据列表进行排序或过滤。但也存在不足。首先,无论是排序还是过滤都会改变原来列表的本来面目,尤其是当列表中的数据是从其他工作表链接过来的,源数据发生变化时,或者当列表中输入了新的记录时,都必须进行排序或再次过滤。其次,有局限性。比如排序最多只能对三个关键字(三列数据)进行排序。过滤可以用“and”,或者“or”条件过滤同一列的数据,但是对于不同列的数据,只能用“and”条件过滤。
比如一个员工花名册工作簿,过滤掉年龄大于25岁小于50岁或者年龄大于50岁小于25岁是可行的,同时要求性别为男或女也是可行的.但execl本身具有的筛选功能在要求筛选出22-45岁的女性年龄和25-50岁的男性年龄时却无能为力。此外,排序和过滤不能结合使用,即排序时不能按条件对记录进行排序。比如有一个员工数据列表,其中有一些已经退休,在职员工年龄排序时不能排除退休员工的数据。
本文试图利用execl的功能来解决上述问题。
1.用函数排序
题目:如果有一张工资表,a2:f501,共有6列,500行,3000个单元格。表头a1是姓名代码(1到500),b1是姓名,c1是津贴,d1是奖金,e1是工资,f1是总收入。现在要求将员工收入从多到少排序,当员工总收入相同时,再按工资从多到少排序;如果工资和奖金相同,则将津贴从多到少排序。
方法:在g1单元格填写公式
“=if(f2=0, 10^100, int(连接(999-f2, 999-e2, 999-d2, 999-c2)))”,
concatenate是一个展平函数,可以将小于30个单元的数据合并为一个数据,这些合并后的数据之间用逗号分隔。将f2、e2等合并后的数据减去999,目的是使它们的位数相同。 (假设任何一名员工的总收入低于899元)。要组合的函数是文本函数,应用concatenate和int函数将文本转换为数字。最外层的if函数用来在排序的时候排除不需要排序的记录,这里指的是收入为零的记录。 (上面提到的员工年龄排序,公式改为“if(f2='retired', 10^100,)”,即排除退休员工。)
第二步,将g1单元格中的公式拖放到g500单元格(最简单的方法是点击g1单元格,将鼠标移到g1单元格右下方,看到黑色十时双击鼠标完成从g1 到g500 的填充)。
第三步,在h2单元格中填写公式“=match(small(g:g, row(a1)), g:g, 0)”,同第二步一样拖到h501单元格。这个公式实际上是将三个列公式合并为一个列公式。 row(a1)表示a1的行号为1,然后向下拖拽到2,3,4.small(g:g,row(a1))是g列中最小的数。随着拖拽往下,变成第2,第3,小数,match(small(g:g, row(a1)), g:g, 0) 就是g列中最小的行,第二小的,第三小的等等. 数据中的数据。
第四步,将a1到f1单元格的表头复制到i1到n1单元格,在i2单元格中输入公式“=index($a$2:$f$501, $h2, column(a$1))”。 index函数是一个引用函数,即将元胞数组$a$2:$f$501的$h2行column(a$1)列的数据放入i2单元格中。然后将i2单元格中的公式拖放到n2单元格中,点击n2单元格,将鼠标移至n2单元格的右下方。当看到黑色的十时,双击鼠标完成i2到n501单元格的填充。
上面的描述看似复杂,其实很简单。只需将a1到f1的表头复制到i1到n1单元格,然后分别在g1、h2、i2单元格中输入公式然后拖拽,即使不熟悉excel的同志们也能在一分钟内搞定。
上述过程的轻微变化可以产生更多。上面的例子数据是从大到小排列的,比如把h列函数中的small改成large,上面的例子数据是从小到大排列的。例如,将单元格h2 中的公式更改为“=if(o1=1, match(small(g:g, row(a1)), g:g, 0), match(large(g: g, row(a1)), g:g , 0) )”并将单元格h2 中的公式向下拖放。这样,在o1单元格输入1,上面的例子数据从大到小排列,o1单元格输入1以外的数字,上面的例子数据从小到大排列。
如果在h列前插入几列,比如插入一列,则在h列输入类似g列的公式,如“=if(f2=0, 10^100, d2)”,把i列的公式改一下在单元格p 中输入“=if(p1=1, match(small(g:g, row(a1)), g:g, 0), match(small(h:h, row(a1)), h:h, 0)))” 1以外的值实现按奖金大小排序。这样,只要改变p1单元格(原来的o1单元格)的内容,就可以立即得到按不同要求排序的结果。
好了,实例教你学excel:函数排序与筛选数据(excel函数排序和筛选怎么操作)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。