一、案例定位

重建原書 Figure 7-29~7-33 的 region abbreviation mapping,比較 VLOOKUP 與 XLOOKUP 的 robustness。

二、學習目標

三、案例情境

原書要把 region names 映射成 abbreviations,例如 North East → N/E。VLOOKUP 從 mapping table F:G 取回 abbreviation;XLOOKUP 則直接指定 lookup array 與 return array。

四、開始資料

方法 原書公式 原書結果
VLOOKUP =VLOOKUP(B2,$F$2:$G$5,2,0) N/E
XLOOKUP =XLOOKUP(B2,$F$2:$F$5,$G$2:$G$5,"n/a") N/E
Mapping update N/E → NE Linked report 自動更新為 NE

五、Excel/VBA 分析方法

VLOOKUP 要求 unique lookup field 位於 table 最左欄,exact match 應使用最後參數 0/FALSE。XLOOKUP 分別指定 lookup array 與 return array,不依賴 hard-coded column index number。

六、計算結果

結構變更 VLOOKUP XLOOKUP
在 F 與 G 之間插入新欄 原本 column index 2 可能指到錯欄/公式失效 Separate arrays 會隨引用調整,原書示例不會因此 break
Mapping N/E 改成 NE Linked output 更新 Linked output 更新

七、結果分析與管理解讀

Lookup function 的選擇不只看「現在算得對不對」,還要看未來 table structure 改變時是否容易壞。原書因此把 XLOOKUP 視為比 VLOOKUP/HLOOKUP 更 robust 的選擇,但仍保留舊函數教學以考慮版本相容性。

八、AI Prompt

請根據 VLOOKUP column index = 2 與 XLOOKUP separate arrays 的差異,解釋為什麼插入一個新 column 可能讓 VLOOKUP 變脆弱,以及 exact match 為什麼應明確用 0/FALSE。

九、思考/What-if

**問題:**若 VLOOKUP 最後一個 Range_lookup 參數留白,原書警告可能發生什麼?