Excel学习04
函数讲解
Excel函数是数据处理和分析的核心工具,能够自动执行计算、转换和逻辑判断等操作。
函数组成结构:
等号(=):所有公式/函数必须以等号开头。
函数名:如SUM、VLOOKUP等
括号:包含参数列表
参数:函数处理的数据或条件,用逗号分隔
示例:求和函数 =SUM(A1:A10,C1:C10)
在Excel的开始选项栏的右上角中就有自动求和函数,点击后选择范围,按下enter键实现求和。
在函数功能区中点击fx按钮,可以通过输入函数关键字的方式来寻找想要的函数。
常用函数讲解
LARGE函数
large函数是excel中的一个统计函数,其主要功能是返回数据集中的K个最大值。简单来说,它可以帮助你找出数据中从大到小排序后任意的值。
函数语法:
=LARGE(array,k)
array:必需参数,要查找第K个最大值的数组或数据区域。
k:必需参数,指定要返回的值在数组中的大小排位(从最大数开始算)。
IF函数
IF函数是excel中最基础且最常用的逻辑函数之一,它允许您根据条件测试返回不同的结果,实现“如果...那么...否则”的逻辑判断。
IF函数语法:
=IF(logical_test, [value_if_true], [value_if_false])
logical_test(必需):要测试的条件表达式,结果为TRUE或FALSE
value_if_true(必需):当条件为TRUE时返回的值
value_if_false(可选):当条件为FALSE时返回的值(若省略则返回FALSE)
IF函数可以嵌套使用:
例如:
=IF(B3>=90, "优秀",IF(B3>=80, "良好",IF(B3>=60, "及格", "不及格")))
关于IF的判断后所展现的颜色,可以通过条件格式来进行修改。
IFS函数
IFS函数时excel2016及以后版本引入的逻辑函数,它解决了传统IF函数多层嵌套的复杂性问题,可以更简洁地处理多个条件判断。
函数语法:
=IFS(condition1, value_if_true1,[condition2, value_if_true2],...[condition127, value_if_true127]
)
IFS函数常见错误处理:
1.#N/A错误
原因:所有条件都不满足且未提供默认值。
解决:最后添加TRUE,”默认值“
2.条件顺序错误
条件顺序应从最严格到最宽松排列条件,最后使用TRUE捕获未匹配情况。
VLOOKUP函数
vlookup(垂直查找)是Excel中最重要且最常用地查找与引用函数之一,它可以在表格或区域中按列查找特定值并返回对应的数据。
vlookup函数语法:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
lookup_value(必需):要查找的值
table_array(必需):查找的数据区域(必需包含查找列和返回列)
col_index_num(必需):返回数据所在列的序号(从查找列开始算起为1)
range_lookup(可选):查找方式
TRUE/1或省略:近似匹配(要求查找列必需升序排列)
FALSE/0:精确匹配
VLOOKUP使用时注意事项:
1.查找方向限制:只能从左向右找。查找值必须在数据区域的第一列。
2.精确匹配问题:使用FALSE时,若找不到完全匹配项则返回#N/A。可使用IFERROR处理错误:=IFERROR(VLOOKUP(...),”未找到")
3.列引用问题:列序号是相对于table_array的,不是工作表列号。添加/删除列可能导致公式出错。
4.性能考虑:大数据精确匹配性能较差。近似匹配要求数据已排序,否则结果不可靠。
相对参照与绝对参照
在Excel公式中,单元格引用方式直接影响公式复制时的行为。
参照类型 | 符号表示 | 复制公式时的行为 | 典型应用场景 |
---|---|---|---|
相对参照 | A1 | 行号和列标会相对改变 | 向下/向右填充相同计算逻辑的公式 |
绝对参照 | $A$1 | 始终引用固定单元格 | 引用税率、单价等固定参数 |
混合参照 | A$1或$A1 | 只锁定行或只锁定列 | 跨行列计算,如乘法表 |
IFERROR函数
IFERROR函数是Excel中用于错误处理的实用函数,它可以捕获公式可能产生的错误并返回自定义结果,使表格更加整洁和专业。
IFERROR函数语法:
=IFERROR(value, value_if_error)
value(必需):要检查的公式或表达式。
value_if_error(必需):当第一个参数返回错误时要返回的值。
可捕获的错误类型:
#N/A(VLOOKUP找不到匹配项)
#VALUE!(数据类型不匹配)
#REF!(无效单元格引用)
#DIV/0(除以零)
#NUM!(数值问题)
#NAME?(未识别的文本)
#NULL!(无效的区域交集)
COUNT函数
Excel提供了一系列强大的计数函数,可以满足不同场景下的统计需求。
COUNT函数:统计区域内数值的个数(忽略文本、逻辑值、空值等)
语法:
=COUNT(value1, [value2], ...)
使用示例:
=COUNT(A1:A10) // 统计A1到A10中包含数值的单元格数量
=COUNT(A1,B1,C1) // 统计多个不连续单元格中的数值个数
特点:只计算数字(包括日期、时间等特殊数字格式)。忽略文本、逻辑值(True/False)、错误值、空单元格。
COUNTA函数:统计区域内非空单元格数量(包含所有数据类型)
语法:
=COUNTA(value1, [value2], ...)
使用示例:
=COUNTA(B2:B20) // 统计B列中已填写的单元格总数
=COUNTA(A1,C1,E1) // 统计多个不连续单元格中的非空数量
特点:计算所有非空单元格(包括文本、数字、逻辑值、错误值等)。只忽略真正空白的单元格。包含空格字符的单元格也会被记入。
COUNTIF函数:按单个条件统计单元格数量。
语法:
=COUNTIF(range, criteria)
range:要统计的单元格区域。
criteria:统计条件(可以是数字、表达式、文本或单元格引用)
使用示例:
=COUNTIF(C1:C100,">60") // 统计大于60的单元格数量
=COUNTIF(D2:D50,"完成") // 统计内容为"完成"的单元格
=COUNTIF(E1:E20,"<>") // 统计非空单元格(类似COUNTA)
=COUNTIF(F1:F30,"*错误*") // 统计包含"错误"文本的单元格
特点:
支持通配符: *(任意多个字符)、?(单个字符)
条件可以引用其他单元格:=COUNTIF(A1:A10,B1)
区分大小写(如不需要区分大小写,需结合EXACT函数)
COUNTIFS函数:按多个条件统计单元格数量。
语法:
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
criteria_range:第一个条件区域。
criteria1:第一个条件
后续可添加多组条件区域和条件(最多127组)
使用示例:
=COUNTIFS(A1:A100,">50",B1:B100,"<100") // 统计A列>50且B列<100的行数
=COUNTIFS(C1:C30,"销售部",D1:D30,">10000") // 统计销售部且业绩>10000的人数
=COUNTIFS(E1:E20,">=1/1/2023",E1:E20,"<=12/31/2023") // 统计2023年的记录数
特点:
所有条件必须同时满足才会被计数。各体哦阿健区域大小必须相同,,同样支持通配符和单元格引用。
自定义范围
在公式选项栏里可以通过名称管理器自定义添加所使用的范围,点击新建后选择范围,并在左上角输入名字后,按enter键即可。
这样在使用公式时可以直接=SUM(金额),不用再框选金额范围。
日期函数
TODAY函数
Today函数是Excel中处理日期的基础函数之一,它能够自动返回当前系统日期,是制作动态日期报表的必备工具。
Today函数能返回当前系统日期(不包含时间)。动态更新:每次打开工作簿或工作表重新计算时自动更新。无参数:不需要任何输入参数。
语法:
=TODAY()
可以通过设置单元格格式更改日期的显示方式。
Today函数高级应用
1.计算天数差
=B2-TODAY() // 计算B2日期与今天相差的天数
2.判断日期状态
=IF(A2<TODAY(),"已过期","有效期内") // 截止日期判断
3.计算年龄
=DATEDIF(B2,TODAY(),"Y")&"岁" // 根据生日计算年龄
DATADIF函数
DATADIF函数可以计算两个日期之间的间隔(天数、月数或年数),特别适合用于年龄计算、服务年限等场景。
语法:
=DATEDIF(start_date, end_date, unit)
start_date:开始日期(较早的日期)
end_date:结束日期(较晚的日期)
unit:计算单位(“Y”、“M”、“D”、“YM”、“YD”、“MD”六种)
单位代码 | 说明 | 示例(2020-01-15到2023-08-20) |
---|---|---|
"Y" | 整年数 | 3年 |
"M" | 整月数 | 43个月 |
"D" | 总天数 | 1313天 |
"YM" | 忽略年的月数差(同一年内计算) | 7个月(8-1) |
"YD" | 忽略年的天数差 | 217天(8月20日-1月15日) |
"MD" | 忽略年月的天数差 | 5天(20-15) |
NETWORKDAYS函数
NETWORKDAYS函数是Excel中用于计算两个日期之间的工作日天数(即排除周末和指定节假日)的专业日期函数,特别适合项目管理、人力资源和财务计算等场景。
核心功能:计算两个日期之间的工作日天数,自动排除周六、周日。可自定义排除额外节假日。
语法:
=NETWORKDAYS(start_date, end_date, [holidays])
start_date:开始日期
end_date:结束日期
[holidays]:可选参数,需要排除的节假日日期范围(可以是单个单元格或日期区域)
NETWORKDAYS.INTL函数:Excel提供了更强大的NETWORKDAYS.INTL函数,可以自定义周末日期。
语法:
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
weekend参数代码
代码 | 周末日期 |
---|---|
1 | 周六、周日(默认) |
2 | 周日、周一 |
11 | 仅周日 |
"0000011" | 自定义(0工作1休息,从周一开始) |
使用示例:
=NETWORKDAYS.INTL(A2,B2,11,D2:D5)
文本处理函数
LEFT函数
从文本字符串的左侧开始提取指定数量的字符。
语法:
=LEFT(text, [num_chars])
text:要提取的文本。
[num_chars]:可选,要提取的字符数(默认为1)。
使用示例:
=LEFT("Excel函数",3) // 返回"Exc"
=LEFT(A2) // 提取A2单元格第一个字符
=LEFT(B2,FIND(" ",B2)-1) // 提取第一个空格前的文字
RIGHT函数
从文本字符串的右侧开始提取指定数量的字符。
=RIGHT(text, [num_chars])
使用示例:
=RIGHT("电话号码",3) // 返回"号码"
=RIGHT(C2,4) // 提取C2最后4个字符
=RIGHT(D2,LEN(D2)-FIND("@",D2)) // 提取邮件域名
MID函数
从文本字符串的指定位置开始提取指定数量的字符。
语法
=MID(text, start_num, num_chars)
text:要提取的文本
start_num:开始位置(第一个字符为1)
num_chars:要提取的字符串
示例:
=MID("Excel函数大全",6,2) // 返回"函数"
=MID(E2,4,3) // 从E2第4字符开始提取3个字符
=MID(F2,FIND("省",F2)+1,99) // 提取"省"字之后的内容
FIND函数
返回一个字符串在另一个字符串中的起始位置(区分大小写)
语法:
=FIND(find_text, within_text, [start_num])
find_text:要查找的文本。
within_text:被查找的文本。
[start_num]:可选,开始查找的文本。
示例:
=FIND("函","Excel函数") // 返回6
=FIND("@",G2) // 查找邮件地址中@位置
=IFERROR(FIND("重要",H2),"无") // 安全查找
LEN函数
返回文本字符串的字符个数(一个汉字记为1个字符)
语法
=LEN(text)
示例:
=LEN("Excel") // 返回5
=LEN("数据函数") // 返回4
=LEN(TRIM(A2)) // 计算去除空格后的长度
FILTER函数
FILTER函数是Excel引入的动态数组函数,它能够基于指定条件从数据区域中筛选并返回符合条件的记录,极大地简化了数据筛选和提取的流程。
核心功能:根据条件实时筛选数据。可组合多个条件进行筛选。结果自动填充到相邻单元格。当源数据变化时结果自动更新。
语法:
=FILTER(array, include, [if_empty])
array:要筛选的数据区域(可以是单列或多列)。
include:布尔表达式(TRUE/FALSE数组,定义哪些行应该被包含)。
[if_empty]:当没有符合条件的数据时返回的值(默认返回#CALC!错误)。
示例:
筛选A2:C10区域中“部门”列等于“销售部”的所有记录
=FILTER(A2:C10, B2:B10="销售部")
查找函数
INDEX函数和MATCH函数
INDEX和MATCH函数是Excel中最强大的查找组合之一,相比VLOOKUP具有更高的灵活性和更低的计算开销。这两个函数组合可以实现双向查找、动态引用等复杂功能。
index函数:返回表格或区域中的特定位置的值。
语法:
=INDEX(array, row_num, [column_num])
array:要查询的单元格区域。
row_num:行号(相对区域的行位置)。
[column_num]:可选,列号(相对区域的列位置)。
使用示例:
=INDEX(A1:C10,3,2) // 返回A1:C10区域第3行第2列的值
=INDEX(B2:F100,5,3) // 返回B2:F100区域第5行第3列的值
MATCH函数: 返回查找值在区域中的相对位置。
语法:
=MATCH(lookup_value, lookup_array, [match_type])
lookup_value:要查找的值。
lookup_array:查找范围(单行或单列)。
[match_type]:0:精确匹配;1:小于(要求升序排序);-1:大于(要求降序排序)。
示例:
=MATCH("北京",A2:A100,0) // 精确查找"北京"在A2:A100中的位置
=MATCH(500,B1:B20,1) // 在升序列中查找小于等于500的最大值位置
INDEX+MATCH组合应用
=INDEX(返回列, MATCH(查找值, 查找列, 0))
与VLOOKUP函数对比
特性 | INDEX+MATCH | VLOOKUP |
---|---|---|
查找方向 | 任意方向 | 仅能从左向右 |
列插入/删除影响 | 无影响 | 需要调整列索引号 |
计算效率 | 更高 | 较低(需处理整个表) |
灵活性 | 可组合复杂条件 | 条件单一 |