background image

二、用函数实现筛选

 

  题目:如有一张职工名册表,

A2:F501,共 6 列 500 行 3000 个单元格。表头 A1 为姓名代码(1 至

500)、B1 为姓名、C1 为性别、D1 为年龄、E1 为学历、F1 职称。现要求对职工的性别、年龄、学历、职称进行
交错筛选,例如要求在同一张表上筛选出

1、女的年龄在 22 岁到 45 岁,男的年龄在 25 岁到 50 岁,2、

女博士,

3、男博士后。

  方法:第一步在

G2

单元格输入公式

=IF(OR(AND(C2="女",

D2>=22,D2<=45),AND(C2="男",

  

D2>=25,D2<=50)),ROW(A1),0)“,在 H2

单元格输入公式

=IF(AND(C2="女",E2="博

"),

  

ROW(B1),0)“,在 I2

单元格输入公式

=IF(AND(C2="男",E2="博士后"),ROW(B1),0)“。在

J2 单元格输入公式
“=IF(K$2=1,LARGE(G:G,ROW(A1)),IF(K$2=2,LARGE(H:H,ROW(A1)),

  

IF(K$2=3,LARGE(I:I,ROW(A1)),0)))”然后用上述提到的方法向下拖放。G、H、I 列的公式的含

义就是凡符合筛选条件的行记录下行号否则为零,

J 列的公式的含义根据 K2 的数值选择 G、H、I 中的一列

进行排序并把不合条件的行除去。

  第二步在

K1

单元格输文字 筛选选择 ,

A1 到 F1 表头复制到 L1 到 Q1,在 L2 单元格输入

  公式

=IF($J2=0,0,INDEX($A$2:$F$501,$J2,COLUMN(A$1)))”,然后向右拖放到 Q2,

再向下拖放。

INDEX 函数的含义上文已说明。

  第三步在

P1 单元格输入 1 或 2 或 3 便可实现上述三种筛选。

在前面,我们介绍了,利用

INT 函数来构造四舍五入函数的方法,但是,有时候我们会遇到更多小数位

的四舍五入,用

INT 函数构造就会有些吃力了,Excel 的 Round 函数可以帮助我们。Round 函数的作用是

返回某个数字按指定位数取整后的数字。语法为

“ROUND(number,num_digits)”,其中 Number 是需要进行

四舍五入的数字;

Num_digits 为指定的位数,按此位数进行四舍五入,如果 num_digits 大于 0,则四舍五

入到指定的小数位,如果

 num_digits 等于 0,则四舍五入到最接近的整数,如果 num_digits 小于 0,则在

小数点左侧进行四舍五入。
举例来说,
=ROUND(2.15, 1) 将 2.15 四舍五入到一个小数位,结果为 2.2
=ROUND(2.149, 1) 将 2.149 四舍五入到一个小数位结果为 2.1 
=ROUND(-1.475, 2) 将 -1.475 四舍五入到两小数位结果为-1.48) 
=ROUND(21.5, -1) 将 21.5 四舍五入到小数点左侧一位结果为 20
当我们需要产生一些随机数,如单位的抽奖,购买体育彩票前的选号等,我们可以利用

Excel 中的 RAND

函数来产生这些随机数。

RAND 函数能够返回大于等于 0 小于 1 的均匀分布随机数,每次计算工作表时都

将返回一个新的数值。我们只要将

RAND()与 INT 函数组合起来,就能够产生各种位数的随机数了。

“=INT(RAND()*10)”    产生 0 到 10 之间的任意自然数
“=INT(RAND()*100)”   产生 0 到 100 之间的任意自然数
……
由此,我们只需要在

7(或其他大小)个单元格中分别输入“=INT(RAND()*10)”,这样就能够产生一个 7