Excel CHOOSE 函數

- 範例 1 - 基本用法:單獨使用 CHOOSE 函數從清單參數中選擇值
- 範例 2 – 根據多個條件傳回不同結果
- 範例 3 – 根據條件傳回不同的計算結果
- 範例 4 – 從清單中隨機選擇
- 範例 5 – 結合 CHOOSE 與 VLOOKUP 函數在最左列中執行返回值
- 範例 6 – 根據指定日期傳回星期幾或月份
- 範例 7 – 根據今天日期傳回下一個工作日/週末日期
說明
CHOOSE 函數會根據指定的索引號碼,從值清單參數中傳回對應的值。例如,CHOOSE(3,”Apple”,”Peach”,”Orange”) 會傳回「橘子」,因為索引號碼 3 對應到該函數中第三個值,也就是「橘子」。
語法與引數
公式語法
| CHOOSE()index_num, value 1, [value 2], …) |
引數
|
Value 1, value 2……可為數字、文字、公式、儲存格參照或已定義的名稱。
返回值
CHOOSE 函數會根據您指定的位置,從清單中傳回對應的值。
用法與範例
本節列出幾個簡單卻具代表性的範例,說明 CHOOSE 函數的用法。
範例 1 - 基本用法:單獨使用 CHOOSE 函數從清單參數中選擇值
公式 1:
=CHOOSE(3,"a","b","c","d")
傳回值:c,即 CHOOSE 函數中 index_num 為 3 時所對應的第三個引數。
注意:若為文字值,請以雙引號括住。
公式 2:
=CHOOSE(2,A1,A2,A3,A4)
傳回值:Kate,即 A2 儲存格的值。由於 index_num 為 2,而 A2 是 CHOOSE 函數中的第二個參數。
公式 3:
=CHOOSE(4,8,9,7,6)
傳回值:6,即函數中第 4 個清單引數。
假設您有一份各項產品的偏差清單,需依照下圖所示條件進行標註。
通常可使用 IF 函數處理,但這裡我將介紹如何輕鬆運用 CHOOSE 函數解決此問題!
公式:
=CHOOSE((B7>0)+(B7>1)+(B7>5),"Top","Middle","Bottom")
說明:
(B7>0)+(B7>1)+(B7>5):index_num,B7 為 2,大於 0 與 1,但小於 5,因此得到中間結果:
=CHOOSE(True+Ture+False,"Top","Middle","Bottom")
眾所周知,True = 1,False = 0,因此此公式可視為:
=CHOOSE(1+1+0,"Top","Middle","Bottom")
然後
=CHOOSE(2,"Top","Middle","Bottom")
結果:中等
假設您需要根據下圖所示的數量與價格計算各項產品的折扣金額:
公式:
=CHOOSE((B8>0)+(B8>100)+(B8>200)+(B8>300),B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
說明:
(B8>0)+(B8>100)+(B8>200)+(B8>300):index_number,B8 為 102,大於 100 但小於 201,因此此部分傳回結果如下:
=CHOOSE(true+true+false+false,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
=CHOOSE(1+1+0+0,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
然後
=CHOOSE(2,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5: 為可供選擇的值,折扣等於價格×數量×折扣百分比,由於此處 index_num 為 2,因此選擇 B8*C8*0.2
傳回結果:102*2*0.2=40.8 
在 Excel 中,當您需要從指定清單中隨機選取一個值時,CHOOSE 函數就能派上用場!
從清單中隨機選擇一個值:
公式:
=CHOOSE(RANDBETWEEN(1,5),$D$2,$D$3,$D$4,$D$5,$D$6)
說明:
RANDBETWEEN(1,5):index_num,隨機取得介於 1 至 5 之間的數字
$D$2、$D$3、$D$4、$D$5、$D$6: 為可供選擇的值清單
範例 5 – 結合 CHOOSE 與 VLOOKUP 函數在最左列中執行返回值
一般而言,我們使用 VLOOKUP 函數 =VLOOKUP (value, table, col_index, [range_lookup]),根據表格範圍中的指定值傳回對應資料。然而,當使用 VLOOKUP 函數時,若要傳回的欄位位於查詢值的左側,將會產生錯誤值,如下圖所示:
在此情況下,您可結合 CHOOSE 函數與 VLOOKUP 函數,輕鬆解決此問題!公式:=VLOOKUP(E1,CHOOSE({1,2},B1:B7,A1:A7),2,FALSE) 說明:CHOOSE({1,2},B1:B7,A1:A7): 作為 VLOOKUP 函數中的 table_array 參數。{1,2} 表示根據 VLOOKUP 的 col_index_num 參數,將 1 或 2 作為 CHOOSE 函數的 index_num。由於此處 VLOOKUP 的 col_index_num 為 2,因此 CHOOSE 函數實際運算為 CHOOSE(2, B1:B7,A1:A7),即從 A1:A7 中選擇值。
範例 6 – 根據指定日期傳回星期幾或月份 透過 CHOOSE 函數,您還能根據指定日期,輕鬆取得對應的星期幾與月份!公式 1: 根據日期傳回星期幾 =CHOOSE(WEEKDAY(),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")說明:WEEKDAY():作為 index_num 參數,用來取得指定日期對應的星期數;例如 WEEKDAY(A5) 傳回 6,此時 index_num 即為 6. "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday":為 value_list 參數,請從「星期日」開始,因為在 WEEKDAY 函數中,「1」代表「星期日」。公式 2: 根據日期傳回月份 =CHOOSE(MONTH(),"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")說明:MONTH():作為 index_num 參數,用來從指定日期提取月份數字,例如 MONTH(A5) 會傳回 3.
範例 7 – 根據今天日期傳回下一個工作日/週末日期 在日常工作中,您可能需要根據今日日期計算下一個工作日或週末。CHOOSE 函數也能助您一臂之力!例如,今天是 2018/12/20(星期四),現在您需要取得下一個工作日與週末。公式 1: 取得今天的日期 =TODAY()結果:2018/12/20 公式 2: 取得今天的星期數 =WEEKDAY(TODAY())結果:5(今日為 2018/12/20)星期數對照如下圖所示:
範例檔案
最佳 Office 生產力工具
Kutools for Excel-助您脫穎而出
| 🤖 | KUTOOLS AI 助手:根據以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 超級 VLookup:多重條件 | 多重值 | 跨多個工作表 | 模糊查找…… | |
| 進階下拉列表:簡易下拉式清單 | 相依性下拉式清單 | 多重選擇下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位 | 移動欄位 | 切換隱藏欄位的可見狀態 |比較欄位以選擇相同/不同單元格…… | |
| 精選功能:網格聚焦 | 設計視圖 | 增強編輯欄 | 工作簿與工作表管理員|資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單寄送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符……)| 50+ 圖表 類型(甘特圖……)| 40+ 實用公式(基於生日計算年齡……)| 19 插入工具(插入二維碼,從路徑插入圖片……)| 12 轉換工具(金額轉大寫,匯率轉換……)| 7 合併和拆分工具(高級合併行,拆分 Excel 儲存格……)|……還有更多 |
Kutools for Excel 擁有超過 300 項功能,確保您所需的功能觸手可及……
Office Tab-在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯功能
- 一秒內在數十份開啟的文件間快速切換!
- 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
- 當您同時檢視與編輯多份文件時,生產力提升 50%。
- 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。