精品久久看,欧美成人久久一级c片免费,日本加勒比在线精品视频,国产一区二区三区免费大片天美,国产成人精品999在线,97理论三级九七午夜在线观看

東坡下載:內容最豐富最安全的下載站!

首頁編程開發VC(VC++) → Excel 2007中自定義函數實例剖析

Excel 2007中自定義函數實例剖析

相關文章發表評論 來源:本站時間:2010/10/14 9:06:58字體大小:A-A+

更多

作者:東坡下載點擊:10227次評論:0次標簽:

    一、認識VBA

  在介紹自定義函數的具體使用之前,不得不先介紹一下VBA,原因很簡單,自定義函數就是用它創建的。VBA的全稱是Visual Basic for Application,它是微軟最好的通用應用程序腳本編程語言,它的特點是容易上手,而且功能非常強大。

  在微軟所有的Office組件中,如Word、Access、Powerpoint等等都包含VBA,如果你能在一種Office組件中熟練使用VBA,那么在其它組件中使用VBA的原理是相通的。

  Excel中VBA主要有兩個用途,一是使電子表格的任務自動化;二是可以用它創建用于工作表公式的自定義函數。

  由此可見,使用Excel自定義函數的一個前提條件是對VBA基礎知識有所了解,如果讀者朋友有使用Visual Basic編程語言的經驗,那么使用VBA時會感覺有很多相似之處。如果讀者朋友完全是一個新手,也不必太擔心,因為實際的操作和運用是很簡單的。

  二、什么時候使用自定義函數?

  有些初學Excel的朋友可能有這樣疑問:Excel已經內置了這么多函數,我還有必要創建自己的函數嗎?

  回答是肯定的。原因有兩個,它們也正好可以解釋什么時候使用Excel自定義函數的問題。

  第一,自定義函數可以簡化我們的工作。

  有些工作,我們的確可以在公式中組合使用Excel內置的函數來完成任務,但是這樣做的一個明顯缺點是,我們的公式可能太冗長、繁瑣,可讀性很差,不易于管理,除了自己之外別人可能很難理解。這時,我們可以通過使用自定義函數來簡化自己的工作。

  第二,自定義函數可以滿足我們個性化的需要,可以使我們的公式具有更強大和靈活的功能。

  實際工作的要求千變萬化,僅使用Excel內置函數常常不能圓滿地解決問題,這時,我們就可以使用自定義函數來滿足實際工作中的個性化需求。

  上面的講述比較抽象,我們還是把重點放在實際例子的剖析上,請大家在實際例子中進一步體會,進而學會在Excel中創建和使用自定義函數。

  下面我們通過兩個典型實例,學習自定義函數使用的全過程。這里實際上假設讀者朋友都有一定的VBA基礎。

  假如你完全沒有VBA基礎也不要緊,當學習完實例后,若覺得自定義函數在自己以后的工作中可能用到,那么再去補充相應的VBA基礎也不遲。

  (一) 計算個人調節稅的自定義函數

  任務

  假設個人調節稅的收繳標準是:工資小于等于800元的免征調節稅,工資800元以上至1500元的超過部分按5%的稅率征收,1500元以上至2000元的超過部分按8%的稅率征收,高于2000元的超過部分按20%的稅率征收。

  分析

  假設Sheet1工作表的A、B、C、D列中分別存放“姓名”、“總工資”、“調節稅”、“稅后工資”字段數據,如圖1所示。 


圖 1

   平時使用較多的方法是借助嵌套使用IF函數計算,比如在C2單元格輸入公式“=IF(B2<=800,0,IF(B2<=1500,(B2-800)*0.05,IF(B2<=2000,700*0.05+(B2-1500)*0.08,700*0.05+500*0.08+(B2-2000)*0.2)))”,然后通過填充柄復制公式到C列的其余單元格。

  既然公式能夠解決問題,為什么還要使用自定義函數的方法呢?

  正如前面提到的兩個方面的原因:一是公式看起來太繁瑣,不便于理解和管理;二是公式的處理能力在面對稍微復雜一些的問題時便失去效用,比如假設調節稅的稅率標準會根據年齡的不同而改變,那么公式可能就無能為力了。

  使用自定義函數

  下面就通過此例介紹使用自定義函數的全過程,即使是初學Excel的朋友,也會感覺其操作實際上是非常簡單的。

  1. 為了便于測試自定義函數的計算效果,可以先把上面采用公式計算的結果刪去。然后選擇菜單“工具→宏→Visual Basic編輯器”命令(或按下鍵盤Alt+F11組合鍵),打開Visual Basic窗口,我們將在這里自定義函數。

  2. 進入Visual Basic窗口后,選擇菜單“插入→模塊”命令,于是得到“模塊1”,在其中輸入如下自定義函數的代碼(圖2):

  Function TAX(salary)

  Const r1 As Double = 0.05

  Const r2 As Double = 0.08

  Const r3 As Double = 0.2

  Select Case salary

  Case Is <= 800

  TAX = 0

  Case Is <= 1500

  TAX = (salary - 800) * r1

  Case Is <= 2000

  TAX = (1500 - 800) * r1 + (salary - 1500) * r2

  Case Is > 2000

  TAX = (1500 - 800) * r1 + (2000 - 1500) * r2 + (salary - 2000) * r3

  End Select

  End Function 


