視頻鏈接
一、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元)時,無需繳納個人所得稅。