函數(shù)沒有你想象中的那么復雜,只要想明白就能寫出來

對于很多Excel新手和入門級用戶來說,公式函數(shù)仿佛就是Excel學習晉級的一只攔路虎。很多人會用死記硬背的方式把常用IF、COUNTIFS、SUMIFS、VLOOKUP函數(shù)的語法背了下來,可在實際應用的時候,卻還是不知道在什么場景下用什么函數(shù)。

說到死記硬背,我想起來在李笑來老師的《把時間當作朋友》一書中看到的一則故事:

那天下課之后,一個男孩捧著我寫的那本非常暢銷的《TOEFL iBT高分作文》讓我給他前面。我簽了。然后他說“老師,我可不可以問你一個問題?”我笑著說“你現(xiàn)在可以直接問第二個了。”他說:“老師,你說,如果我把你這本書里的作文全都背下來,在考場上默寫一篇,會不會被判雷同呢?”我當時一下子失去了耐心,盡管沒有發(fā)火,但是語氣里肯定有一些東西:“那你說呢?!”那個男孩臉紅了一下,迅速走了。

顯然,用死記硬背的方法是學不好寫作的,李笑來老師在書中說到:“作是只有想清楚了,才有可能寫清楚。想不清楚,連寫出來的必要都沒有。

這句話同樣適用于Excel函數(shù)的學習。在Excel線下培訓講解到函數(shù)這個模塊的時候,給學員講解函數(shù)的語法和各個參數(shù)的概念之前,我都會告訴學員:“函數(shù)沒有你想象中的那么復雜,只要想明白的就能寫出來?!?/p>

編寫函數(shù)之前,一定要梳理出數(shù)據(jù)背后的規(guī)律,我來舉例說明一下。

前段時間給某銀行企業(yè)培訓完Excel課程之后,學員M拿著他工作中的一個問題向我咨詢。這是M的業(yè)務數(shù)據(jù)(數(shù)據(jù)為模擬):

這是M需要計算的收益數(shù)據(jù)的計算規(guī)則,如果資產(chǎn)分類是“非標準化資產(chǎn)”,那么收益的計算公式是=B2*E2/F2,以此類推的按照底部的條件來計算收益。

Excel常用的5大函數(shù)及其語法分別是:

求和:SUM(區(qū)域)

邏輯判斷:IF(邏輯判斷式,真值,假值)

多條件計數(shù):COUNTIFS(條件范圍1,條件1,條件范圍2,條件2,……)

多條件求和:SUMIFS(求和范圍,條件范圍1,條件1,條件范圍2,條件2,……)

條件查詢:VLOOKUP(查詢值,數(shù)據(jù)源,返回第幾列,0/1)

通常我們在遇到計算條件是如果……那么……,這類的規(guī)則的時候,一定會想到對應的函數(shù)是邏輯判斷IF函數(shù),現(xiàn)在判斷條件有6個,也就意味著要嵌套5層IF函數(shù)才能完成這個條件判斷。而實際上M的需求比現(xiàn)在我們看到的規(guī)則還更復雜,這就意味著將嵌套更多層的IF函數(shù)才能實現(xiàn)他的需求。

如果仔細觀察這個運算規(guī)則,你會發(fā)現(xiàn)第一個B2都是固定的,最后一個F2也是固定的。唯有中間乘的數(shù)據(jù)在發(fā)生變化。

那我們是不是可以將中間乘的E2、D2或0.2拆分到兩列中,看到上面的拆分結(jié)果,現(xiàn)在你可能有會1個問題:為什么E后面不寫行號2?

因為行號2不是固定的,第一個地址如果我們直接引用B2,當公式往下復制的時候,B2會自動變成B3、B4、B5……。而后面的E2、D2我們需要根據(jù)左邊的資產(chǎn)分類為條件,查詢出這一列,再用間接引用函數(shù)INDIRECT引用出這個數(shù)據(jù)。

有關(guān)INDIRECT函數(shù)的用法,請參考此文:Excel中神秘的間接引用函數(shù)Indirect。此時如果把2寫到E或D的后面,2就變成固定的。

現(xiàn)在的規(guī)則就變成了根據(jù)A列查詢返回K列的數(shù)據(jù)了,想清楚了我們就知道接下來的公式應該怎樣寫了。

首先,用VLOOKUP函數(shù)用A2作為查詢條件,返回K列的數(shù)據(jù),需要用到查詢函數(shù)VLOOKUP。

=VLOOKUP(A2,I:K,3,0)

接著讓后面的2變成動態(tài)可變的,就需要用到ROW返回行號的函數(shù)。

=VLOOKUP(A2,I:K,3,0)&ROW(A2)

現(xiàn)在要把D2、E2變成對應的數(shù)據(jù),就要用到間接引用函數(shù)INDIRECT。

=INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2))

由于有部分是沒有引用結(jié)果的,所以需要用IFERROR函數(shù)來指定錯誤值的顯示,如果出錯了我們就返回0.2。

=IFERROR(INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2)),0.2)

最后前面添加B2,后面除以F2就得到了我們想要的結(jié)果了。

=B2*IFERROR(INDIRECT(VLOOKUP(A2,I:K,3,0)&ROW(A2)),0.2)/F2

涉及到復雜公式計算的時候,我們是很難一步到位的寫出這個公式的,這樣一步步把公式嵌套進去,能讓公式化繁為簡。

公式其實就把你思考的過程轉(zhuǎn)換成Excel能識別的語言,只要想明白了你一定能寫出來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容