圖 2

   3. 函數自定義完成后,選擇菜單“文件→關閉并返回到Microsoft Excel”命令,返回到Excel工作表窗口,在C2單元格中輸入公式“=TAX(B2)”回車后就計算出了第一個員工應付的個人調節稅,然后用公式填充柄復制公式到其它后面的單元格,這樣就利用自定義函數完成了個人調節稅的計算(圖3)。 


圖 3

  4. 從自定義函數的代碼中可以看出,用這種方式,自定義函數的功能非常易于理解,同時如果稅率改變,相應地變化r1、r2、r3的值即可。

  通常,自定義的函數只能在當前工作薄使用,如果該函數需要在其它工作薄中使用,則選擇菜單“文件→另存為”命令,打開“另存為”對話框,選擇保存類型為“Mircosoft Excel加載宏”,然后輸入一個文件名,如“TAX”單擊“確定”后文件就被保存為加載宏(圖4)。然后選擇菜單“工具→加載宏”命令,打開“加載宏”對話框,勾選“可用加載宏”列表框中的“Tax”復選框即可,單擊“確定”按鈕后(圖5),就可以在本機上的所有工作薄中使用該自定義函數了。 


圖 4

圖 5

   如果想要在其它機器上使用該自定義函數,只要把上面的加載宏文件復制到其它電腦上加載宏的默認保存位置即可。

  說明:Windows XP系統下加載宏文件的默認保存位置為:C:Documents and Settingszunyue(用戶帳戶)Application DataMicrosoftAddIns文件夾。

 任務

  為了促進銷售人員的工作積極性,銷售部門經理制定了銷售業績獎金制度,獎金發放的標準獎金率如下:月銷售額小于等于2800元的獎金率為4%,月銷售額為2800元至7900元的獎金率為7%,月銷售額為7900元至15000元的獎金率為10%,月銷售額為15000元至30000元的獎金率為13%,月銷售額為30000元至50000元的獎金率為16%,月銷售額大于50000元的獎金率為19%。同時,為了鼓勵員工持續地為公司工作,工齡越長對獎金越有利,具體規定為:參與計算的獎金率等于標準獎金率加上工齡一半的百分數。比如一個工齡為5年的員工,標準獎金率為7%時,參與計算的獎金率則為9.5%=7%+(5/2)%。

  分析

  首先,我們在Excel2003中制作好如圖6的Sheet1工作表,開始分析計算的方法。 


圖 6

   如果不考慮工齡對獎金率的影響,那么可以利用嵌套使用IF函數,在D2單元格輸入公式“=IF(B2<=2800,B2*4%,IF(B2<=7900,B2*7%,IF(B2<=15000,B2*10%,IF(B2<=30000,B2*13%,IF(B2<=50000,B2*16%,B2*19%)))))”可以進行計算。

  但是,該公式的一些弊端很明顯:一是公式看起來太繁瑣、不容易理解,而且IF函數最多只能嵌套7層,萬一獎金率超過7個,那么這個方法就無能為力了。

  另一方面,由于沒有考慮工齡,所以該方法不能算是解決問題了,如果我們把工齡融入到上述公式中,這樣公式就會顯得更加冗長繁瑣,以后的管理與調整都很不方便。

  使用自定義函數

  下面我們看看利用Excel自定義函數進行計算的全過程,有了實例一的基礎,相信大家理解起來更容易了。不過這里與實例一有一個明顯的差別是,該自定義函數使用了2個參數,請大家注意體會。

  1. 在上述Excel工作表中,選擇菜單“工具→宏→Visual Basic編輯器”命令,打開Visual Basic窗口,然后選擇菜單“插入→模塊”命令,插入一個名為“模塊1”的模塊。

  2. 接著在模塊編輯窗口中輸入自定義函數的代碼如下(圖 7):

  Function REWARD(sales, years) As Double

  Const r1 As Double = 0.04

  Const r2 As Double = 0.07

  Const r3 As Double = 0.1

  Const r4 As Double = 0.13

  Const r5 As Double = 0.16

  Const r6 As Double = 0.19

  Select Case sales

  Case Is <= 2800

  REWARD = sales * (r1 + years / 200)

  Case Is <= 7900

  REWARD = sales * (r2 + years / 200)

  Case Is <= 15000

  REWARD = sales * (r3 + years / 200)

  Case Is <= 30000

  REWARD = sales * (r4 + years / 200)

  Case Is <= 50000

  REWARD = sales * (r5 + years / 200)

  Case Is > 50000

  REWARD = sales * (r6 + years / 200)

  End Select

  End Function 


