今天繼續了解數學計算中用到的函數,具有四舍五入功能的函數,共有四對,分别都有不同的使用場景,今天我們一起看看這四對組合函數的使用場景和使用注意事項!
ROUND函數
ROUND函數符合我們正常生活所說的四舍五入的規則,雖然它有兩個參數,但想操作自如也并非易事,我們一起看看在它簡單的參數下有這不簡單的使用規則。語法結構如下圖:
ROUND函數語法結構圖
我們最常用的恐怕就是帶有2位小數的公式寫法啦,不過今天我們要把内容擴展一下,看看這個函數除了我們已經了解的,還能幹什麼呢?我們沒有了解的部分恐怕就是精度數為負數的部分,我也将這部分數據加以測試,也得到有意思的結果也是有規律的,先上測試數據,如下圖:
ROUND測試數據圖
圖中的數據把鏡度數分為三部分,負數,0,正數,正數部分比較容易理解,代表保留的小數位數,1就是保留一位并根據四舍五入的規則,是否進行保留位加1,0則道理同上,隻保留整數部分,而負數部分就比較于意思了,-1就是10的1次方為進位基數,-2就是10的2次方進位基數,即當為-1時:>0且<5時,返回0,大于等于5且小于15時,返回10,大于等于15且小于25的則返回20,看完了整數的部分,我們需要确認一下帶有小數是否會有對結果并沒有影響,結果并沒有驚喜,從上面的原理來看10的0.1次方結果是0.794328234724281,這個值也确實不太好計算取舍所以就簡化處理,對第二參數進行取整運算後再進行下一步的處理,說了這麼多,你是不是覺的沒有用啊?我隻要知道他的功能就行了啊!
其實這些知識點是很有用的,在函數的使用,我們恰恰需要注意的地方就是函數未處理的地方或者禁區,隻有知道這些,我們才能更好的編寫公式的時候不會出錯,就以上面的講述的為例,在編寫ROUND函數的公式,第二參數就不用在意是不是整數,用不用使用比如INT函數來取整一下,還有我們通過了解它的特性,在編寫公式我們就會多一種處理方法比如,階段性評分或評級,就完全可以用ROUND函數鏡度數為負數來處理,在計算機的程序中,執行數學計算的比比較大小效果要高哦!
日常案例
某公司的銷售額每月已不能達到5萬元的,沒有獎金,5萬到15萬以内的為一級獎金一級獎金以5萬基數,每增加一萬元,超出基數的部分以3%作為獎金,15萬元到25萬以内的則為二級獎金以15萬元為基數,則以增加的部分則以5%作為獎金,依次類推,超過25萬的則三級獎金,25萬為基數,超出基數的部分則以8%為獎金,獎金計算模式:N級=1級 2級 ...N級,求每人的每月的工資,具體數據如下:
銷售公司的員工工資表
好了我們按照上面的要求,先來分析整理一下我們的已知條件為邏輯公式:
<5萬,工資1500 獎金0,
5萬<=銷售額<15萬,工資1500 (銷售額-5萬)*3%(對應獎金率)
15萬<=銷售額<25萬,工資1500 (銷售額-15萬)*5% 3000(上級獎金)
25萬<=銷售額,工資1500 (銷售額-25萬)*8% (5000 3000)(上級獎金)
既然我們都有了工資的計算公式的,隻需将這些轉化為Excel的公式就行了,我們第一個可能會想到的用IF,但條件怎麼寫呢?這裡就有個技巧了,在編寫比較的,需要看你用的什麼比較符号了,用>或>=符号就要範圍數字從大到小寫,反過來用<或<=符号就要從小往大的寫,别弄反了,了解了解,說完這個開始我們的編寫吧,我們這裡選>或>=符号
獎金的公式=if(銷售額>=250000,(銷售額-250000)*0.08 8000,if(銷售額>=150000,(銷售額-150000)*0.05 3000,if(銷售額>=50000,(銷售額-50000)*0.03,0)))
用ROUND函數編寫的公式:=if(round(銷售額,-5)/100000>=3,(銷售額-250000)*0.08 8000,if(round(銷售額,-5)=2,(銷售額-150000)*0.05 3000,if(round(銷售額,-5)/100000=1,(銷售額-50000)*0.03,0))),如果這兩個公式擺在你的面前,你會選哪個呢?
當然第二個了,别看第二個公式長,它的共用性高,哪麼問題來了,什麼叫共用性?共用性就是共同使用相同的結構或内容,其實隻要我們仔細觀察,我們就會發現第二個公式的條件裡,基本都是有這個結構round(銷售額,-5)/100000,而這種結構我們就可以通過定義名稱的方式,将-5和100000抽離出來,這樣就給這個公式帶來更強的擴展使用性和可維護性,隻要的分階段的方式類似,我們隻需修改名稱的值來擴展公式的使用廣度,不過往往有點和缺點并存,它的缺點是什麼呢?
它的缺點就是它本身就是利用的round的函數的特性加以應用的,一旦超出了ROUND函數的特性,它也就沒有這方面的使用價值了,而第一個公式,笨重,可維護性差,擴展困難,但它有着更好的兼容性,這也可能是人們為什麼的部分的采用它的來處理問題的原因吧。說了這麼,還是來看一下最終的結果吧,我就用第二個公式做的:
完成公式填充後的效果
如果像這樣的工作隻做一次的,就沒有必要進行優化,而且這兩種方式,你用哪個順手就用哪個就可以了,如果你的這樣的工作重複性比較高,哪我們就需要優化并把抽離成結構化,以後再遇到這樣類似的問題,隻需要在這個公式的基礎稍微調整數據就能完成新的工作,這樣我們就能大大的提高效率,好了說了這麼,我們一起來做一下這個表的結構化,首先我們需要将條件的部分拆分成兩部分,對應條件和結果抽離成一張表,我們給它起個名字叫Base:A列内容為等級,存儲1,2,3,b列:50000,1500000,250000,c列存儲是3%,5%,8%,d列内容為:0,3000,8000;至于加不加标題都可以,加标題是為了你以後再用的時候知道每列的内容是什麼!
Base表格數據内容
至于常用數,-5或100000,你可以自定義存儲也可以存儲在條件表的一個固定位置也可以,我定義名稱AN為-5和RN:100000,基礎數據創建完成後,再來編寫公式,這次我們不用if語句,而使用lookup代替if,獎金的公式變為=IFNA(([@銷售額]-LOOKUP(ROUND([@銷售額],RN)/AN,Base!A:A,Base!C:C)*LOOKUP(ROUND([@銷售額],RN)/AN,Base!A:A,Base!D:D) LOOKUP(ROUND([@銷售額],RN)/AN,Base!A:A,Base!E:E)),0),隻要我們遇到等級按0-5,5-15,15-25這樣類似的規則,我們隻需調整AN和RN的數值,隻需修改B列和右側的内容即可。
用lookup代替if的方法當然也可以優化第一個公式,不過的是需要調整Base表中所有的内容,數據少無所謂,一旦多起來即使少修改一項的内容,也會大大的提高效果的。通常我們在工作中,即使能優化一兩件事情也要去做,因為這種優化積累到一定程度,就會有質的提升了,好了今天的文章就寫到這了,也希望你從中對ROUND函數有一點新的認識和用法的上的啟發。如果想詳細了解LOOKUP函數代替if函數的用法在Excel基礎知識-解密開發小項目的全過程中有詳細介紹!最後還是老口号:學習工作的路上你并不孤單,我們一路同行!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!