查詢掃描進來、格式髒掉的 SKU(TRIM + UPPER)
測試案例
1
2
3
重設
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。
測試案例
1
2
3
重設
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。
題目
題目說明
條碼掃描器寫進來的 SKU 帶前後空白、大小寫也不對,所以 E1 是 sku-103 ,而 A2:C6 的價目表存的是乾淨的大寫鍵。把這個掃描碼的價格填進 Price 儲存格 E2,查不到時顯示 "Not found"。
在公式裡清理掃描碼——不要改 E1,也不要新增輔助欄。
題目資料
用表格檢視整份資料(可選取、可複製)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | SKU | Product | Price | Scanned SKU | sku-103 |
| 2 | SKU-101 | Keyboard | 49 | Price | |
| 3 | SKU-102 | Mouse | 19.5 | ||
| 4 | SKU-103 | Monitor | 24.99 | ||
| 5 | SKU-104 | Dock | 89 | ||
| 6 | SKU-105 | Cable | 12.5 |
觀念解析
TRIM 去掉前後空白、UPPER 統一大小寫,清理後的鍵才對得上表。XLOOKUP 的第四個參數就是「找不到時的回傳值」,不必再包 IFERROR;INDEX + MATCH 則要靠 IFERROR 做到同樣效果。
解題思路
答案寫在 E2。送出時我們會換 3 組輸入重跑你的公式,寫死數字一定過不了 —— 公式必須跟著儲存格走。
- 目標儲存格是 E2
- 先清理查詢鍵:TRIM(UPPER(E1))
- XLOOKUP 的第四個參數是找不到時要回傳什麼
- 公式形狀:=XLOOKUP(?, ?, ?, ?)
官方解法
展開 2 種解法(建議先自己試一次)
解法 1:XLOOKUP 搭配清理後的鍵與預設值
=XLOOKUP(TRIM(UPPER(E1)), A2:A6, C2:C6, "Not found")
TRIM(UPPER(" sku-103 ")) 得到 "SKU-103",對上 A4,於是 XLOOKUP 回傳 C4 的 24.99。查不到時第四個參數回傳 "Not found",而不是 #N/A。
解法 2:INDEX + MATCH 外包 IFERROR
=IFERROR(INDEX(C2:C6, MATCH(TRIM(UPPER(E1)), A2:A6, 0)), "Not found")
同樣先清理:MATCH 找出列、INDEX 取價格,找不到時由 IFERROR 補上預設值——也就是 XLOOKUP 用參數做到的那件事。
函數指南
常見問題
兩個值看起來一樣,查詢卻失敗?
通常是看不見的空白或大小寫:"SKU-103" 與 " sku-103 " 是不同字串。比較前用 TRIM 與 UPPER 清理。
怎麼不要顯示 #N/A,改成友善提示?
XLOOKUP 的第四個參數就是預設值:=XLOOKUP(鍵, 鍵範圍, 值範圍, "Not found")。INDEX + MATCH 則用 IFERROR 包起來。