如果Excel函數圈也有江湖,那CHOOSE函數絕對算是掃地僧。它不如IF函數那般威震江湖,但它的本領卻更勝一籌。今天小花就帶大家好好見識一下被大多數人冷遇的CHOOSE函數!
CHOOSE函數公式如下:
=CHOOSE(1 (B4="S")*1 (B4="A")*2 (B4="B")*3,"待改進" ,"優","好","一般")
公式說明:
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)
# 在運用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函數可以順利查詢到目標結果。
於是,問題來了。 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)
#公式說明:
此公式的重點在於我們運用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中文網其他相關文章!