編者語:Excel是辦公室自動化中非常重要的一款軟件,很多巨型國際企業都是依靠Excel進行數據管理。它不僅僅能夠方便的處理表格和進行圖形分析,其更強大的功能體現在對數據的自動處理和計算,然而很多缺少理工科背景或是對Excel強大數據處理功能不瞭解的人卻難以進一步深入。編者以爲,對Excel函數應用的不瞭解正是阻擋普通用戶完全掌握Excel的攔路虎,然而目前這一部份內容的教學文章卻又很少見,所以特別組織了這一個《Excel函數應用》系列,希望能夠對Excel進階者有所幫助。《Excel函數應用》系列,將每週更新,逐步系統的介紹Excel各類函數及其應用,敬請關注!
Excel的工程函數與統計函數類似,都是屬於比較專業範疇的函數。因此,在文中筆者也僅介紹幾種比較常用的工程函數,更多的請參考Excel幫助和專業的書籍。顧名思義,工程工作表函數就是用於工程分析的函數。Excel中一共提供了近40個工程函數。工程工作表函數由"分析工具庫"提供。如果您找不到此類函數的話,可能需要安裝"分析工具庫"。
一、"分析工具庫"的安裝
如圖所示
圖1
(1)在"工具"菜單中,單擊"加載宏"命令。
Excel函數精彩回顧 |
● Excel函數應用之函數簡介 ● Excel函數應用之數學和三角函數 ● Excel函數應用之邏輯函數 ● Excel函數應用之文本/日期/時間函數 ● Excel函數應用之查詢與引用函數 ● Excel函數應用之統計函數 |
(2)如果"加載宏"對話框中沒有"分析工具庫",請單擊"瀏覽"按鈕,定位到"分析工具庫"加載宏文件"Analys32.xll"所在的驅動器和文件夾(通常位於"Microsoft Office/Office/Library/Analysis"文件夾中);如果沒有找到該文件,應運行"安裝"程序。
(3) 選中"分析工具庫"複選框。
二、工程函數的分類
在Excel幫助系統中將工程函數大體可分爲三種類型,即:
(1)對複數進行處理的函數
(2)在不同的數字系統(如十進制系統、十六進制系統、八進制系統和二進制系統)間進行數值轉換的函數
(3)在不同的度量系統中進行數值轉換的函數
在文中爲了對函數的解釋更清晰,筆者把工程函數分爲如下的六種類型,即:
(1)貝賽爾(Bessel)函數
(2)在不同的數字系統間進行數值轉換的函數
(3)用於篩選數據的函數
(4)度量衡轉換函數
(5)與積分運算有關的函數
(6)對複數進行處理的函數
下面逐一的對於這些工程函數進行介紹。
1、貝賽爾(Bessel)函數
貝賽爾(Bessel)函數是特殊函數中應用最廣泛的一種函數,在理論物理研究、應用數學、大氣科學以及無線電等工程領域都有廣泛的應用。在Excel中一共提供了四個函數,即:BESSELI、BESSELJ 、BESSELK、BESSELY。
語法形式爲:函數(x,n) 其中,X爲參數值,N爲函數的階數。如果 n非整數,則截尾取整。需說明的是,如果 x 爲非數值型,則貝賽爾(Bessel)函數返回錯誤值 #VALUE!。如果 n 爲非數值型,則貝賽爾(Bessel)函數返回錯誤值 #VALUE!。如果 n <0,則貝賽爾(Bessel)函數返回錯誤值 #NUM!。
2、在不同的數字系統間進行數值轉換的函數
Excel工程函數中提供二進制、八進制、十進制與十六進制之間的數值轉換函數。
這類工程函數名稱非常容易記憶,只要記住二進制爲BIN,八進制爲OCT,十進制爲DEC,十六進制爲HEX。再記住函數名稱中間有個數字2就可以容易的記住這些數值轉換函數了。比如,如果需要將二進制數轉換爲十進制,應用的函數爲前面BIN,中間加個2,後面爲DEC,合起來這個函數就是BIN2DEC。
簡單列表爲:
圖2
此類數值轉換函數的語法形式也很容易記憶。
比如,將不同進制的數值轉爲十進制的語法形式爲:函數(number),其中Number爲待轉換的某種進制數。
又如,將不同進制轉換爲其他進制的數值的語法形式爲:函數(number,places)其中Number爲待轉換的數。Places爲所要使用的字符數。當需要在返回的數值前置零時 places 尤其有用。
3、用於篩選數據的函數DELTA與GESTEP
(1)用以測試兩個數值是否相等的函數DELTA
DELTA用以測試兩個數值是否相等。如果 number1=number2,則返回 1,否則返回 0。可用此函數篩選一組數據,例如,通過對幾個 DELTA 函數求和,可以計算相等數據對的數目。該函數也稱爲 Kronecker Delta 函數。
語法形式爲DELTA(number1,number2) 其中Number1爲第一個參數,Number2爲第二個參數。如果省略,假設 Number2 值爲零。如果number1或者number2爲非數值型,則函數 DELTA 返回錯誤值 #VALUE!。
(2)可篩選數據的函數GESTEP
使用GESTEP函數可篩選數據。如果 Number 大於等於 step,返回 1,否則返回 0。例如,通過計算多個函數 GESTEP 的返回值,可以檢測出數據集中超過某個臨界值的數據個數。
語法形式爲:GESTEP(number,step) 其中Number爲待測試的數值。Step稱閥值。如果省略 step,則函數 GESTEP 假設其爲零。需注意的是,如果任一參數非數值,則函數 GESTEP 返回錯誤值 #VALUE!
(3)以考試成績統計爲例說明函數的用法
例:某院校舉行數學模擬考試,正在進行成績排定。提出的評定方案爲求出成績超過90分的考生人數有哪些人。
在這裏我們採用GEStep函數來完成統計,首先會爲每位考生的成績做標記。超過90分的標記爲1,否則爲0,然後對所有考生的標記進行彙總,即可求出有多少人超過90分。
圖3
以1號Annie的成績爲例,成績爲98分,超90分。具體公式爲:
=GESTEP(C4,90)
4、度量衡轉換函數CONVERT
CONVERT函數可以將數字從一個度量系統轉換到另一個度量系統中。
語法形式爲CONVERT(number,from_unit,to_unit) 其中Number爲以 from_units 爲單位的需要進行轉換的數值。From_unit爲數值 number 的單位。To_unit爲結果的單位。
函數 CONVERT 中from_unit 和 to_unit的參數接受的附表的文本值。
重量和質量 | From_unit 或 to_unit | 能量 | From_unit 或 to_unit |
克 | "g" | 焦耳 | "J" |
斯勒格 | "sg" | 爾格 | "e" |
磅(常衡制) | "lbm" | 熱力學卡 | "c" |
U(原子質量單位) | "u" | IT 卡 | "cal" |
盎司(常衡制) | "ozm" | 電子伏 | "eV" |
距離 | From_unit 或 to_unit | 馬力-小時 | "HPh" |
米 | "m" | 瓦特-小時 | "Wh" |
法定哩 | "mi" | 英尺磅 | "flb" |
海里 | "Nmi" | BTU | "BTU" |
英寸 | "in" | 功率 | From_unit 或 to_unit |
英尺 | "ft" | 馬力 | "HP" |
碼 | ` | 瓦特 | "W" |
埃 | "ang" | 磁 | From_unit 或 to_unit |
皮卡(1/72 英寸) | "Pica" | 特斯拉 | "T" |
時間 | From_unit 或 to_unit | 高斯 | "ga" |
年 | "yr" | 溫度 | From_unit 或 to_unit |
日 | "day" | 攝氏度 | "C" |
小時 | "hr" | 華氏度 | "F" |
分鐘 | "mn" | 開爾文度 | "K" |
秒 | "sec" | 液體度量 | From_unit 或 to_unit |
壓強 | From_unit 或 to_unit | 茶匙 | "tsp" |
帕斯卡 | "Pa" | 湯匙 | "tbs" |
大氣壓 | "atm" | 液量盎司 | "oz" |
毫米汞柱 | "mmHg" | 杯 | "cup" |
力 | From_unit 或 to_unit | U.S. 品脫 | "pt" |
牛頓 | "N" | U.K. 品脫 | "uk_pt" |
達因 | "dyn" | 夸脫 | "qt" |
磅力 | "lbf" | 加侖 | "gal" |
升 | "l" |
5、與積分運算有關的函數ERF與ERFC
ERF爲返回誤差函數在上下限之間的積分。
其語法形式爲:ERF(lower_limit,upper_limit) 其中,Lower_limit爲ERF函數的積分下限。Upper_limit爲ERF函數的積分上限。如果省略,默認爲零。
ERFC爲返回從 x 到 ∞(無窮)積分的 ERF 函數的餘誤差函數。其語法形式爲:
ERFC(x) 其中X爲ERF函數積分的下限。
6、與複數運算有關的函數
還記得中學時代學過的複數嗎?是不是還記得當時求複數的模等計算的繁複?Excel的工程函數中提供的多種與複數運算有關的函數,你可以用它來驗證自己的運算結果的正確性啊。關於有哪些函數與複數運算有關,可以察看所附的表格。這裏將以簡單的事例說明函數的使用方法。注意到在工程函數中有一些前綴爲im的函數了嗎?這些就是與複數運算有關的函數。
舉例,已知複數5+12i,請用函數求解該複數的共軛複數、實係數、虛係數、模等。
圖4
附表:Excel的工程函數
函數名 | 函數說明 | 語法形式 |
BESSELI | 返回修正 Bessel 函數值,它與用純虛數參數運算時的 Bessel 函數值相等。 | BESSELI(x,n) |
BESSELJ | 返回 Bessel 函數值。 | BESSELJ(x,n) |
BESSELK | 返回修正 Bessel 函數值,它與用純虛數參數運算時的 Bessel 函數值相等。 | BESSELK(x,n) |
BESSELY | 返回 Bessel 函數值,也稱爲 Weber 函數或 Neumann 函數。 | BESSELY(x,n) |
BIN2DEC | 將二進制數轉換爲十進制數。 | BIN2DEC(number) |
BIN2HEX | 將二進制數轉換爲十六進制數。 | BIN2HEX(number,places) |
BIN2OCT | 將二進制數轉換爲八進制數。 | BIN2OCT(number,places) |
COMPLEX | 將實係數及虛係數轉換爲 x+yi 或 x+yj 形式的複數。 | COMPLEX(real_num,i_num,suffix) |
CONVERT | 將數字從一個度量系統轉換到另一個度量系統中。 | CONVERT(number,from_unit,to_unit) |
DEC2BIN | 將十進制數轉換爲二進制數。 | DEC2BIN(number,places) |
DEC2HEX | 將十進制數轉換爲十六進制數。 | DEC2HEX(number,places) |
DEC2OCT | 將十進制數轉換爲八進制數。 | DEC2OCT(number,places) |
DELTA | 測試兩個數值是否相等。如果 number1=number2,則返回 1,否則返回 0。 | DELTA(number1,number2) |
ERF | 返回誤差函數在上下限之間的積分。 | ERF(lower_limit,upper_limit) |
ERFC | 返回從 x 到 ∞(無窮)積分的 ERF 函數的餘誤差函數 | ERFC(x) |
GESTEP | 如果 Number 大於等於 step,返回 1,否則返回 0。使用該函數可篩選數據。 | GESTEP(number,step) |
HEX2BIN | 將十六進制數轉換爲二進制數。 | HEX2BIN(number,places) |
HEX2DEC | 將十六進制數轉換爲十進制數。 | HEX2DEC(number) |
HEX2OCT | 將十六進制數轉換爲八進制數。 | HEX2OCT(number,places) |
IMABS | 返回以 x+yi 或 x+yj 文本格式表示的複數的絕對值(模)。 | IMABS(inumber) |
IMAGINARY | 返回以 x+yi 或 x+yj 文本格式表示的複數的虛係數。 | IMAGINARY(inumber) |
IMARGUMENT | 返回以弧度表示的角 | IMARGUMENT(inumber) |
IMCONJUGATE | 返回以 x+yi 或 x+yj 文本格式表示的複數的共軛複數。 | IMCONJUGATE(inumber) |
IMCOS | 返回以 x+yi 或 x+yj 文本格式表示的複數的餘弦。 | IMCOS(inumber) |
IMDIV | 返回以 x+yi 或 x+yj 文本格式表示的兩個複數的商。 | IMDIV(inumber1,inumber2) |
IMEXP | 返回以 x+yi 或 x+yj 文本格式表示的複數的指數。 | IMEXP(inumber) |
IMLN | 返回以 x+yi 或 x+yj 文本格式表示的複數的自然對數。 | IMLN(inumber) |
IMLOG10 | 返回以 x+yi 或 x+yj 文本格式表示的複數的常用對數(以 10 爲底數)。 | IMLOG10(inumber) |
IMLOG2 | 返回以 x+yi 或 x+yj 文本格式表示的複數的以 2 爲底數的對數。 | IMLOG2(inumber) |
IMPOWER | 返回以 x+yi 或 x+yj 文本格式表示的複數的 n 次冪。 | IMPOWER(inumber,number) |
IMPRODUCT | 返回以 x+yi 或 x+yj 文本格式表示的 2 至 29 個複數的乘積。 | IMPRODUCT(inumber1,inumber2,...) |
IMREAL | 返回以 x+yi 或 x+yj 文本格式表示的複數的實係數。 | IMREAL(inumber) |
IMSIN | 返回以 x+yi 或 x+yj 文本格式表示的複數的正弦值。 | IMSIN(inumber) |
IMSQRT | 返回以 x+yi 或 x+yj 文本格式表示的複數的平方根。 | IMSQRT(inumber) |
IMSUB | 返回以 x+yi 或 x+yj 文本格式表示的兩個複數的差。 | IMSUB(inumber1,inumber2) |
IMSUM | 返回以 x+yi 或 x+yj 文本格式表示的兩個或多個複數的和。 | IMSUM(inumber1,inumber2,...) |
OCT2BIN | 將八進制數轉換爲二進制數。 | OCT2BIN(number,places) |
OCT2DEC | 將八進制數轉換爲十進制數。 | OCT2DEC(number) |
OCT2HEX | 將八進制數轉換爲十六進制數。 | OCT2HEX(number,places) |