圖 7

   3. 從代碼可以看出,我們自定義了一個名為REWARD的函數,它包含兩個參數:銷售額sales和工齡years。常量r1至r6分別存放著各個等級的獎金率,這樣處理的好處是當獎金率調整時,修改非常方便。同時,函數的層次結構比前面的公式清晰,讓人容易理解函數的功能。此外,當獎金率超過7個時,用自定義函數的方法仍然可以輕松處理。

  4. 接下來用該自定義函數進行具體的計算。選擇菜單“文件→關閉并返回到Microsoft Excel”命令,關閉Visual Basic窗口,返回Excel工作表。選中D2單元格,在其中輸入“=reward(B2,C2)”,回車后就算出了第一個員工的獎金,然后利用公式填充柄復制該公式到后面的單元格,即可完成對其它員工獎金的計算(圖 8)。 


圖 8

    如果該自定義函數需要在其它工作薄或其它機器上使用,仿照實例一的操作方法進行即可。

  四、總結

  我們通過兩個典型的實例講述了Excel中自定義函數使用的全過程,相信大家都已經會到,其操作過程還是相當簡單的。

  如果你覺得自己的工作可能需要自定義函數,想進一步學好提高使用自定義函數的水平,筆者想給出如下幾點建議。

  第一點、盡力全面熟練地掌握Excel內置的函數。能用內置函數妥善解決的問題,就不必使用自定義函數。實際上,自定義函數的執行效率當然是比Excel內置函數的執行效率慢的。

  第二點、認真掌握好VBA的基礎知識。這點很容易理解,如果連VBA的基本規則都不甚清楚,那么別說是寫出精致的自定義函數,就是寫出能解決問題的自定義函數也還大有疑問。

  第三點、具體寫自定義函數代碼之前,應該認真分析自己要處理的實際問題,如果這個問題有實際的數學函數模型,那么最好列出這個函數的解析式。

  以上只是筆者的一些淺薄認識,希望能為大家使用好Excel自定義函數帶來幫助,也希望大家能夠通過使用自定義函數提高自己的工作效率。

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

主站蜘蛛池模板: 欧美精品自拍 | 精品国产免费人成在线观看 | 国产亚洲欧美日韩综合另类 | 亚洲国产成人久久精品影视 | 久久香蕉国产视频 | 中文字幕不卡免费视频 | 成人你懂的 | 成人做羞羞事免费网站 | 国产美女视频网站 | 中文字幕在线不卡精品视频99 | 王朝的女人在线观看免费完整 | 外国人性视频 | 黄色小视频在线观看免费 | 国产精品福利久久 | 日本欧美午夜 | 精品1区2区3区 | 精品理论片 | 啪啪精品 | www.99| 久久新视频 | 日韩免费在线视频观看 | 国产精品久久久久久搜索 | 精品久久久久久久中文字幕 | 五月开心六月伊人色婷婷 | 天天爽天天射 | 九九这里有精品 | 国产一区二区三区在线观看免费 | 精品无人区乱码1区2区3区在线 | 国内精品中文字幕 | 澳门永久av免费网站 | 欧美性活一级视频 | 日韩视频在线免费观看 | 日本不卡一区二区三区 最新 | 欧美日韩国产在线人成app | 久久笫一福利免费导航 | 国产精品美女在线 | 97久久曰曰久久久 | 97在线观看免费观看直播高清 | www.毛片网站| 久久精品只有这里有 | 四虎影院免费观看 |