身為 資料分析與決策社 (NTU Data Analytics Club) 的課程長,感覺不寫點課後重點整理有點失職(搔頭)第一堂社課有請 MasterCard 的顧問 Edward 來教 Excel (可以去他的 Medium 朝聖一下~ )
這篇整理 Excel 好用的工具:
(函式) VLOOKUP / MATCH / INDIRECT
VLOOKUP
手上的資料是近五百個平台和各自的成交量等相關資料:
若想快速知道其中三個平台的成交量,我們可以用VLOOKUP:
=VLOOKUP (value, table, col_index, [range_lookup])
value: 平台名稱
table: 搜尋範圍 /*記得value(平台名稱)要是搜尋範圍的第一欄!*/
col_index: 要找的値在搜尋範圍裡是第幾欄
range_lookup: TRUE = approximate match (default). FALSE = exact match.
以上圖為例,想找 `愛錢進` 的成交量就 = VLOOKUP (“愛錢進”, $C$1:$E$5, 2, FALSE) 其中,`2` 是因為 “成交量” 是COLUMN TITLE(平臺、成交量(萬元)、平均預期收益率(%))裡的第2個~
MATCH
回傳要找的値是給定array裡的第幾個
MATCH (lookup_value, lookup_array, [match_type])
其中 match_type 可以參考官方 Document:
所以像上面我們想知道 “成交量” 是COLUMN TITLE 裡的第幾個,就 = MATCH(“成交量”,$C$1:$E$1,0) 它會回傳2喔~
INDIRECT
Return給定位置所存的値
INDIRECT(“A1”) = “b1” /* 把A1的値取出來 */
INDIRECT(“B1”) = “2019” /* 把B1的値取出來 */
INDIRECT(A1) = INDIRECT(“B1”) = “2019”
最後一個例子中,A1會回傳“B1”,“B1”再餵給 INDIRECT,所以就會抓到B1位置所存的値
上課練習資料裡,2019、2020、2021是三張工作表的名稱,我們要抓出這三年前十筆的成交量(皆存在第C欄)就可以打 INDIRECT(A1&”!C1:C10”)
拆解步驟:INDIRECT(A1&”!C1:C10” )= INDIRECT(“2019”&”!C1:C10”) =INDIRECT(“2019!C1:C10”) 請把工作表 2019 中 C1:C10 的値都取出來
Excel比想像中的強太多了,以後如果是Excel可以解決的,就別寫程式了吧 (握拳