Excel 查找函數

一. 查找函數

1. vlookup函數

vlookup(lookup_value,table_array,col_index_num,[range_lookup])

  • lookup_value表示要查找的對象
  • table_array表示查找的表格區域
  • col_index_num表示要查找的數據在table_array區域中處於第幾列的列號
  • range_lookup表示查找類型,其中1表示近似匹配,0表示精確匹配,一般我們用精確匹配的情況較多

A1:B7表示要在其中查找的區間,也就是公式中的table_array
D1到D4中表示我們要查找的對象,也就是公式中的lookup_value
現在我們要查找D1到D4分別對應的數值。
在這裏插入圖片描述
點擊公式菜單欄——查找與引用——vlookup
在出現的vlookup界面中第一欄選中D1
第二欄選中A1:D7
第三欄輸入2(表示引用的是A1:D7區域的第2列)
第四欄輸入0(精確匹配)
在這裏插入圖片描述
在這裏插入圖片描述
與lookup和hlookup的區別:
在這裏插入圖片描述
HLOOKUP函數和VLOOKUP函數的差異是查詢的方向不一樣。
VLOOKUP函數是按列方向(向右)查找,HLOOKUP函數是按行方向(向下)查找。

2. match和index

MATCH(lookup-value,lookup-array,match-type) (返回指定內容所在的位置)

  • lookup-value:表示要在區域或數組中查找的值,可以是直接輸入的數組或單元格引用
  • lookup-array:表示可能包含所要查找的數值的連續單元格區域,應爲數組或數組引用
  • match-type:表示查找方式,用於指定精確查找(查找區域無序排列)或模糊查找(查找區域升序排列)。取值爲-1、1、0 。其中0爲精確查找
    在這裏插入圖片描述
    INDEX(array,row-num,column-num) (返回制定位置中的內容)
  • array:要返回值的單元格區域或數組
  • row-num:返回值所在的行號
  • column-num:返回值所在的列號
    在這裏插入圖片描述
    用match和index函數實現vlookup功能
    選擇G7單元格,在單元格中輸入:=INDEX(B2:B13,MATCH(F7,A2:A13,0)),用MATCH函數返回F7單元格中的之所對應的行,再利用ATCH函數返回的行號用INDEX函數查詢出月份對應的金額。
    在這裏插入圖片描述

3. 雙條件查找

3.1 vlookup函數。

如下圖所示,根據班級和姓名該如何查找成績呢?先放公式:在這裏插入圖片描述
此公式爲數組函數,輸完公式後按下ctrl+shift+enter鍵計算結果。這個公式咋一看看挺長,不過不要擔心,現在就爲你詳細地解釋這個公式到底是什麼意思。
在這裏插入圖片描述
在這裏插入圖片描述

3.2 index—match函數

如果實現與上面vlookup函數同樣的查找結果運用index—match函數的公式爲
在這裏插入圖片描述
在這裏插入圖片描述

二. 作業

1. 用vlookup函數 查找以下公司的 companyId

| companyFullName | |:----| | 上海雲貝網絡科技有限公司 | | 攜程計算機技術(上海)有限公司 | | 浙江康健綠線網絡技術有限公司 | | 久億財富(北京)投資有限公司 | | 杭州木瓜科技有限公司 | | 思特沃克軟件技術(成都)有限公司 | | 北京金山雲網絡技術有限公司 |
在這裏插入圖片描述

2. 用match和index函數實現第一題的功能

在這裏插入圖片描述

3. 用match和index函數查找以下id對應的公司名稱

注意id是橫向排列的| companyId | 127200 | 151079 | 22225 | |----|----|----|----|
在這裏插入圖片描述

4. 根據companyId和postionId兩個條件查找對應的工資水平

| companyId | positionId | salary |
| 62 | 938038 |
| 1575 | 1157620 |
| 157392 | 2574696 |
在這裏插入圖片描述
注意:在輸入公式後,不是按Enter,而是按Ctrl+Shift+Enter。CTRL+SHIFT+ENTER在Excel中是用於計算數組公式使用的。數組公式運用前是要以數組的形式嵌入公式,要選定數組區間,這樣才能執行數組計算,得出的結果纔是正確的。(不要自己在兩邊輸入{},否則Excel認爲輸入的是一個正文標籤。)

請思考,是否會存在相同的公司id和職位di對應多種工資水平,如果有請查找出來。 並思考,如果存在多種的情況,目前的公式還能不能用?
在這裏插入圖片描述 很明顯是存在的,目前的公式還能用,但是隻返回查找到的第一個值,假如第一行salary是2k-4k,則最終返回結果就是2k-4k。