首頁 > 專題 > excel > 主體

Excel函數學習之CHOOSE函數 vs IF函數

青灯夜游
發布: 2023-01-28 19:09:56
轉載
1797 人瀏覽過

Excel函數學習之CHOOSE函數 vs IF函數

如果Excel函數圈也有江湖,那CHOOSE函數絕對算是掃地僧。它不如IF函數那般威震江湖,但它的本領卻更勝一籌。今天小花就帶大家好好見識一下被大多數人冷遇的CHOOSE函數!

##一、了解一下CHOOSE函數基本語句

    CHOOSE函數使用index_num傳回數值參數清單中的數值。使用 CHOOSE 可以根據索引號碼從最多 254 個數值中選擇一個。它的基本語句是:

    =CHOOSE(index_num,value1,value2,...)

    index_num:指定索引號碼的參數,它是1-254之間的任一整數, CHOOSE根據該值從參數清單value1到value254中選取對應的參數。 index_num可以是數字、公式或單元格的參考。設定此參數時需注意以下兩點:

    ①若 index_num 小於 1 或大於清單中最後一個值的索引號,則 CHOOSE 傳回 #VALUE! 錯誤值。例如CHOOSE(3,1,2),由於索引參數為3,但參數清單只有兩個值,所以回傳#VALUE!(錯誤類型:找不到該值。)

    ②如果index_num 為小數,則在使用前將被截尾取整。例如CHOOSE(1.99,1,2),1.99截尾取整為1,則從參數清單{1,2}選取第一個參數值1作為公式傳回值。

    value1-value254:參數清單中至少包含一個value參數,即value1是必須的,且參數清單中的value個數必須大於或等於 index_num的最大可能值。 value可以是數字、儲存格引用、定義的名稱、公式、函數或文字。

Excel函數學習之CHOOSE函數 vs IF函數

二、單一邏輯判斷能力,CHOOSE鬚遜IF一段香

    看了上述CHOOSE函數的語句及解釋,不難發現,CHOOSE函數兼具了IF函數的功能。

    IF的基本語句是IF(邏輯判斷,邏輯正確時回傳值,邏輯錯誤時回傳值),加上TRUE對應數值1,FALSE對應數值0,於是我們可以把IF函數語句翻譯成CHOOSE函數語句,即CHOOSE(2-邏輯判斷值,邏輯正確時傳回值,邏輯錯誤時傳回值)。

    當邏輯判斷結果為TRUE,2-TRUE=2-1=1,CHOOSE函數選取value1為邏輯正確回傳值;

    當邏輯判斷結果為FALSE,2-FALSE= 2-0=2,CHOOSE函數選取value2作為邏輯錯誤傳回值。

案例:

    分別使用CHOOSE函數與IF函數來判斷成績是否合格,CHOOSE函數需使用2-邏輯值將邏輯值轉換成索引號,略顯複雜!

Excel函數學習之CHOOSE函數 vs IF函數

三、多重條件判斷能力,CHOOSE更勝一籌

    多重條件判斷,IF函數的忠實粉絲會使用多重嵌套的方式來處理。但這樣做的結果是函數公式冗長且繁瑣,難以解讀。在巢狀過程中,我們需要多次使用IF函數。而使用CHOOSE函數來完成多重條件判斷,則較為簡潔,但需理解並掌握索引參數index_num的設定原理。接下來我們結合實例來講解下CHOOSE函數的多重條件判斷公式原理。

案例:

    將下圖裡的考核等級轉換為對應的級別,每個人的考核等級唯一。

    此時如果用IF函數我們需要三重嵌套,這還是IF函數前套中比較簡單的情景,當條件數量增加時,IF函數嵌套公式的複雜程度也會隨之增大。而CHOOSE函數公式則無需嵌套,只需將index_num寫成1 邏輯判斷1*1 邏輯判斷2*2 ...... 邏輯判斷n*n的形式,將value 1設定為全部條件都不滿足時的“待改進”,其他value值與邏輯判斷條件依次對應排列即可。

    IF函數公式如下:

    =IF(I4="S","優秀",IF(I4="A","良好",IF(I4="B", "一般","待改進")))

    CHOOSE函數公式如下:

    =CHOOSE(1 (B4="S")*1 (B4="A")*2 (B4="B")*3,"待改進" ,"優","好","一般")

Excel函數學習之CHOOSE函數 vs IF函數

