短期培訓班會計,正保會計培訓班口碑不錯。下面一起來看看會計知識。
IF不可不用,不可多用
if最善于解決非此即彼、非男即女、非陰即陽、非前即后、非有即無的問題。如果問題的H答案H是二選其一,則除了if,沒有更好的辦法。比如學齡,以7歲為條件,if(H年齡H>=7,已到學齡,未到學齡),做這樣的判斷,任何函數方法都不會更簡明于此了。
如果我們的問題都是這么簡單就好了。
有一個著名的數組公式,其內核公式為:if(match(列起點:列終點,列起點:列終點,0)=row(列起點:列終點),row(列起點:列終點),),作用是在一列中查找重復值各單項的所在行號,這個if就是不可或缺,不可不用的,因為到目前為止還沒有其他更簡明的辦法來達到用公式篩選重復值的目的。但說穿了,if在這里所解決的,仍然還是一個非此即彼的問題。
再看一例:設A列為H姓名H,B列為數值,求姓名甲的數值合計。{=SUM(IF(A1:A15=甲,B1:B15))},其實也是一類問題,是{=SUM(IF(A1:A15=甲,B1:B15,0))}的一種簡寫,叫做非甲即0。而在數組公式中,*號可以用來替代AND,+號則可以替代OR,因此也可以進一步簡寫作{=SUM((A1:A15=F1)*B1:B15)},而且條件越多,越可以體現這種寫法的優點,比如再加上一列月份,求甲在3月份的數值合計,你可以省下兩個if,多用一個*號就可以了(自己試試?)
二、再來說不可多用。
為什么不可多用?大致是因為:一、會增加公式寫入的強度;二、降低公式的可讀性;三、降低運算速率;四、不利于腦力的發揮和開掘,使人懶惰。
例一:A1為一個數值,其范圍為1-7,B1設置公式,按A1數值變化分別等于A-G。
先來看看純粹使用if的解法:
=IF(A1=1,a,IF(A1=2,b,IF(A1=3,c,IF(A1=4,d,IF(A1=5,e,IF(A1=6,f,IF(A1=7,g,)))))))
是不是很麻煩?何止是麻煩,假如再增加兩個條件,A1的數值范圍為1-26,B1相應取值為A-Z,你又當如何?
if的嵌套*5可以為7層,上面的公式已經用到了極限。雖然說可以用一些旁門左道來“突破”這個限制,但也只是一種堆沙式的H游戲H,如上例,可以采用以下方式:=IF(A1=1,a,IF(A1=2,b,IF(A1=3,c,IF(A1=4,d,IF(A1=5,e,IF(A1=6,f,IF(A1=7,g,)))))))IF(A1=8,h,IF(A1=9,I,))......
這樣的用法,真是叫人興味蕩然,昏昏欲睡,EXCEL何必還要學下去,還不如去跟兒子擺積木更好玩呢!
所以說,if*4不要多用。不是說不能用,而是說用多了會叫人傷心。
其實EXCEL里準備了許多辦法來替代上面的愚蠢的做法。
比如CHOOSE函數。=CHOOSE(A1,a,b,c,d,e,f,g,h,i),這是不是方便多了?CHOOSE的參數清單可以有29項之多,一般足夠你使用了。如果還不夠,那么請看下面:
=LOOKUP(A1,{1,2,3,4,5,6,7,8,9;a,b,c,d,e,f,g,h,i}),你可以盡情地輸入參數,只要公式H內容H長度允許(規定公式內容長度為1024個字符)。
如果真的如例中所舉,只是生成A-Z等字母的話,則只需=CHAR(A1+64)就可以了。當然,實際使用中這樣的巧合實在是太少了,但作為一種方法還是有提及的必要。
一個if只能處理一個有無或是否的問題,即使這個問題可能是由諸多小的方面組合而成的。我們可以利用這一點,來達到替代if使用的目的。
例二:公司結算日期為每月24日,賬目的月份一欄,如果超過24日,就要記為下月。
如果按照普通思路,公式應該是這樣的:
=IF(DAY(A1)>24,IF(MONTH(A1)=12,1,MONTH(A1)+1),MONTH(A1))
要用到兩個if判斷,外層的是判斷日期是否大于24,內層的是判斷月份是否在12月,因為12月的下月是1月而非13月。現在對比一下下面的公式:
=MONTH(DATE(YEAR(A1),MONTH(A1)+1,0)+(DAY(A1)>24))
后者用了A1日期當月最后一天的序列值,最重要的是后面加了一個由判斷是否大于24而生成的邏輯值,相當于=if(day(a1)>24,1,0)。邏輯值在公式設置中是一個很重要的概念,是對問題本身的邏輯關系的判斷,其中TRUE=1,FALSE=0,生成的同樣是有無或是否的結果,用得恰當,會使你的公式格外生動有趣。
是不是一定要少用if,以至于該用的也想辦法不用?我曾經說,最少用到if的公式往往是*4的公式。之所以用“往往”來做限制,就是因為我沒有根據來做一定如此的定論。凡事都要實事求是,具體情況具體分析。
例三:A1為性別,B1為年齡,C1標注是否退休。條件是男60歲,女55歲。
對這個問題,=IF(OR(AND(A1=男,B1>=60),AND(A1=女,B1>=55)),退,未退)只用到一個if,但未必就比=IF(B1-IF(A1=男,5)>=55,退,未退)更簡潔,盡管后者用到兩個if判斷。當然我還是反對=IF(AND(A1=男,B1>=60),退,IF(AND(A1=女,B1>=55),退,未退))這種用法的。
以上就是關于短期培訓班會計的詳細介紹,數豆子將為大家分享更多會計培訓相關內容。
基礎,技能,財稅,實訓等一站式體系課程,助力快速實現崗位提升。
0元領先享卡