有個任務是,在過去這兩年內,每個病房的病程紀錄是否有達到評鑑要求的次數。
在一份上萬筆的資料中,有多筆重複的「病歷號」,搭配同列中的「病床號」,因為一個病床可能有不同的病歷號住過,在移除重複的病歷號後,要反查病床號。

有想過用的function包括 FIND、LOOKUP、IF、SEARCH、MATCH,後來是用INDEX+MATCH解決了,後來發現VLOOKUP也可以用,紀錄一下,以後可能還會用到。
VLOOKUP是回傳:範圍裡與指定字串同列的指定欄號中數值,函式是
=VLOOKUP(想要查閱的值, 想要查閱值的範圍, 範圍中包含傳回值的欄號, 完全符合或大約符合 (以 0/FALSE 或 1/TRUE 指示))

INDEX是得到特定表格或範圍內的某個值。
=INDEX(array, row_num, [column_num])
要得到與特定值相符的欄位位置,就要搭配MATCH。
MATCH是搜尋指定範圍中的指定項目,並傳回該項目於該範圍中的相對位置。
=MATCH(lookup_value, lookup_array, [match_type])
在這裡寫成
=MATCH(H2, A2:A5, 0)
(最後的這個match type輸入0,代表要「完全相符」)
這樣會輸出1(第一個找到的話)
再加上INDEX
=INDEX(A2:E5, MATCH(H2, A2:A5, 0), 4)
(最後一個4是代表指定範圍中的第4欄)

沒有留言:
張貼留言