公式說明:

    CHOOSE函數的第一個參數index_num表示的是選取參數列表的索引號,當所有條件都不滿足時,所有邏輯條件均傳回FALSE,1 ∑邏輯條件n*n=1 0=1,選取value 1作為公式的最終回傳值,因此value 1應填入所有條件皆不滿足時的目標結果,本例中應為「待改進」;

    當第一個條件滿足時,其他條件都不滿足,1 ∑邏輯條件n*n=1 1* 1 0=2,選取value 2即「優」為回傳值;

    當第二條件滿足時,其他條件都不滿足,1 ∑邏輯條件n*n=1 0*1 1* 2 0=3,選取value 3即「良好」為回傳值;

    以此類推。

    因此,當各個邏輯條件彼此不包含時,CHOOSE函數的第一個參數應表示為1 ∑邏輯條件n*n的形式,其餘參數順序為value all false,value if logical 1 true ,value if logical 2 true......

    相反的,如果各個邏輯條件間互相包含,則CHOOSE函數的第一個參數index_num應該寫成1 邏輯判斷1 邏輯判斷2 ......邏輯判斷n的形式,即1 ∑邏輯條件n。這是因為,當邏輯n滿足時,邏輯n-1一定也滿足,所以滿足的條件個數再加1即為選取參數列表的索引號,無需運用*n的形式進行轉換。典型的問題是舊個稅時的勞務報酬收入計稅。譬如薪資4500元,則其既大於4000,也大於800,把它們邏輯值相加再加1,得3,個稅就採用公式中Value 3即A2*0.8*0.2計算,如下:

    =CHOOSE(((A2>800) (A2>4000) (A2>25000) (A2>62500) 1),0,A2-800)*0.2,A2*0.8*0.2,230.
2000,A2*0.8*0.4-7000)

Excel函數學習之CHOOSE函數 vs IF函數

#四、建立反向尋找區域能力,CHOOSE全面佔優

#    在運用VLOOKUP函數進行反向查找時,我們會使用IF{1,0}結構來完成表格資料列的重構,從而使VLOOKUP的目標查詢值出現在查詢範圍的第一列。例如下圖,由於資料來源區域中,姓名一列在年級列的右側,我們無法直接使用VLOOKUP進行查詢,於是我們用IF{1,0}將A列和C列資料重排順序,當判斷為真(1),輸出$C$10:$C$14列數據,判斷為假(0)輸出$A$10:$A$14列數據,從而新建了以$C$10:$C$14為首列,$A $10:$A$14為第二列的數列作為查找區域,使VLOOKUP函數可以順利查詢到目標結果。

Excel函數學習之CHOOSE函數 vs IF函數

    於是,問題來了。 IF{1,0}結構只能指定兩列資料的順序,無法指定多列資料的順序,來組合成新的查詢區域,這使得我們經常需要為相同查詢邏輯不同查詢列的多個單元格單獨設定公式,無法拖曳填滿公式匹配列查找。譬如目前就無法將B2公式拖曳填滿到C2中。 IF{1,0}結構的這一缺陷,使得它在與CHOOSE的對比中一敗塗地!

   下面是CHOOSE出手,直接一次把3列資料重新排序建構出統一的查詢區域,公式可以直接從B2拖曳填入C2:

=VLOOKUP($A2 ,CHOOSE({1,2,3},$C$10:$C$14,$A$10:$A$14,$D$10:$D$14),COLUMN(),0)

Excel函數學習之CHOOSE函數 vs IF函數

#公式說明:

    此公式的重點在於我們運用CHOOSE{1,2,3}結構將表中三列資料A10:A14、C10:C14、D10:$D14重新按C10:C14排第1列,A10:A14排第2列,D10:$D14排第3列的順序組成一個新的資料區域用作Vlookup的查找區域。再藉由COLUMN()傳回公式所在儲存格的列數,確定VLOOKUP查詢傳回的列數。 CHOOSE函數的該用法大大突破了IF{1,0}結構只能將兩列資料交換位置進行重建的限制,可以說是後者的威力加強版!

    本文,小花透過CHOOSE函數與IF函數的橫向對比,講解了CHOOSE的幾個實戰用法,這些用法你學會了嗎?你還知道哪些與CHOOSE函數有關的技能?別忘了留言與小花交流分享!

相關學習推薦:excel教學

以上是Excel函數學習之CHOOSE函數 vs IF函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:itblw.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!