学习啦>学习电脑>工具软件>办公软件学习>Excel教程>Excel基础>

Excel函数排序与筛选教程

时间: 恒辉636 分享

学习啦在线学习网   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

  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

学习啦在线学习网   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

学习啦在线学习网   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单元格)单元格内容的改变就能立即得到按不同要求的排序。

:$F1,$H2, COLUMN(A class="main">

Excel函数排序与筛选教程

时间: 恒辉636 分享
  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

学习啦在线学习网   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单元格)单元格内容的改变就能立即得到按不同要求的排序。

:$F1,$H2, COLUMN(A class="main">

Excel函数排序与筛选教程

时间: 恒辉636 分享

学习啦在线学习网   以上叙述看似繁杂实际非常简单,只要把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单元格)单元格内容的改变就能立即得到按不同要求的排序。

:$F1,$H2, COLUMN(A class="main">

Excel函数排序与筛选教程

时间: 恒辉636 分享
  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单元格)单元格内容的改变就能立即得到按不同要求的排序。

:$F1单元格列阵第$H2行第COLUMN(A class="main">

Excel函数排序与筛选教程

时间: 恒辉636 分享

  以上叙述看似繁杂实际非常简单,只要把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单元格)单元格内容的改变就能立即得到按不同要求的排序。

Excel函数排序与筛选教程

Execl本身具有很方便的排序与筛选功能,下拉数据菜单即可选择排序或筛选对数据清单进行排序或筛
推荐度:
点击下载文档文档为doc格式

精选文章

  • EXCEL图形和图表编辑技巧介绍
    EXCEL图形和图表编辑技巧介绍

    Excel的重要功能之一就是能快速方便地将工作表数据生成柱状、圆饼、折线等分析图形。要想在Web发布这类以及用于报表装饰示意类图形,首先单击工具选

  • Excel快速检索教程
    Excel快速检索教程

    由于重复输入或粘贴等原因,Excel 2007工作表往往存在重复的数据或记录。如果工作表的规模比较大,手工查找和删除重复数据很难做到完全彻底。不过这个

  • 将Excel表格转换成Word文档教程
    将Excel表格转换成Word文档教程

    excel强大的制表功能令很多办公一族都感受到过它的方便与实用。可是在一些情况下,却需要我们将excel表格转换成word文档。 对于用惯了excel的人来说,直接用

  • Excel快捷键集合汇总
    Excel快捷键集合汇总

    学习啦在线学习网Excel快捷键大全: 在工作表中移动和滚动 移动到当前数据区域的边缘 CTRL+ 箭头键 移动到行首 HOME 移动到工作表的开头 CTRL+HOME 移动到工作表的最后一个单元

171901