WEEKDAY 算出來的星期是 1、2、3,我想看到的是「週一」「週二」「週三」。這種「數字對應到一組固定選項」的事,CHOOSE 一行就能解決。
網路教學或舊檔案裡,你可能看過 CHOOSE({1,2}, ...) 這種換欄寫法。這個寫法在 Google 試算表只回傳第一列,後半篇會拆解這個陷阱,再用 CHOOSECOLS 和 XLOOKUP 完成查找。
手動轉有多麻煩
我手上有三筆訂單日期,想在旁邊標上星期幾:
| A | B | |
|---|---|---|
| 1 | 日期 | 星期 |
| 2 | 2026/03/05 | |
| 3 | 2026/03/09 | |
| 4 | 2026/03/12 |
WEEKDAY(A2, 2) 可以把日期變成 1 到 7 的數字,1 是週一、7 是週日(第二個參數 2 就是這個意思)。三筆算出來是 4、1、4。
但是看數字還要自己在腦中換算,有點太麻煩了吧!這時候就可以把 CHOOSE 派上場。
CHOOSE
CHOOSE 會依照你給的索引數字,從後面的選項裡挑出第幾個。
語法
- 索引:要挑第幾個,從 1 開始。可以是數字,也可以是會算出數字的公式。
- 選項1、選項2⋯⋯:候選的值,可以是文字、數字、儲存格,也可以是整個範圍。
範例
把星期數字轉成名稱,如果要用 CHOOSE 寫,就是:
WEEKDAY 的第二個參數 2:週一是 1,週日是 7
=CHOOSE(WEEKDAY(A2, 2), "週一", "週二", "週三", "週四", "週五", "週六", "週日")- 索引:
WEEKDAY(A2, 2),2026/03/05 算出來是 4。 - 選項:七個文字,第 4 個是「週四」。
來看看結果,往下填三列:
| A | B | |
|---|---|---|
| 1 | 日期 | 星期 |
| 2 | 2026/03/05 | 週四 |
| 3 | 2026/03/09 | 週一 |
| 4 | 2026/03/12 | 週四 |
選項的順序就是對應的順序,打錯一個,後面全部會錯位,這點要留意。
索引超出選項的個數,或是 0、負數,會得到錯誤值 #NUM!。例如只給七個選項,卻挑第 8 個。
算季度
月份轉季度,也是同樣的想法。月份是 8,ROUNDUP(8/3, 0) 是 3,挑第 3 個:
月份除以 3 無條件進位,得到第幾季
=CHOOSE(ROUNDUP(8/3, 0), "第一季", "第二季", "第三季", "第四季")結果是「第三季」。
選項也可以是範圍
選項不只能放文字,也可以放範圍,這樣就能用一個數字決定「要加總哪一欄」。兩間分店的杯數放在 B 欄和 C 欄:
| A | B | C | |
|---|---|---|---|
| 1 | 品項 | 台北店 | 台中店 |
| 2 | 蘋果紅茶 | 37 | 29 |
| 3 | 蘋果綠茶 | 8 | 14 |
| 4 | 青茶 | 21 | 12 |
索引 2 挑出台中店那一欄再加總
=SUM(CHOOSE(2, B2:B4, C2:C4))37 + 8 + 21 = 66 是台北店,29 + 14 + 12 = 55 是台中店,索引 2 的結果是 55。把 2 換成儲存格,例如搭配下拉選單,就能切換要看哪間分店。
什麼時候不用 CHOOSE
CHOOSE 只認「第幾個」,所以索引一定得是 1、2、3 這樣的連續數字。要比對的是文字代碼,我會改用 SWITCH 或 IFS,或是乾脆做一張對照表再查,比較看得懂。這部分在 會員分級與代碼對照 有比較。
換欄陷阱:CHOOSE 不會展開這份完整範圍
VLOOKUP 只能往右查,要找的欄位一定得在查找欄的右邊。網路上有用 CHOOSE 交換兩欄順序的寫法,這是 Excel 的經典技巧,在 Excel 裡 CHOOSE({2,1}, …) 可以展開成兩欄,所以從 Excel 搬來的舊檔案常看到它。但這個寫法在 Google 試算表不能直接照用,不能假設它會產生完整查找表。
用這張菜單,A 欄是編號、B 欄是品名:
| A | B | |
|---|---|---|
| 1 | 編號 | 品名 |
| 2 | T-17 | 蘋果紅茶 |
| 3 | T-04 | 烏龍奶茶 |
| 4 | T-32 | 蘋果綠茶 |
| 5 | T-09 | 青茶 |
| 6 | T-25 | 桂花烏龍 |
我想用品名查編號,但品名在編號的右邊。舊檔案裡會看到:
陷阱示範:這條 CHOOSE 寫法在本例只留下第一列,查烏龍奶茶會失敗
=VLOOKUP("烏龍奶茶", ARRAYFORMULA(CHOOSE({2, 1}, A2:A6, B2:B6)), 2, FALSE)這條公式想用 {2,1} 先挑 B2:B6,再挑 A2:A6,組成「品名、編號」兩欄。但在這份 Google 試算表樣本中,把內層 單獨放到空白區,實際只得到一列兩欄(下表的表頭是說明用,函式本身不會輸出表頭):
| 品名 | 編號 |
|---|---|
| 蘋果紅茶 | T-17 |
其餘四列沒有展開,所以外層 VLOOKUP 查「烏龍奶茶」會得到 #N/A,不會得到 T-04。加上 ARRAYFORMULA 也無法讓這個寫法變成完整的五列資料。遇到這種公式,先檢查內層的輸出範圍。
現在的寫法
Sheets 有了 CHOOSECOLS,可以直接從範圍裡挑出欄位,順序自己排。細節在 VSTACK、HSTACK、CHOOSEROWS、CHOOSECOLS。
CHOOSECOLS 把 A2:B6 的欄位順序換成第 2 欄、第 1 欄
=VLOOKUP("烏龍奶茶", CHOOSECOLS(A2:B6, 2, 1), 2, FALSE)這次會得到 T-04。CHOOSECOLS(A2:B6, 2, 1) 會保留完整五列,再把第 2 欄與第 1 欄依序排出來,不需要 ARRAYFORMULA。
如果只是要往左查,我現在會直接用 XLOOKUP:
查找範圍與結果範圍可以任意放左右
=XLOOKUP("烏龍奶茶", B2:B6, A2:A6)結果也是 T-04。用法在 XLOOKUP 入門。
CHOOSE 很適合前面「索引數字挑一個選項」的需求。要重排完整欄位或往左查,這份資料用 CHOOSECOLS 與 XLOOKUP 都能保留全部五列;別把陣列索引換欄的寫法直接當成 Sheets 的通用技巧。
練習
標示週末
A2:A4 是三個日期:2026/03/09、2026/03/14、2026/03/15。請用 CHOOSE 在 B2 寫出公式,週一到週五顯示「平日」,週六、週日顯示「週末」,往下填到 B4。提示:WEEKDAY 的第二個參數用 2。
三個日期分別是週一、週六、週日,所以 B2:B4 是「平日」「週末」「週末」。
下次遇到「數字對應到固定名稱」的欄位,先想想 CHOOSE 能不能一行搞定吧!
接下來可以
相關文章
查看所有文章VSTACK、HSTACK、CHOOSEROWS、CHOOSECOLS:疊表格與挑欄列
把兩張表上下疊起來的 VSTACK、左右併起來的 HSTACK,以及只留下指定列或欄的 CHOOSEROWS、CHOOSECOLS。附語法、負數索引與欄數不一致時的結果,最後用兩間分店的銷量表串起四個函式。
會員分級與代碼對照:IFS、SWITCH 還是查表?
用一份會員消費資料,示範 IFS 做會員分級、SWITCH 把付款代碼轉成中文,並說明門市代碼變多、門檻會調整的時候,為什麼改成對照表加 XLOOKUP 比較好維護。
XLOOKUP 入門:用品名查價格,也對照 VLOOKUP
XLOOKUP 的三個必填參數、找不到時自訂顯示的內容,以及可以往左查的寫法,最後和 VLOOKUP 的寫法逐項對照。
留言討論
共 0 則留言
