KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

Excel CHOOSE 函數

作者修改日期
doc choose function 1

說明

語法與引數

用法與範例


說明

CHOOSE 函數會根據指定的索引號碼,從值清單參數中傳回對應的值。例如,CHOOSE(3,”Apple”,”Peach”,”Orange”) 會傳回「橘子」,因為索引號碼 3 對應到該函數中第三個值,也就是「橘子」。

語法與引數

公式語法

CHOOSE()index_num, value 1, [value 2], …)

引數

  • Index_num: 必填。請輸入介於 1 至 254 之間的數值,用以指定要選取哪一個參數值。若 index_num 超出此範圍,CHOOSE 將傳回 #VALUE! 錯誤值;若為小數,則會在公式運算前自動向下取整為整數。
  • Value 1: 必填。公式中可選的第一個值。
  • Value 2: 選填。第二個至第 254 個可選值。

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 個清單引數。
doc choose function 2


範例 2 – 根據多個條件傳回不同結果

假設您有一份各項產品的偏差清單,需依照下圖所示條件進行標註。
doc choose function 3

通常可使用 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")

結果:中等
doc choose function 4


範例 3 – 根據條件傳回不同的計算結果

假設您需要根據下圖所示的數量與價格計算各項產品的折扣金額:
doc choose function 5

公式:

=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
doc choose function 6


範例 4 – 從清單中隨機選擇

在 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: 為可供選擇的值清單
doc choose function 7


範例 5 – 結合 CHOOSEVLOOKUP 函數在最左列中執行返回值

一般而言,我們使用 VLOOKUP 函數 =VLOOKUP (value, table, col_index, [range_lookup]),根據表格範圍中的指定值傳回對應資料。然而,當使用 VLOOKUP 函數時,若要傳回的欄位位於查詢值的左側,將會產生錯誤值,如下圖所示:
doc choose function 8在此情況下,您可結合 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)星期數對照如下圖所示:
公式 3: 取得下一個工作日 =TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2) 說明:TODAY():傳回目前日期。WEEKDAY(TODAY()):作為 CHOOSE 函數的 index_num 參數用於取得今天的星期數(星期日為 1,星期一為 2,依此類推)。1,1,1,1,1,3,2:CHOOSE 函數的 value_list 參數。例如,若 WEEKDAY(TODAY()) 傳回 1(星期日),則選取第一個數值「1」,公式變為 =TODAY()+1,表示加 1 天以傳回下個星期一;若傳回 6(星期五),則選取第六個數值「3」,因星期五距離下個星期一尚有 3 天。結果(今日為 2018/12/20):=2018/12/20+CHOOSE(5,1,1,1,1,1,3,2)=2018/12/20+1=2018/12/21 公式 4: 取得下一個週末 =TODAY()+CHOOSE(WEEKDAY(TODAY()),6,5,4,3,2,1,1) 說明:6,5,4,3,2,1,1:CHOOSE 函數的值清單參數。例如,若 WEEKDAY(TODAY()) 傳回 1(星期日),則選取 6,公式變為 =TODAY()+6,表示加上 6 天以取得下個星期六的日期。結果:=2018/12/20+CHOOSE(5,6,5,4,3,2,1,1)=2018/12/20+2=2018/12/22

範例檔案
doc 範例檔案

最佳 Office 生產力工具

Kutools for Excel-助您脫穎而出

🤖KUTOOLS AI 助手:根據以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值    刪除空白行    合併列或儲存格而不遺失資料    不使用公式的四捨五入……
超級 VLookup多重條件    多重值    跨多個工作表    模糊查找……
進階下拉列表簡易下拉式清單    相依性下拉式清單    多重選擇下拉式清單……
欄位管理員新增指定數量的欄位    移動欄位   切換隱藏欄位的可見狀態  比較欄位以選擇相同/不同單元格……
精選功能網格聚焦    設計視圖    增強編輯欄    工作簿與工作表管理員資源庫(自動文字)  日期提取    合併工作表    加密/解密儲存格   依清單寄送電子郵件    超級篩選    特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符……)  50+ 圖表 類型甘特圖……)  40+ 實用公式基於生日計算年齡……)  19 插入工具插入二維碼從路徑插入圖片……)  12 轉換工具金額轉大寫匯率轉換……)  7 合併和拆分工具高級合併行拆分 Excel 儲存格……)……還有更多
在您的慣用語言中使用 Kutools-支援英文、西班牙文、德文、法文、中文及 40+ 種其他語言!

Kutools for Excel 擁有超過 300 項功能,確保您所需的功能觸手可及……


Office Tab-在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯功能

  • 一秒內在數十份開啟的文件間快速切換!
  • 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
  • 當您同時檢視與編輯多份文件時,生產力提升 50%。
  • 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。