视频链接
一、Vlookup函数
1.Vlookup函数语法
语法
=VLOOKUP(lookup_value, table_array, col_index_num, )
lookup_value:要查找的值,可以是一个单元格引用或直接输入的值。
table_array:查找的表格区域(第一列必须包含查找值)。
col_index_num:查找值所在行对应的返回值列数(以 table_array 的第一列为基准,从 1 开始计数)。
range_lookup:可选参数,控制匹配方式:
TRUE 或省略:近似匹配(表格第一列必须按升序排序)。
FALSE:精确匹配。
功能
按列查找数据。
支持返回多列数据中的对应值。
可用于近似和精确匹配。
示例
示例数据
示例 1:精确匹配
问题:根据学号查找学生姓名。
公式:
=VLOOKUP(102, A2:D5, 2, FALSE)
结果:
lookup_value:102(要查找的学号)。
table_array:A2:D5(查找区域)。
col_index_num:2(返回第 2 列的值,即姓名)。
range_lookup:FALSE(精确匹配)。
返回值为 李四。
示例 2:近似匹配
问题:根据分数查找分数等级(按分数区间)。
公式:
=VLOOKUP(85, A2:B5, 2, TRUE)
结果:
lookup_value:85(要查找的分数)。
table_array:A2:B5(查找区域)。
col_index_num:2(返回第 2 列的值,即等级)。
range_lookup:TRUE(近似匹配,表格需按升序排序)。
返回值为 B。
示例 3:动态查找
问题:通过单元格引用查找学生成绩。
公式:
=VLOOKUP(E2, A2:D5, 4, FALSE)
假设单元格 E2 的值为 103,公式会返回 76。
示例 4:查找不存在的值
问题:如果查找的值不存在,VLOOKUP 返回 #N/A。
处理方式:
=IFERROR(VLOOKUP(105, A2:D5, 2, FALSE), "未找到")
如果查找值 105 不存在,返回 未找到。
基础演示
=VLOOKUP(G6,$B$6:$E$10,4,0)
注意:
1.选定区域注意要使用绝对引用,固定住查找范围;如果是选中整列,就不用做绝对引用了;同时选定区域的起始列必须和待匹配数据的起始列保持一致
2.vlookup第四个参数一般为0,表示精确匹配,1代表模糊匹配
3.vlookup查找必须保证不重复,如果重复的话只能找到重复数据的第一个,找完就停下,不会再向下找
跨表匹配
=VLOOKUP(A2,数据源!A:B,2,0)
如何理解感叹号的作用?
①指定工作表范围
如果公式涉及跨表引用,感叹号是必须的。例如:
=VLOOKUP(A2, Sheet2!A:B, 2, FALSE)
Sheet2!A:B 指代 Sheet2 工作表的 A 列和 B 列。
如果省略 Sheet2!,Excel 会默认查找当前工作表中的范围。
②工作表名称包含空格或特殊字符时
如果工作表名称有空格或特殊字符,需要用单引号将其括起来。例如:
=VLOOKUP(A2, '我的表2'!A:B, 2, FALSE)
这里的单引号确保 Excel 能正确识别 我的表2 是工作表名,而不是其他内容。
注意不要把数据源弄错
2.vlookup中使用通配符
当我们查找值中有缩写,使用通配符进行匹配
&"*"
无通配符时
=VLOOKUP(A2,数据源!B:E,4,0)
有通配符时
=VLOOKUP(A2&"*",数据源!B:E,4,0)
3.vlookup模糊查找
我们做个模糊查找的演示,用年龄来匹配男女生,男士24岁按照模糊查找规则,只能匹配比自己小且最接近的,所以是22岁女士
示例:算提成比例
注意:
1.模糊匹配:只会找小于等于自己的最大值
2.模糊匹配在使用时需要按从小到大排序,比如“等级划分”
3.一般在找数值区间划分时用模糊匹配,绝大多数用精确匹配
4.使用isna函数处理数字格式引起的错误
语法:
=ISNA(value)
value:是要检查的值或单元格引用。如果这个值是 #N/A 错误,则函数返回 TRUE;如果不是 #N/A 错误,则返回 FALSE。
举例说明:
①基本用法: 假设你在单元格 A1 中有一个公式,可能返回 #N/A 错误:
=ISNA(VLOOKUP("not_found", A2:B10, 2, FALSE))
如果 VLOOKUP 没有找到匹配的值,它会返回 #N/A 错误。ISNA 会检查该错误,若为 #N/A 错误,返回 TRUE,否则返回 FALSE。
②常见应用场景: ISNA 函数通常与 VLOOKUP、MATCH 等函数结合使用,处理 #N/A 错误,以便自定义错误提示或执行其他操作。例如,结合 IF 函数:
=IF(ISNA(VLOOKUP("item", A2:B10, 2, FALSE)), "未找到", "已找到")
在此公式中,若 VLOOKUP 返回 #N/A 错误(即未找到对应的 "item"),ISNA 会返回 TRUE,IF 函数会返回 "未找到",否则返回 "已找到"。
查找值需要与被查的范围的第一列格式相同
数值如何变成文本?
数值只能加减乘除,不能左右相连,但是数值连接空双引号""可以变成文本
文本如何变成数值?
文本只能左右相连,不能加减乘除,但是文本乘1可以变成数值
待匹配内容和原内容既有文本,又有数值,怎么办?
用isna函数:即先将所有待匹配内容当成数值找一遍,对于出现NA错误的,就把它再当成文本找一遍
查找范围(数据表)第一列为文本,把查找值变为文本&""
查找值为文本,把查找值变为数值*1、+0、--。
两种情况都存在
=IF(ISNA(VLOOKUP(F4&"",$A$18:$C$22,3,0)),VLOOKUP(F4*1,$A$9:$C$14,3,0),VLOOKUP(F4&"",$A$2:$C$6,3,0))
一句话概括:先判断是否为文本数据,不是返回True,if填入数值数据,是就返回False,if填入文本数据
1. F4&"" 和 F4*1
F4&"":这个操作是将 F4 单元格的内容转化为文本(即强制将值转为字符串)。例如,如果 F4 中是数字 123,F4&"" 将会变为字符串 "123"。
F4*1:这是将 F4 中的值转化为数字的操作。如果 F4 中是文本形式的数字,F4*1 会将其转换为数值型。例如,如果 F4 中是 "123"(字符串),F4*1 会转换为 123(数字)。
2. VLOOKUP(F4&"",$A$18:$C$22,3,0)
这是一个 VLOOKUP 查找函数,它会在 $A$18:$C$22 范围内查找 F4&""(即 F4 转换为文本的值)。
F4&"":作为查找值(字符串)。
$A$18:$C$22:查找的表格范围(A列是查找列,C列是返回值列)。
3:表示返回 第3列(即 C 列)中的值。
0:表示精确匹配。
3. ISNA
ISNA(VLOOKUP(...)) 用来检查 VLOOKUP 函数的结果是否为 #N/A 错误。如果 VLOOKUP 没有找到匹配的项,它会返回 #N/A 错误,ISNA 会返回 TRUE,否则返回 FALSE。
4. IF 逻辑
IF(ISNA(...), ..., ...):如果 VLOOKUP(F4&"", $A$18:$C$22, 3, 0) 返回 #N/A 错误(即在范围 $A$18:$C$22 中没有找到 F4 的值),则执行 VLOOKUP(F4*1, $A$9:$C$14, 3, 0),即根据 F4 转换为数字后,在另一个范围 $A$9:$C$14 中查找。
如果 VLOOKUP(F4&"", $A$18:$C$22, 3, 0) 没有返回 #N/A 错误(即找到了匹配的项),则直接执行 VLOOKUP(F4&"", $A$2:$C$6, 3, 0),即根据 F4 转换为文本后,在范围 $A$2:$C$6 中查找。
公式流程:
第一步: 尝试在范围 $A$18:$C$22 中查找 F4(转为文本)。如果找到匹配的值,则返回该行的第三列(C列)的值。
第二步: 如果第一步没有找到匹配项(即返回 #N/A 错误),则尝试根据 F4 转换为数字的值,在范围 $A$9:$C$14 中查找。
第三步: 如果在第二步中仍然没有找到匹配项,则尝试在范围 $A$2:$C$6 中根据 F4(转为文本)查找。
总结:直接统一格式就好
5.Hlookup函数(相当与vlookup数据表转置)
语法:
HLOOKUP(lookup_value, table_array, row_index_num, )
参数说明:
lookup_value:要查找的值。这可以是数字、文本、日期或对该值的引用。
table_array:包含数据的表格区域。此区域的第一行应包含查找值,并且数据需要排列成水平行。
row_index_num:要返回结果的行号。注意,row_index_num 是相对于 table_array 的行号(从第一行开始计数),而不是整个工作表的行号。例如,row_index_num = 2 表示返回第二行的数据。
(可选):指定是否进行近似匹配。
TRUE 或省略:执行近似匹配。如果找不到精确值,则返回小于 lookup_value 的最大值。
FALSE:执行精确匹配。如果没有找到完全匹配的值,则返回 #N/A 错误。
示例:
假设在 Excel 表格中,数据如下:
我们要查找 "李四" 对应的 "分数":
=HLOOKUP("分数", A1:D3, 2, FALSE)
解释:
lookup_value 是 "分数"。
table_array 是 A1:D3(包括 "名称"、"分数"、"年龄")。
row_index_num 是 2,表示我们要返回第二行的值,也就是 "分数" 所在行。
FALSE 表示我们要求精确匹配 "分数"。
这个公式将返回 92,即李四的分数。
=HLOOKUP(B14,$B$1:$V$3,3,0)
二、个人所得税计算
应交个人所得税=(工资-个人交五险一金金额-个人所得税扣除额)×适用税率-速算扣除数。
=IF(F8 >3500,(F8 - $B$5)*VLOOKUP(F8 - $B$5, $A$6:$DS13,3,1)-VLOOKUP(F8 - $B$5, $A$6:$D$13,4,1),0)
2024年的相关信息:
起征点金额:每月5000元人民币(年收入即为60000元,即年收入达到6万元的,可适用于专项附加扣除)。
意味着当个人每月收益在1至5000元区间内(包含5000元)时,无需缴纳个人所得税。