以下函数都经测试
按键F9可以查询函数中逻辑表达式的值
1.vlookup(a2,sheet2!$b$2:$h$200,5,0)
说明:与a2匹配的项,必须在选择区域的第一列,并且返回列必须包含在所选择的区
域中。比如区域只包含2列,但要返回第3列的值,是错误的。
结果:返回指定列的一个值。
2.countif($a$2:$a$200,">200")统计a2到a200中,值大于200的项的个数。区域内的
内容要与条件运算相匹配。函数中的区域可以是多列。结果:返回一个数值。
3.countifs(),多个条件,“且”关系。
=COUNTIFS(H2:H1111,">2000",E2:E1111,"=25"),结果:返回一个数值。
4.if(逻辑表达式,"真时取值","假时取值"),结果:返回两个取值中的一个值。
5.mid(指定串或单元格,起始位置,长度),结果:返回串中的某子串
=mid(j2,1,2) j2是单元格
=MID("北京市人大代表",4,4) 近回值是"人大代表"
=MID("北京市人大代表",4,2) 近回值是"人大"
6.取模mod(m,n)函数,将数值m取n的模,即:mod(m,n)=m/n的余数,如mod(5,3)=2
,mod(6,3)=0;如果负数取模后等于余数和模数的和值,mod(-7,3)=2(即-1+3=2)。
=IF(MOD(MID(B2,15,3),2),"男","女")
b2单元格是***号码,这样对15位***号码也适用
如果只是18位***号码,可以=IF(MOD(MID(B2,17,1),2),"男","女")
7.indirect返回并显示指定引用的内容。使用INDIRECT函数可引用其他工作簿的名称
、工作表名称和单元格引用。
indirect("a1") 如果a1加引号,则取A1单元格中存放的值,不加引号则引用A1中存放
的地址,此时如果A1中存放的不是地址则出错。
如果表名是数字,要加单引号。如:='1'!a1
=SUM(INDIRECT("1!E2:E20")) 也可=SUM(INDIRECT("'1'!E2:E20"))
实例:
引用另一工作簿(必须打开)工作表中的数据
=SUM(INDIRECT("[m.xls]Sheet1!B2:B4")) 把工作薄m.xls中表sheet1的区域b2:b4的
值求和,工作薄名称要用方括号括起来
8.lookup(值,被查区域,返回值所在区域)
注意:被查区域的值必须事先按升序排序,如果没有完全匹配的值,则返回最接近被
查值(比被查值小)的行指定列的值。
如果被查值小于被查区域的所有值,则返回#A/V错误信息
=lookup(1000,a1:a200,b1:b200),在a1:a200中查找值1000,找到后返回同一行中B列
的值。如果a列中没有1000,则找到比1000小并最接近1000的所在行,返回该行b列的
值。
9.sumif(条件值所在区域,条件,符合条件时求合的区域)
例:sumif(m2:m1111,"教育",h2:h1111)
把m2到m1111中值等于“教育”的所在行的(h2到h1111)H列求和
11.index(区域,行数,列数)
返回区域中指定行数、列数的值
index(区域1,区域2,区域3,...,行数,列数,指定区域数)
例:
=INDEX((B2:C11, E2:F11), 2, 2, 2) 返回第二个区域第二行第二列的值(即
E2:F11)
12.match(值,区域,查询方式)
返回指定值所在列的位置(区域的第几行)
查询方式:1或省略:查找小于等于查找值的最大值,区域必须按升序排列
0:查找等于指定的值,也即精确查找
-1:查找大于等于查找值的最大值,区域必须按降序排列
13.index()与 match()配合使用
例:
=index(a1:a10,match(值或单元格引用,b1:b10,0)
match在b1:b10中精确找到“值”对应的位置(第几行),index返回该行中A列的值
14.find("被查字符",串或串所在的单元格,从第几个字符开始查)
例:
=find("车",b48,1)
=find("车","我是东方车队",2) 返回的是5
该函数与其他函数配合使用
15.left(串,个数) right(串,个数)
例:
=LEFT("chinase",2) 返回 ch
=LEFT("我是中国人",2) 返回 我是
16.len(串或单元格引用) 返回字符个数
=LEN("我是中国人") 返回5
=LEN("china") 返回5
17.datedif(日期1,日期2,参数) 返回两个日期之差
参数:
y 返回两日期之间的年数
M 返回两日期之间的月数
d 返回两日期之间的天数
YM 忽略年数天数,返回月数差
YD 忽略年数,返回天数
MD 忽略年数月数,返回天数
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-01-01"),"y") 返回1
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-01-01"),"m") 返回12
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-01-01"),"d") 返回365
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-01-01"),"ym")返回0
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-03-01"),"ym")返回2
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-03-09"),"yd")返回67
(31+28+8=67)
=DATEDIF(DATEVALUE("2001-01-01"),DATEVALUE("2002-02-05"),"md")返回4
18.trim("串") 返回没有前后空格的串
例:=TRIM(" ggg ") 返回"ggg"
19.substitute(串或引用,"旧串","新串",替换第几次出现的旧串)
用“新串”替换串或引用中的“旧串”
例
=SUBSTITUTE(D58,"22","99",2) 把单元格d58中第二次出现的串“22”用"99"替换
=SUBSTITUTE(D58,"22","88",3) 把单元格d58中第三次出现的串“22”用"88"替换
如果省略了出现的次数,则全部替换
=SUBSTITUTE(" 我 是 人民 "," ","")返回“我是人民”,把空格清除了
20.count() 返回数字值的个数
用法一
=count(a2:h10) 返回A2到H10区域中数字值的个数,忽略文本及文本型的数字
用法二
=count(123,23,11,4) 返回4 ,即数字的个数
用法三
=count(a2:h10,123,23,11,4) 返回A2到H10区域中数字值的个数加4
=count(a2:h10,123,23) 返回A2到H10区域中数字值的个数加2
21.counta()
统计非空单元格,只要单元格有内容,就会被统计,包括有些看不见的字符。
如果单元格什么也没有输入过,则忽略。输入空格也会被统计。
22.round(四舍五入的数字,小数位数)
例
=ROUND(12.34,1) 返回12.3
=ROUND(12.34,2) 返回12.34
=ROUND(12.34,0) 返回12
=ROUND(12.34,3) 返回12.34
23.sumproduct(数据1,数据2,....)返回对应列数据乘积的和
例
=sumproduct(a1:a5) 返回值=a1+a2+a3+a4+a5
=sumproduct(a1:a3,b1:b3) 返回值=a1*b1+a2*b2+a3*b3
如果多个区域,多列相乘
也可是数组
=sumproduct({1,2,3})返回值=1+2+3=6
=sumproduct({1,2},{3,4}) 返回值=1*3+2*4=3+8=11
出错的情况
区域不一致
=sumproduct(a1:a3,b1:b4)
数组维数不一致
=sumproduct({1,2},{3,4,5})
值不是数值型
=sumproduct({1,2},{3,a})
区域中含有非数值型单元格
=sumproduct(a1:a5)