薛萬(wàn)標(biāo)
摘 要:文章主要介紹在沒(méi)有專業(yè)的測(cè)量軟件的情況下,通過(guò)使用在電腦上廣泛使用的Excel軟件編制自定義函數(shù),通過(guò)Excel進(jìn)行計(jì)算。Excel中大量的公式函數(shù)可以應(yīng)用選擇,使用Microsoft Excel可以執(zhí)行計(jì)算,分析信息并管理電子表格或網(wǎng)頁(yè)中的數(shù)據(jù)信息列表與數(shù)據(jù)資料圖表制作,可以實(shí)現(xiàn)許多方便的功能,帶給使用者方便,但是Excel中本身是含有大量的函數(shù)可以調(diào)用,但是其本身并不含有有關(guān)混凝土砼判定的函數(shù),因此可以通過(guò)在Excel中編制自定義函數(shù)來(lái)進(jìn)行相應(yīng)的測(cè)算。
關(guān)鍵詞:Excel;自定義函數(shù);工程試驗(yàn)
前言
Excel中大量的公式函數(shù)可以應(yīng)用選擇,但是Excel中并不含有有關(guān)混凝土砼判定的函數(shù),因此我們可以通過(guò)在Excel中編制自定義函數(shù)來(lái)進(jìn)行相應(yīng)的測(cè)算。
1 Excel的介紹
Microsoft Excel是微軟公司的辦公軟件Microsoft office的組件之一,是由Microsoft為Windows和Apple Macintosh操作系統(tǒng)的電腦而編寫和運(yùn)行的一款試算表軟件。一般說(shuō)來(lái),Excel主要用來(lái)進(jìn)行有繁重計(jì)算任務(wù)的預(yù)算、財(cái)務(wù)、數(shù)據(jù)匯總等工作,Excel中大量的公式函數(shù)可以應(yīng)用選擇,使用Microsoft Excel可以執(zhí)行計(jì)算,分析信息并管理電子表格或網(wǎng)頁(yè)中的數(shù)據(jù)信息列表與數(shù)據(jù)資料圖表制作,可以實(shí)現(xiàn)許多方便的功能,帶給使用者方便。Excel中包含了很多的函數(shù),但是其內(nèi)置的函數(shù)并不一定總是滿足我們的需求,這時(shí)就可以通過(guò)定義自己的函數(shù)來(lái)解決問(wèn)題。
2 自定義函數(shù)介紹
自定義函數(shù)是我們?cè)贓xcel中設(shè)定的符合自己需要的函數(shù),在有些工作中,我們可以選用Excel內(nèi)置的函數(shù)來(lái)完成任務(wù),但是這樣做有的時(shí)候會(huì)發(fā)現(xiàn)公式可能會(huì)會(huì)很冗長(zhǎng)、繁瑣同時(shí)可讀性很差,因此我們就需要使用自定義函數(shù)來(lái)進(jìn)行簡(jiǎn)化。有時(shí)候在工作中,需要使用的函數(shù)在Excel的內(nèi)置函數(shù)庫(kù)中無(wú)法找到,這時(shí)候就需要我們使用自定義函數(shù)來(lái)滿足實(shí)際工作中的個(gè)性化需求。在Excel中自定義函數(shù)是使用VBA來(lái)進(jìn)行創(chuàng)建的, VBA是新一代標(biāo)準(zhǔn)宏語(yǔ)言,是基于Visual Basic for Windows 發(fā)展而來(lái)的。它與傳統(tǒng)的宏語(yǔ)言不同,傳統(tǒng)的宏語(yǔ)言不具有高級(jí)語(yǔ)言的特征,沒(méi)有面向?qū)ο蟮某绦蛟O(shè)計(jì)概念和方法。而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,提供了相當(dāng)完整的程序設(shè)計(jì)語(yǔ)言。VBA 易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動(dòng)化。因此,對(duì)于在工作中需要經(jīng)常使用Office 套裝軟件的用戶,學(xué)用VBA 有助于使工作自動(dòng)化,提高工作效率。另外,由于VBA 可以直接應(yīng)用Office 套裝軟件的各項(xiàng)強(qiáng)大功能,所以對(duì)于程序設(shè)計(jì)人員的程序設(shè)計(jì)和開(kāi)發(fā)更加方便快捷。VBA主要能用來(lái)擴(kuò)展Windows的應(yīng)用程式功能,特別是Microsoft Office軟件。也可說(shuō)是一種應(yīng)用程式視覺(jué)化的Basic 腳本。VBA是微軟最好的通用應(yīng)用程序腳本編程語(yǔ)言,功能強(qiáng)大。使用VBA可以規(guī)范用戶的操作,控制用于的操作行為,同時(shí)使操作界面人性化,方便用戶的操作,多個(gè)步驟的手工操作通過(guò)執(zhí)行VBA代碼可以迅速的實(shí)現(xiàn)。
3 在Excel中設(shè)定自定義函數(shù)的方法
Excel內(nèi)置的函數(shù)雖然很多,但是并不能滿足我們的所有需要,我們可以自定義一個(gè)函數(shù),來(lái)完成一些特定的運(yùn)算,下面我們列舉自定義函數(shù)的步驟進(jìn)行介紹。
3.1 執(zhí)行“工具→宏→Visual Basic編輯器”菜單命令(或按“Alt+F11”快捷鍵),打開(kāi)Visual Basic編輯窗口。
3.2 在窗口中,執(zhí)行“插入→模塊”菜單命令,插入一個(gè)新的模塊——模塊1。
3.3 在右邊的“代碼窗口”中輸入相應(yīng)的代碼:
3.4 關(guān)閉窗口,自定義函數(shù)完成。
使用上述步驟完成的自定義函數(shù)只能在設(shè)定的工作簿名中完成設(shè)定的功能函數(shù)。
4 工程應(yīng)用實(shí)例
根據(jù)上面介紹的操作步驟,進(jìn)行操作,首先需要執(zhí)行步驟:
(1)“工具→宏→Visual Basic編輯器”菜單命令(或按“Alt+F11”快捷鍵),打開(kāi)Visual Basic編輯窗口。(2)在窗口中,執(zhí)行“插入→模塊”菜單命令,插入一個(gè)新的模塊——模塊1。(3)在右邊的“代碼窗口”中輸入相應(yīng)的代碼:該功能函數(shù)命名為tpd函數(shù),此功能函數(shù)設(shè)定了三個(gè)參數(shù),可以檢測(cè)三個(gè)檢測(cè)值,tpd函數(shù)是根據(jù)《公路工程水泥及水泥混凝土試驗(yàn)規(guī)程》(JTG E30-2005)(T0553-2005)立方體抗壓強(qiáng)度試驗(yàn)方法中所規(guī)定的方法進(jìn)行編制的,從而對(duì)檢測(cè)出來(lái)的數(shù)據(jù)進(jìn)行及時(shí)的歸納,減少因計(jì)算而出現(xiàn)的誤差,提高了數(shù)據(jù)處理的工作效率,計(jì)算人員可以很方便的根據(jù)處理出來(lái)的數(shù)據(jù)而做出判斷。自定義函數(shù)將人們從繁瑣的數(shù)據(jù)后期處理中解放了出來(lái),有很高的實(shí)用價(jià)值。而且這個(gè)函數(shù)采用了模塊化的設(shè)計(jì),可以根據(jù)需要進(jìn)行相應(yīng)的修改,就能很輕松的變?yōu)轭愃乒δ艿暮瘮?shù),下面我們對(duì)函數(shù)中的設(shè)定要求進(jìn)行說(shuō)明:現(xiàn)將水泥混凝土立方體抗壓強(qiáng)度試驗(yàn)方法的結(jié)果判定要求介紹如下:以3個(gè)試件測(cè)值的算術(shù)平均值為測(cè)定值,計(jì)算精確至0.1MPa。三個(gè)測(cè)值中的最大值或最小值中如有一個(gè)與中間值之差超過(guò)中間值的15%,則取中間值為測(cè)定值;如最大值和最小值與中間值之差均超過(guò)中間值的15%,則該組試驗(yàn)結(jié)果無(wú)效。
代碼如下:
Function tpd(ByVal a1 As Double,ByVal a2 As Double,ByVal a3 As Double)
Dim MyArray(),i%,Average1,max1,min1,mid1,result
ReDim MyArray(0 To 2)endprint
Dim Index :Dim TEMP:Dim NextElement
'冒泡排序
MyArray(0) = a1
MyArray(1) = a2
MyArray(2) = a3
NextElement = 0'先將已處理的元素個(gè)數(shù)置為0
Do While (NextElement < UBound(MyArray)) '遍歷每一個(gè)元素
Index = UBound(MyArray) '讀取當(dāng)前最大下標(biāo)
Do While (Index > NextElement) '與前面的每一個(gè)元素比較
If MyArray(Index) < MyArray(Index - 1) Then'升序:如果當(dāng)前值小于上一個(gè)值,則互換
TEMP = MyArray(Index)
MyArray(Index) = MyArray(Index - 1)
MyArray(Index - 1) = TEMP
End If
Index = Index - 1'將當(dāng)前下標(biāo)移到上一個(gè)值
Loop
NextElement = NextElement + 1'將已處理的元素個(gè)數(shù)加1
Loop
Average1=Application.WorksheetFunction.Average(MyArray)
min1 = Application.Index(MyArray,1)
mid1 = Application.Index(MyArray,2)
max1 = Application.Index(MyArray,3)
If Abs(mid1 - min1) > mid1 * 0.15 And Abs(max1 - mid1) >mid1*0.15 Then
tpd = “該組試驗(yàn)結(jié)果無(wú)效!”
ElseIf Abs(mid1 - min1) < mid1 * 0.15 And Abs(max1 - mid1) < mid1 * 0.15 Then
tpd = Average1
Else
tpd = mid1
End If
End Function
輸入完成后,回到Excel工作表界面,只需輸入“=tpd(*,*,*)”就可計(jì)算出相應(yīng)的數(shù)據(jù)。*- -代表要計(jì)算的三個(gè)強(qiáng)度值,可以是數(shù)值,表達(dá)式,或單元格引用。
5 結(jié)束語(yǔ)
文章介紹了怎樣在Excel中設(shè)定自定義函數(shù)來(lái)簡(jiǎn)化在工程試驗(yàn)中對(duì)于數(shù)據(jù)的處理,希望讀者可以從中有所借鑒。
參考文獻(xiàn)
[1]何凌霄.Excel中文本數(shù)據(jù)的排序方法[J].農(nóng)村電工,2009,12.
[2]在Excel中自定義函數(shù)[J].中國(guó)會(huì)計(jì)電算化,2003,5.endprint