昨天我們學了excel中的幾種數(shù)據(jù)類型,包括數(shù)字,文本,邏輯值和錯誤值。也知道邏輯值true可以轉為1,false可以轉為0。在最后還留了個思考題,不知道你有沒有去做??隙ㄒ玫綌?shù)組,但是and和or函數(shù)最后不能返回一個數(shù)組,所以就要用到今天的加號+和乘號*。不要小看它們哦,可能會讓你吃驚的!
-01-
*和+代替if函數(shù)
1.判斷退休年齡
如果性別是男,退休年齡是60;性別是女,退休年齡是55。通常的做法是用if函數(shù)來完成,在C2單元格中輸入公式=IF(B2="男",60,55),向下填充?,F(xiàn)在也可以用*和+來完成,在D2單元格中輸入公式=(B2="男")*5+55,向下填充。
你說這個公式是什么意思呢?你可以運算一下,B2單元格是"男",B2="男"就是true,(B2="男")*5就是5,(B2="男")*5+55就是60。
如果B2單元格是"女"呢?B2="男"就返回false,(B2="男")*5就是0,(B2="男")*5+55就是55。這樣正好和if函數(shù)的結果是一樣的,是不是挺妙的。
-02-
*和+代替and和or
1.員工提成計算問題
還是之前那個問題,人數(shù)小于4人且人均消費大于等于70元,可提成10元;或者人數(shù)大于等于4人且人均消費大于等于60元,可提成10元。之前用if,and和or來完成,今天就用*和+來完成。在E14單元格中輸入公式=((D14<4)*(B14/D14>=70)+(D14>=4)*(B14/D14>=60))*10,向下填充。
這個公式又是什么意思呢?實際上在這里*是且的意思,相當于and;+是或的意思,相當于or。對比下圖的2表,你可以看出,它們的條件是一樣的,左表用and返回邏輯值,右表用*返回對應的數(shù)字;or和+是有一些差別的,當多個條件成立時,or返回true,+返回的值大于1。
明白了*和+的含義,上面的公式就好理解了。
-03-
*和+超越and和or
1.語文是優(yōu)且數(shù)學是良,或者語文是良且數(shù)學是優(yōu)的有幾人?
昨天的思考題,用and和or不能返回數(shù)組,但用*和+就能解決這個問題。在E35單元格中輸入公式=SUM((B35:B41="優(yōu)")*(C35:C41="良")+(B35:B41="良")*(C35:C41="優(yōu)")),按ctrl+shift+enter三鍵。
公式的含義就不詳細說了,就是且和或的數(shù)組運算,只不過用*實現(xiàn)且的運算,用+實現(xiàn)或的運算。從這里可以看出,*和+不僅能代替and和or,更能超越它們,實現(xiàn)數(shù)組的運算。
當然不只有這一種方法,你還能想出其他的方法嗎?
2.語文是100或數(shù)學是100的有幾人?
首先來個錯誤示范,在E46單元格中輸入公式=SUM((B45:B51=100)+(C45:C51=100)),按ctrl+shift+enter三鍵。按照上面說的這個公式應該沒錯呀,或的關系用+。那錯在哪里呢?就在最后一個人的分數(shù)上,他的語文數(shù)學都是100,和100比較,都返回true,2個true相加就是2,原因就在這里。
那怎么解決呢?在E45單元格中輸入公式=COUNT(0/((B45:B51=100)+(C45:C51=100))),按ctrl+shift+enter三鍵。(B45:B51=100)+(C45:C51=100)這部分會形成{1;0;1;0;0;0;2}這個數(shù)組。出錯的原因就是最后那個2,實際它應該是1。所以用到前面的處理方法,用0除,將0轉為錯誤值,將不為0的數(shù)字轉為0,再用count統(tǒng)計數(shù)字的個數(shù)。
所以用+的時候要注意,如果在多個條件中有2個或2個以上的條件成立時,那么求出來的值會大于1,后續(xù)還要處理,比如最后一個人2科都等于100;如果多個條件中只有1個條件成立,或者1個條件都不成立時,那么可以放心地使用。
文件鏈接:
https://pan.baidu.com/s/1_Xa3uo7nWErYP7ZZjUaajA
提取碼:qqdk
聯(lián)系客服