Excel公式与函数

时间:2024-02-23 07:27:33

本文主要针对Excel函数的梳理,按照函数类型进行分类说明。

1、逻辑函数
2、查找函数
3、统计函数
4、引用函数
5、数学函数
7、日期函数
8、文本函数
9、信息函数
10、数组

一、公式规范

Excel公式用“=”开头,用括号()来区分优先级,成对出现

快捷键说明:

F3:调出“名称对话框”

F9:显示函数中自逻辑的值,按下ESC或者Ctrl+z退出

F4:相对引用、绝对引用、混合引用的切换

Ctrl+~:显示单元格中的公式

Alt+F1:快速插入图表(柱形图)

对区域进行公示计算是,选中区域,并输入公式后按住“Ctrl+回车”,公式会自动填充区域,包括行和列。

二、逻辑函数

1、True(1)和False(0)

逻辑判断符号:=、>、>=、<=、<>

 逻辑值可以转换为数字(*1即可)

2、IF函数,及IF嵌套函数

=IF(F2>3,5000,"无奖金")

=IF(F2>=4,5000,IF(F2=3,3000,IF(F2=2,2000,0)))    ---嵌套函数逻辑关系必须有层级关系。

3、逻辑函数And、Or、Not

And:用于判断多个条件是否同时成立,示例:=IF(AND(F2>3,E2="A类"),5000,0)

Or:只要有一个是真就是真,示例:=IF(OR(F2>3,E2="A类",D2>=10),5000,0)

Not:取反,示例:=IF(NOT(F2>3),0,5000)

 

快捷键F9,可以查看函数值,例如函数=IF(NOT(F2>3),0,5000),选中黄色内容按下F9后公式显示:=IF(FALSE,0,5000)

三、查找函数

1、Vlookup函数

=Vlookup(要查找的值,要查找的区域,返回第几列,查找类型),其中查找类型有两种:1或True 模糊匹配,0或Flase精确匹配

=Vlookup(lookup_value,table_array,col_index_num,[range_lookup])

VlookUp中Vertival adj.垂直的,直立的;头顶的;顶点的;n.垂直线,垂直面

在区域或数组的第一列中查找数据

在区域或数组中查找数据

返回与指定值同行的该区域或数组中其他列的值

 

近似匹配时,要求table_array的首列中的值必须以升序排序

 

这里对提成率区域命名为“提成率表”,选择Vlookup中的区域部分按快捷键F3,调出名称对话框,选中名称即可用名称替代区域。

嵌套复合调用,可以将Vlookup的结果集作为下一个Vlookup的区域进一步进行查找。

=VLOOKUP(VLOOKUP(C2,G:H,2,0),J:T,8,0)

2、Hlookup函数

=HlookUp(要查找的值,查找区域,返回区域中的第几行,查找类型),其中查找类型有两种:1或True 模糊匹配,0或Flase精确匹配

=HlookUp(loopup_value,table_array,row_index_row,[range_lookup])

HlookUp中Horizontal adj.水平的;地平线;同一阶层的;n.水平线;水平面;水平位置

在区域或数组的第一行中查找数据,返回与指定数值同行的该区域或数组中的其他行的值

 

返回区域的第2列,Vlookup是返回区域的第2行。。。

3、Match函数

=MATCH(查找的值,查找的区域,查找类型),其中查找类型有3种:1为小于(升序),0为精确匹配,-1为大于(降序)

