Execl本身具有很方便的排序与筛选功能,下拉;数据”菜单即可选择排序或筛选对数据清单进行排序或筛选。但也有不足,首先无论排序或筛选都改变 了原清单的原貌,特别是清单的数据从其它工作表链接来而源数据发生变化时,或清单录入新记录时必须从新进行排序或筛选。其次还有局限,例如排序只能最多对 三个关键字(三列数据)排序,筛选对同一列数据可用;与”、或;或”条件筛选,但对不同列数据只能用;与”条件筛选。
例如对某张职工花 名册工作簿,要求筛选出年龄大于25岁且小于50岁或年龄大于50岁或小于25岁都是可行的,如同时要求性别是男的或女的也是可行的。但要求筛选出女的年 龄在22岁到45岁,男的年龄在25岁到50岁时Execl本身具有的筛选功能则无能为力了。再者排序与筛选不能结合使用,即不能在排序时根据条件筛选出 来的记录进行排序。例如有一张职工资料清单,其中有的职工已经退休,对在职职工的年龄进行排序时无法剔除已退休职工的数据。
本文试图用Execl的函数来解决上述问题。
一、用函数实现排序
题目:如 有一张工资表,A2:F501,共6列500行3000个单元格。表头A1为姓名代码(1至500)、B1为姓名、C1为津贴、D1为奖金、E1为工资、 F1收入合计。现要求对职工收入从多到少排序,且在职工总收入相同时再按工资从多到少排序,在职工总收入和工资相同时再按奖金从多到少排序,在职工职工总 收入和工资、奖金相同时再按津贴从多到少排序。
方法:G1单元格填入公式
;=if(F2=0,10^100,INT(CONCATENATE(999-f2,999-e2,999-d2,999-c2)))”,
CONCATENATE 是一个拼合函数,可以把30个以下的单元的数据拼合成一个数据,这些被拼合的数据之间用逗号分开。用f2、e2等被拼合的数据用999来减,是为了使它们 位数相同。(假定任何一个职工的总收入少于899元)。被拼合成的函数是文本函数,CONCATENATE与INT函数套用是为了使文本转换为数字。最外 层的if函数是排序时用来剔除不进行排序的记录,在本例中指收入为零的记录。(在上文提到的职工年龄排序,则公式改为;if(f2="退休", 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列各行的数据中最小、 第2、第3小等的数据在第几行。
第四步把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列的公式改为 ;=IF(P1=1,MATCH(SMALL(G:G,ROW(A1)),G:G,0),MATCH(SMALL(H:H,ROW(A1)),H:H,0)))” 即在P单元格输入1以外的值就实现了按奖金大小排序.这样只要通过改变P1(原来的O1单元格)单元格内容的改变就能立即得到按不同要求的排序。
小伙伴们你们知道Excel2019怎么替换数据呢?今天小编很乐意与大家......
阅读小伙伴们你们知道Excel2019怎么添加和去掉水印呢?今天小编很乐意......
阅读近日有一些小伙伴咨询小编关于Excel如何一次删除所有空行呢?下......
阅读小伙伴们你们知道Excel底部工作标签不显示这么办呢?今天小编很......
阅读近日有一些小伙伴咨询小编关于Excel2019怎么制作饼图呢?下面就为......
阅读Excel如何把想要的人筛选出来 Excel筛选数据的操作方法,可以在众多的数据中找到想要的经过处理之后的数据,而最直接方便的功能就是筛选。这样做起事情来不仅节约很多时间,而且完成的速...
次阅读
相信许多伙伴还不了解Excel如何设置单元格内容改变时自动变色的简单操作,不过没关系,下面就分享了Excel里设置单元格根据修改内容自动变色方法,希望感兴趣的朋友都来共同学习哦!...
次阅读
货品收到,检查无误后,就可以入库了。这时,先填写入库表,登记在案才有了之后的出库和库存分析,也让盘存等操作有了依据。 入库表效果图 步骤01 新建工作表 将上述工作簿中的...
次阅读
一些鲜为人知的Excel 2007操作技巧,它们将帮助您更加高效地使用Excel。它们主要是针对启动Excel 2007时默认的设置作改进,从而使得Excel用起来更高效。...
次阅读
1.常见公式用按钮 在Excel中,我们经常遇到求和、求平均值、求最大/小值的问题。早期的Excel版本在工具栏中提供了自动求和()按钮,通过它可以很方便地对单元格区域求和,但求平均...
次阅读
Win7系统Excel菜单栏不见了怎么办 Win7系统Excel菜单栏不见了解决办法 Excel是我们在日常工作中经常会用到的一款办公软件,不过最近有一位Win7系统用户在使用Excel软件的时候发现,上方的菜单栏...
次阅读
或许有的朋友还不太清楚Excel怎么设置vlookup函数?那么还不太清楚的朋友就赶快跟着小编一起来看看Excel设置vlookup函数的方法吧,希望可以帮助到大家哦。...
次阅读
许多朋友在制作一些数据表格的时候经常会用到公式运算,其中包括了将多个表格中的数据相加求和。求和是我们在Excel表格中使用比较频繁的一种运算公式,将两个表格中的数据相加...
次阅读
Excel拆分单元格的详细办法 Excel怎么拆分单元格详解 我们在日常工作中经常都要用到Excel,然而,我们在使用过程中都会遇到各种各样的问题。最近,有用户在使用Excel的时候,想把一个表格拆...
次阅读
Excel是一款我们经常会用到的软件,但是它里面的一些诸如截屏等有趣的功能,不知道你是否有发现呢。 Excel照相功能 说道截屏,大家的反应可能首先都会是Printscreen,但是Excel中,也有...
次阅读
excel转成word的步骤 打开要转换的文件。 选择定格菜单中的文件,然后点击另存为,选择一个地址。 在保存类型中选择单个网页,点击选择:工作表。 单击发布,桌面上会出现另一个文...
次阅读
在工作中需要计算一些特殊的日期,例如给定一个日期,如何得到这个日期所在月份最后一天的日期;计算给定日期上一个月最后一天的日期等等。本节简单讲解如何用Excel自动生成这...
次阅读
本文中我们介绍如何用Excel快速统计成绩和分析成绩分布情况的方法和步骤。 准备数据 输入必要的数据,工作表命名为总表,以 D列的政治分数(满分100)为例,在单元格E1~I1分别输入...
次阅读
输入数据 若要 按 完成单元格输入并选择下面的单元格。 Enter 在单元格中换行。 Alt+Enter 用当前输入项填充选定的单元格区域。 Ctrl+Enter 完成单元格输入并向上选择上一个单元格。 Sh...
次阅读
Excel是平时办公必用一款软件,那么在Excel里如何设置日期自动更新?下面是小编介绍Excel 设置日期自动更新教程,有需要的小伙伴一起来下文看看吧,希望可以帮助到大家!...
次阅读