Skip to main content

Excel CHOOSE 函数

Author: Sun Last Modified: 2025-05-13
doc choose function 1

描述

語法和參數

用法與範例


描述

CHOOSE 函數根據給定的索引號從值列表參數中返回相應的值。例如,CHOOSE(3,"Apple","Peach","Orange") 返回 Orange,索引號為 3,而 Orange 是函數中索引號後的第三個值。

語法和參數

公式語法

CHOOSE(index_num, value1, [value2], …)

參數

  • Index_num: 必填。介於 1-254 之間的數值,用於間接指定將選擇哪個參數值。如果 index_num 超出 1-254 的範圍,CHOOSE 將返回 #VALUE! 錯誤值。如果 index_num 是小數,則會在公式使用前被四捨五入為整數。
  • Value1: 必填。公式中的第一個可選擇的值。
  • Value2: 可選。第二個到第 254 個可選擇的值。

Value1、value2… 可以是數字、文字、公式、單元格引用或已定義名稱。

返回值

CHOOSE 函數根據給定的位置從列表中返回值。

用法與範例

在這部分,我列出了一些簡單但具有代表性的範例來解釋 CHOOSE 函數的用法。

範例1 - 基本用法:單獨使用 CHOOSE 函數從列表參數中選擇值

公式1:

=CHOOSE(3,"a","b","c","d")

返回:c,這是 CHOOSE 函數中索引號為 3 之後的第三個參數。

注意:如果值是文本,請使用雙引號包圍該值。

公式2:

=CHOOSE(2,A1,A2,A3,A4)

返回:Kate,A2 的值。由於索引號為 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): 索引號,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")

結果:Middle
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): 索引號,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: 可選擇的值,折扣等於價格 * 數量 * 折扣百分比,因為這裡索引號為 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): 索引號,隨機獲取 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_range 參數。{1,2} 表示根據 VLOOKUP 函數中的 col_num 參數顯示 1 或 2 作為索引號參數。在此處,VLOOKUP 函數中的 col_num 為 2,因此 CHOOSE 函數顯示為 CHOOSE(2, B1:B7,A1:A7),表示從 A1:A7 中選擇值。
doc choose function 9


範例6 – 根據給定日期返回星期幾或月份

使用 CHOOSE 函數,您還可以根據給定日期返回相對應的星期幾和月份。

公式 1:根據日期返回星期幾

=CHOOSE(WEEKDAY(),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

解釋:

WEEKDAY(): 索引號參數,獲取給定日期的星期幾數字,例如,WEEKDAY(A5) 返回 6,則索引號參數為 6。

"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday": 值列表參數,從 "Sunday" 開始,因為星期幾數字 "1" 表示 "Sunday"。

公式 2:根據日期返回月份

=CHOOSE(MONTH(),"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

解釋:

MONTH(): 索引號參數,從給定日期中獲取月份數字,例如,MONTH(A5) 返回 3。
doc choose function 10


範例7 – 根據今天返回下一個工作日/週末日期

在日常工作中,您可能希望根據今天計算下一個工作日或週末。這裡 CHOOSE 函數也可以幫上忙。

例如,今天是 2018 年 12 月 20 日,星期四,現在您需要獲取下一個工作日和週末。

公式 1:獲取今天的日期

=TODAY()

結果:2018 年 12 月 20 日

公式 2:獲取今天的星期幾數字

=WEEKDAY(TODAY())

結果:5(當今天是 2018 年 12 月 20 日時)

星期幾數字列表如下截圖所示:
doc choose function 10

公式 3:獲取下一個工作日

=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)

解釋:

Today(): 返回當前日期

WEEKDAY(TODAY()): CHOOSE 函數中的索引號參數,獲取今天的星期幾數字,例如,星期日為 1,星期一為 2…

1,1,1,1,1,3,2: CHOOSE 函數中的值列表參數。例如,如果 weekday(today()) 返回 1(星期日),則從值列表中選擇 1,那麼整個公式變為 =Today()+1,這意味著加 1 天並返回下一個星期一。如果 weekday(today()) 返回 6(星期五),則從值列表中選擇 3,因為星期五距離下一個星期一還有 3 天。

結果(當今天是 2018 年 12 月 20 日時):

=2018 年 12 月 20 日+CHOOSE(5,1,1,1,1,1,3,2)

=12/20/2018+1

=12/21/2018

公式 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)

=12/20/2018+2

=12/22/2018
doc choose function 10


範例文件


最佳的辦公生產力工具

Kutools for Excel - 幫助您脫穎而出

? Kutools AI 助手:基於智能執行生成代碼創建自訂公式分析數據並生成圖表調用 Kutools 函數…來徹底改變數據分析方式。
熱門功能查找、標記或識別重複值  |  刪除空行  |  合併列或單元格而不丟失數據  |  四捨五入無需公式 ...
超級 VLookup多條件  |  多值  |  跨多工作表  |  模糊查找...
高級下拉列表簡易下拉列表  |  依賴下拉列表  |  多選下拉列表...
列管理器添加特定數量的列  |  移動列  |  切換隱藏列的可見狀態  比較列以選擇相同和不同的單元格 ...
特色功能網格聚焦  |  設計檢視  |  增強編輯欄  |  工作簿與工作表管理器 | 資源庫(自動文本)  |  日期提取器  |  合併資料  |  加密/解密儲存格  |  按清單發送電子郵件  |  超級篩選  |  特殊篩選(篩選粗體/斜體/刪除線...) ...
頂級 15 種工具集12 個文字工具添加文本刪除特定字符 ...)  |  50+ 圖表 類型甘特圖 ...)  |  40+ 實用 公式基於生日計算年齡 ...)  |  19 個插入工具插入QR碼從路徑插入圖片 ...)  |  12 個轉換工具金額轉大寫匯率轉換 ...)  |  7 個合併與分割工具高級合併行分割Excel單元格 ...)  |  ... 還有更多

Kutools for Excel 擁有超過 300 種功能,確保您需要的功能只需點擊一下即可實現...


Office Tab - 啟用 Microsoft Office(包括 Excel)中的分頁閱讀和編輯功能

  • 一秒鐘內在數十個打開的文檔之間切換!
  • 每天為您減少數百次鼠標點擊,告別滑鼠手。
  • 當查看和編輯多個文檔時,您的工作效率提高 50%。
  • 為 Office(包括 Excel)帶來高效的分頁功能,就像 Chrome、Edge 和 Firefox 一樣。