=MATCH(E2,$B$2:$B$6,0)  返回E2在B2:B6区域中的第几行(这里的行相对于区域而非工作表

=MATCH(I3&"-"&J3,M3:M12,0)  复合公式

4、Index函数

 =INDEX(区域,区域中行,区域中列)

=INDEX($D$4:$K$8,N3,O3)

 

 

5、Index和Match的组合

用match获取关键字在区域中的行,index通过行在区域中查找具体单元格的值。

index(要查找的区域,第几行,第几列),返回指定行列单元格的值

match(要查找的值,查找的区域,匹配类型),返回指定区域中指定值的行,其中匹配类型:1为小于(升序),0为精确匹配,-1为大于(降序)

6、LookUp函数

向量形式=LookUp(要查找的值,要查找的区域,返回查找的结果或区域),其中要查找的区域,和返回查找的结果或区域 只能是一行或一列。

数组形式=LookUp(要查找的值,要查找的区域)

使用LoopUp的区域首列要升序排列,且没有重复值。

7、Choose函数

 =CHOOSE(MONTH(B2),1,1,1,2,2,2,3,3,3,4,4,4)

 

四、统计函数

1、Count、CountA、CountBlank

示例:count统计数字个数;counta统计非空字符个数;countblank统计空单元格个数

2、CountIf、SumIf、AVERAGEIF

countif计算满足一个条件的单元格个数;countIfs计算满足多个条件的单元格个数

=COUNTIF(C:C,"A类")  ,countIf(区域,条件)
=COUNTIF(C:C,H4)
=SUMIF(C:C,"A类",D:D),sumif(区域,条件,求值区域)
=AVERAGEIF(C:C,"A类",D:D), averageIf(区域,条件,求值区域)

 

=SUMIF($B$2:$B$46,"小计",C2:C46)

=SUMIF($B$2:$B$46,$B55,C$2:C$46)  

3、CountIfs、SumIfs、AVERAGEIFs 

=SUMIFS(D:D,B:B,">=10",C:C,"A类")        ,=sumifs(求和区域,条件1区域,条件1,条件2区域,条件2,……)
=AVERAGEIFS(D:D,B:B,">=10",C:C,"A类")   ,=averageifs(求平均值区域,条件1区域,条件1,条件2区域,条件2,……)
=COUNTIFS(B:B,">=10",C:C,"A类")    ,=countifs(条件1区域,条件1,条件2区域,条件2,……)

 

=SUMIFS($D:$D,$B:$B,$F3,$C:$C,G$2)

 

4、Median和Mode函数

=MEDIAN(求值区域),用来求该区域(行或列)的中值,如果为奇数则返回中间的一个数,如果为偶数则返回中间两个数的平均值。

=MODE(求值区域),用来返回求值区域中出现次数最多的数

 

5、Rank函数

=rank(关键值,区域),  返回一个数值在一组数字中的排位(序号)

rank(数字,区域,排序类型),其中排序类型0为降序(默认不写时为0),1为升序。
Rank  (number,ref,[order])
Rank.EQ(number,ref,[order])  等价于Rank
Rank.AVG(number,ref,[order])

6、Max、Min、Large、Small函数

Max(区域),求一个区域的最大值
Min(区域),求一个区域的最小值
Large(区域,k),求一个区域中第k大的值
Small(区域,k),求一个区域中第k小的值

 

五、引用函数

1、offset函数

 =offset(单元格,偏移行数,偏移列数,新区域的高,新区域的宽)

2、Indirect

=\'2009年度\'!B8  等价于=INDIRECT(A14&"!B8")

=SUM(\'2009年度:2011年度\'!B4)  ,这里按住shift选中sheet页。等价于 =\'2009年度\'!B4+\'2010年度\'!B4+\'2011年度\'!B4

Indirect(ref_text,[a1]),返回由文本字符串指定的引用

=INDIRECT("D8"),使用双引号,当成一个值来处理,如果没有双引号,则当着变量

  

************************************************

1、A列“数据”——“数据验证”——“序列”,引用区域中第一列 

 2、创建区域名称,选中区域,“公式”——“根据所选内容创建”——“最左列” 确定即可。

在“公式”——“名称管理器”中可以查看名称清单

3、给B列增加“序列”,引用名称与“A1”相等的区域

4、这样创建的B列“序列”下拉有空白处,解决办法是选中数据区域,定位空值,右键删除即可。

  

3、Row

row([引用参数]),参数可以为空,此时返回当前单元格所在的行号,如果有参数则返回参数单元格的行数。 

=ROW()
=ROW(B8)
=ROW(2:2)
=ROW()-1

=COLUMN()
=COLUMN((B8))

快速生成工资条方法一:

=IF(MOD(ROW(1:1),2),B$1,OFFSET(B$1,$A13,0))

生成工资条方法二(通过排序):

生成工资条方法三:

在最后两列分别输入两个数,选定最后两列的区域,定位常量,右键,插入整行。

复制标题,选中“序号”列,定位空行,粘贴  即可。

 

给区域隔多少行增加一空行,就在第几行后输入数一起拖动增加序列,定位常量,右键插入即可。

给区域隔多少列增加一空列,就按住Ctrl(必须是Ctrl),点选所有列后右键插入即可。 

4、ROWS、COLUMNS

=ROWS(3:8)  等于6(行)
=COLUMNS(C:E) 等于3(列) 

六、数学函数

1、Round函数

 

=ROUND(27715.3943,2)

 =ROUND(K9,-1)

选中区域鼠标右键拖动可以复制,复制时可以选中格式,数值等多种选项。

2、Round、RoundDown、RoundUp

=ROUND(D2,0) 四舍五入
=ROUNDDOWN(D2,0) 向下舍入(丢弃)
=ROUNDUP(D2,0) 向上舍入(进位)

Mround
Ceiling
Floor
Even
Odd

3、Int函数 

 =INT(B2)

=TRUNC(B2) 该参数可以带指定保留小数位数。

4、Mod

=MOD(A2,B2)

 

 

每隔一行插入背景色

选择数据区域——>表格——>插入表格,会新建工作表

 

每隔五行插入背景色

全选工作表——>“开始”选项卡下——>条件格式——>新建规则——>使用公式确定要设置格式的单元格——>输入公式:=MOD(ROW(A1),5)=0——>设置格式

5、Rand函数

 =RAND() 返回0-1之间的随机数,每次更新工作表时,这些数据会重新计算(对他们排序时没有用的)

=RANDBETWEEN(0,100),两个入参分别是最小值和最大值

 

返回两个日期之间的日期,一定要用到绝对引用。

=RANDBETWEEN($R$2,$R$3)

 

生成0-100的随机数

=RANDBETWEEN(0,100)

用随机数抽签,去掉小数位后就只有两个随机数,0和1.

6、Convert函数

 

=CONVERT(E1,"in","cm")

=CONVERT(E7,"Nmi","km")

=CONVERT(E13,"C","F")

 

七、日期函数

1、日期的本质

日期第一天从1900年1月1日开始,日期的本质是数值。

时间是日期的小数部分。

日期的输入,用“-”或“/”分割,时间的输入,用“:”隔开。

日期的计算,跟数值计算一样,根据需要可能要设置格式。

Ctrl+;  会自动插入系统的日期

Ctrl+Shift+; 会自动插入系统的时间
“Ctrl”+“;”+“空格”+“Ctrl+Shift”+“;” 会自动输入当前的日期和时间

=TODAY() 返回系统当前日期

=NOW() 返回系统当前时间 

2、提取日期和时间

年月日year、month、day,时分秒hour、minute、second

 

=DATE(A2,B2,C2) 组合时间

=TIME(F2,G2,H2)组合日期

 

3、weekday函数

 设置日期格式,aaa表示星期的简写,aaaa表示星期的全称

 

weekday函数两个参数,将日期转换为星期几

 

 通过数据有效性,安排会议时间,排除周六日

=and(weekday(k1)<>7,weekday(k1)<>1

4、Networkdays

=NETWORKDAYS(B2,B3,{"2013-04-04","2018-05-01","2013-06-12","2013-09-09","2013-10-10"})

=NETWORKDAYS($B$2,$B$3,D2:D6)

=NETWORKDAYS($B$2,$B$3,{41368;41395;41437;41536;41548})

holidays入参可以是单元格区域,也可以是数组。

日期之间没有法定节假日用=NETWORKDAYS(B2,B3)

日期之间有法定节假日=NETWORKDAYS(B2,B3,D2:D6)

不排除节假日=WORKDAY(A2,B2)

排除节假日=WORKDAY(A2,B2,E2)

 

=NETWORKDAYS.INTL(B2,B3,1,D2:D6)

 

5、Eomonth

 指定日期向前或向后几个月的那个月的最后一天日期

 =EOMONTH(A2,0),这里0表示当月,负值表示往前几个月,整数表示往后几个月

  

=EOMONTH(A2,2)

=EDATE(A2,2)

 

 

6、Datedif函数 

这是一个隐藏函数,在函数列表里找不到,只能手动输入

表示返回两个日期之间的间隔,单位为y时表示间隔年份,m表示间隔月份,d表示间隔天数,ym表示忽略年仅核算间隔的年数,……

=DATEDIF(A2,B2,"y")

\'=DATEDIF(H2,TODAY(),"y")

 

八、文本函数

1、Find Mid函数

=FIND("F",A2)
=SEARCH("F",A2)

 

 

=FIND("-",E2)
=MID(E2,F2+1,4)
=MID(E2,FIND("-",E2)+1,4)

2、Left Right函数

 

 

=LEFT(A1,3)
=RIGHT(A1,8)

=LEFT(F2,LEFT(FIND("省",F2)))
=MID(LEFT(F2,FIND("市",F2)),FIND("省",F2)+1,10)
=RIGHT(F2,LEN(F2)-FIND("市",F2))

  

3、Trim函数

 =TRIM(A2),只能删除两头的空格,字符串中间的空格没法处理。

 

 

 

=CLEAN(A1)

  

4、Concatenate

=CONCATENATE(A1,B1,C1)

 

=CONCATENATE(I1,"-",J1)
=I3 & "-" & J3

5、Upper Lower

PROPER将文本中每个单词的首字母转为大写

Upper将文本转为大写

Lower将文本转为小写

=PROPER(CONCATENATE(A2,B2))  ---首字母大写

6、Replace subsitute函数

 =REPLACE(A2,5,1,"") 替换A2单元格中第5个字符开始,的1个字符,替换为空

=REPLACE(D2,8,1,"CN") 

 

=SUBSTITUTE(A8,"-","") A8中所有"-"替换为空
=SUBSTITUTE(D8,"-","CN",2) D8中将第2次出现的"-"替换为CN,参数中instance_num为出现的次数

 

7、Text

 

=TEXT(F3,"000-00000000")  这里0表示占位符

 

可以通过“格式”设置单元格内容位数,0表示占位符,不足用0表示

 

九、信息函数

信息函数用来判断文本信息,大部分都是is开头的函数,返回值只有Ture或False两种。

1、is函数

=ISTEXT(A3)
=ISNUMBER(A3)
=ISNONTEXT(A3)

 

2、iserror函数

 iserr、isna(NA错误)、iserror(所有错误)

公式返回的错误值大概有7种,比如NA

=IF(ISERROR((G4-F4)/F4),"NA",(G4-F4)/F4)

=IFERROR((G4-F4)/F4,"NA") 如果是错误值返回NA,否则返回第一个值

十、数组

1、什么是数组

 对于数组公式,一定要同时按“Ctrl”+“Shift”+“回车”。

行方向的一维数组,用逗号分隔:={1,2,3,4}

列方向的一维数组,用冒号分隔:={5;6;7;8}

二维数组,嵌套分号和冒号:={1,2,3;4,5,6}

{=SUM($C$3:$C$15*$D$3:$D$15)}

 {=AVERAGE(H3:H15-G3:G15)}

 

2、数组公式

 {=SUM($C$4:$L$4*C5:L5)}

{=IF(I2:O2=I1:O1,"重复","不重复")}

3、数组统计个数

 {=SUM(1/COUNTIF(A2:A40,A2:A40))}   

 

4、Frequency函数

 

{=FREQUENCY(B2:B41,D5:D9)}

Alt+F1 :快速插入图表。

 

5、Transpose函数

可能用复制——转置粘贴,但是这样转置后的表跟原表就没有关联关系了。

{=TRANSPOSE(A2:H5)}用公式可以建立原表与新表的关联。

 

6、数组查询

{=VLOOKUP(B3&"-"&C3,G:H,2,0)}

{=INDEX(D:D,MATCH(G2,B:B&"-"&C:C,0),0)}