2006年10月3日 星期二

[EXCEL] 任意鍵值查表法

 
  相關函數INDEX() / MATCH()

  用 VLOOKUP() 來查表是簡單易用的好方法,但是有個缺點,就是用來查詢的鍵值必須在原始資料的第一欄。以前一個例子來說,我們可以用學號來查姓名,但是無法用姓名來查學號,因為鍵值 (姓名) 不是在原始資料 A2:B5 的第一欄。

##CONTINUE##

  如果想用第一欄之外的其他欄位來做鍵值查表,有一個變通的方法,就是利用 INDEX() 和 MATCH() 的組合。

  MATCH() 可以在一個陣列中找出鍵值,並傳回它的位置;INDEX() 可以傳回一個陣列中,特定位置的內容值。我們可以利用 MATCH() 來找出鍵值 (姓名) 所在位置,再用 INDEX() 找出相對應位置的內容值。


  在上表中,E1 可以輸入公式

=INDEX(A2:A5,MATCH(D1,$B$2:$B$5,0),1)

  當 D2 值為「孫三」時,MATCH() 會傳回位置 3 (從 B2 起算第三列) 給 INDEX(),INDEX() 就會傳回 A2 起算第三列的值,也就是 A4 的內容值「 A30303」。

0 意見: