Excel 函数
数字处理
取绝对值
1 | =ABS(数字) |
向下取整
1 | =INT(数字) |
四舍五入
1 | =ROUND(数字,小数位数) |
判断公式
把公式产生的错误值显示为空
1
2
3C2=IFERROR(A2/B2,"")
# 如:
IFERROR(2/0,"错误") = "错误"- 说明:如果是错误值则显示为空,否则正常显示。
IF多条件判断返回值
1
C2=IF(AND(A2<500,B2="未到期"),"补款","")
- 说明:两个条件同时成立用AND,任一个成立用OR函数。
统计公式
统计两个表格重复的内容
1 | B2=COUNTIF(Sheet15!A:A,A2) |
- 说明:如果返回值大于0说明在另一个表中存在,0则不存在。
统计不重复的总人数
1 | C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) |
- 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。
求和公式
隔列求和
1 | H3=SUMIF($A$2:$G$2,H$2,A3:G3) |
- 说明:如果标题行没有规则用第2个公式
单条件求和
1 | F2=SUMIF(A:A,E2,C:C) |
- 说明:SUMIF函数的基本用法
单条件模糊求和
1 | =SUMIF(A2:A4,"*A*",C2:C4) |
- 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如”A“就表示a前和后有任意多个字符,即包含A。
多条件模糊求和
1 | C11=SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) |
- 说明:在sumifs中可以使用通配符*
多表相同位置求和
1 | b2=SUM(Sheet1:Sheet19!B2) |
- 说明:在表中间删除或添加表后,公式结果会自动更新。
按日期和产品求和
1 | F2=SUMPRODUCT((MONTH($A$2:$A$25)=F$1)*($B$2:$B$25=$E2)*$C$2:$C$25) |
- 说明:SUMPRODUCT可以完成多条件求和
查找与引用公式
单条件查找公式
1 | C11=VLOOKUP(B11,B3:F7,4,FALSE) |
- 说明:查找是VLOOKUP最擅长的,基本用法
双向查找公式
1 | =INDEX(C3:H7,MATCH(B10,B3:B7,0),MATCH(C10,C2:H2,0)) |
- 说明:利用MATCH函数查找位置,用INDEX函数取值
查找最后一条符合条件的记录。
1 | C13 = LOOKUP(1,0/(C5:C10=B13),D5:D10) |
- 说明:0/(条件)可以把不符合条件的变成错误值,而lookup可以忽略错误值
多条件查找
- 说明:公式原理同上一个公式
指定区域最后一个非空值查找
1 | B14=LOOKUP(1,0/(B2:B13<>""),$A2:$A13) |
按数字区域间取对应的值
1 | D9=VLOOKUP(C9,B$4:C$6,2) |
- 公式说明:VLOOKUP和LOOKUP函数都可以按区间取值,一定要注意,销售量列的数字一定要升序排列。
字符串处理公式
多单元格字符串合并
1 | C2=PHONETIC(A2:A7) |
- 说明:Phonetic函数只能对字符型内容合并,数字不可以。
截取除后3位之外的部分
1 | =LEFT(D1,LEN(D1)-3) |
- 说明:LEN计算出总长度,LEFT从左边截总长度-3个
截取-前的部分
1 | B2=Left(A1,FIND("-",A1)-1) |
- 说明:用FIND函数查找位置,用LEFT截取。
截取字符串中任一段的公式
1 | B1=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",20)),20,20)) |
- 说明:公式是利用强插N个空字符的方式进行截取
字符串查找
1 | B2=IF(COUNT(FIND("河南",A2))=0,"否","是") |
- 说明: FIND查找成功,返回字符的位置,否则返回错误值,而COUNT可以统计出数字的 个数,这里可以用来判断查找是否成功。
字符串查找一对多
1 | B2=IF(COUNT(FIND({"辽宁","黑龙江","吉林"},A2))=0,"其他","东北") |
- 说明:设置FIND第一个参数为常量数组,用COUNT函数统计FIND查找结果
日期计算公式
两日期相隔的年、月、天数计算
- A1是开始日期(2011-12-1),B1是结束日期(2013-6-10)。
- 相隔多少天?
=datedif(A1,B1,"d")
结果:557 - 相隔多少月?
=datedif(A1,B1,"m")
结果:18 - 相隔多少年?
=datedif(A1,B1,"Y")
结果:1 - 不考虑年相隔多少月?
=datedif(A1,B1,"Ym")
结果:6 - 不考虑年相隔多少天?
=datedif(A1,B1,"YD")
结果:192 - 不考虑年月相隔多少天?
=datedif(A1,B1,"MD")
结果:9 - datedif函数第3个参数说明:
- “Y” 时间段中的整年数。
- “M” 时间段中的整月数。
- “D” 时间段中的天数。
- “MD” 天数的差。忽略日期中的月和年。
- “YM” 月数的差。忽略日期中的日和年。
- “YD” 天数的差。忽略日期中的年。
- 相隔多少天?
扣除周末天数的工作日天数
1 | C2=NETWORKDAYS.INTL(IF(B2<DATE(2015,1,1),DATE(2015,1,1),B2),DATE(2015,1,31),11) |
- 说明:返回两个日期之间的所有工作日数,使用参数指示哪些天是周末,以及有多少天是周末。周末和任何指定为假期的日期不被视为工作日
Via