(20180807補充,應該解釋得更明暸了,整體內容不變。重看一次,發現自己表達得超不清楚。。。是做完記者之後看不起以前的表達能力還是怎的?。。。)
不知道有沒有跟某君一樣,一直被[Vlookup]、[Hlookup]、[Index]、[Match]這幾個功能弄得很頭暈
[Vlookup]使用率頗高,用得多自然不成問題
但其它的要在什麼情況下使用?
簡單來說,以上的功能都是幫忙查找資料的函數,那有什麼差別呢?
先祭出公式:
=VLOOKUP(尋找的值lookup_value, 資料範圍table_array, 欄數col_index_num, [符合程度range_lookup])
=HLOOKUP(尋找的值lookup_value, 資料範圍table_array, 列數row_index_num, [符合程度range_lookup])
=MATCH(尋找的值lookup_value, 資料範圍lookup_array, [符合程度match_type])
=INDEX(資料範圍 array, 列數 row_num, [欄數 column_num])
只看公式覺得很混亂的話,下圖幫到你
假設我想得到綠色框選的答案"金繕"(d在星期五上什麼課程),
這時就需要考慮到你的已知條件是什麼,如果你早已知"Fri"是在第6欄而不知"d"在第n列的話,那就可以用[Vlookup]:
- Vlookup是 要在黃底部分(為直排,Vertical)查找。即我想獲取第6欄"d"所在列的資料,得出答案"金繕"。
=VLOOKUP("d",D4:K11(紫色框選部分),6,FALSE(False為查找目標須完全一致))
相反,假如你早已知"d"的學號是4(即第5列),而不知在第n欄的話,那就可以用[Hlookup]:
- Hlookup是 要在紅底部分(為橫排,Horizontal)查找。即我想獲取第5列"Fri"所在欄的資料,得出答案"金繕"
=HLOOKUP("Fri",D4:K11(紫色框選部分),5,FALSE(False為查找目標須完全一致))
再如果你對整個表格一無所知,只知"d"的名字和"Fri"的串法,那很好,可以用[Index-Match]組合:
- Index-Match是 先用Match獲得"d"及"Fri"的列和欄,再用Index找出相應欄列的資料,得出答案"金繕"。
step 1 找出列數 =MATCH("d",D4:D11黃底部分,0(完全一致))
step 2 找出欄數 =MATCH("Fri",D4:K4紅底部分,0(完全一致))
step 3 結合欄列 =INDEX(D4:K11(紫色框選部分),(列數),(欄數))
全式: =INDEX(D4:K11,MATCH("d",D4:D11,0),MATCH("Fri",D4:K4,0))
總結:因為欄和列可能會改變,所以如果條件允許,用Index-Match最為保險。
文章標籤
全站熱搜

你好,非常感謝你的分享,獲益良多,但是我想請問如果我要抓的資料是在另一張工作表,所以是用你的INDEX工式,設在我要回傳值的欄位。 按照你的STEP,1&2是我的總表,3是選擇我要比對的另一張工作表,請問這樣對嗎? 我的總表與資料範圍是兩張不同的表格。若能得到您的回覆,非常感謝。
沒錯的,如果你的資料在另一張工作表,公式大概會變成: =VLOOKUP(總表中的其中一個儲存格,資料範圍,相應欄數,FALSE) 這樣。
請問, 我想找( 星期五有什麼人上拉丁舞課程), 應該如何打?
據我所知,vlookup與hlookup均是以資料範圍的第一欄(/列)為搜尋目標的,如果你要反過來的話,建議使用篩選功能或樞紐分析表哦~ (除非你願意把表格大修改^^) 按照你的題目:星期五有什麼人上拉丁舞課程,答案是可以多於一個的,這種情況下用vlookup等是不太合適的,因為它只會返回一個值。 [篩選功能與樞紐分析表的選擇] 如果你是選擇快速查詢的話建議使用前者,簡單快捷。 如果你需要輸出結果(製作報告等)的話,樞紐分析表可以輸出各種各樣的結果並方便保存。