官术网_书友最值得收藏!

2.3 函數

函數處理數據的方式與公式處理數據的方式相同,函數通過引用參數接收數據,并返回結果。大多數情況下,返回的是計算結果,也可以返回文本、引用、邏輯值、數組,或者工作表的信息。本章中列出的函數都可以用于工作表或Excel宏表中。本章將介紹如何使用函數,然后介紹Excel中的一些工作表函數及其參數說明。

2.3.1 函數概述

前面已經看到,單元格中可以包括文本、公式或者函數。通過公式和函數可以在單元格中放置計算的值。公式可以進行加、減、乘、除運算,也可以包含函數。

Excel用預置的工作表函數進行數學、文本、邏輯的運算或者查找工作表的信息。與直接用公式進行計算相比,使用函數進行計算的速度更快。例如公式“=(A1+A2+A3+A4+A5+A6+A7+A8)/8”與使用函數公式“=AVERAGE(Al:A8)”是等價的。但是,使用函數速度更快,而且占用工具欄的空間更少,同時可以減少輸入出錯的機會,因此,應該盡量使用函數。

函數通過參數接收數據,輸入的參數應該放在函數名之后,并且必須用括號括起來,各函數使用特定類型的參數,如數值、引用、文本或者邏輯值。函數中使用參數的方式與等式中使用變量的方式相同。

函數的語法以函數的名稱開始,后面是左括號以及逗號隔開的參數和右括號。如果函數要以公式的形式出現,則在函數名前輸入等號。

1.函數分類

Excel提供了大量的函數,這些函數按功能可以分為以下幾種類型。

(1)數字和三角函數:可以處理簡單和復雜的數學計算。

(2)文本函數:文本函數用于在公式中處理字符串。

(3)邏輯函數:使用邏輯函數可以進行真假值判斷,或者進行符號檢驗。

(4)數據庫函數:用于分析數據清單中的數值是否符合特定條件。

(5)統計函數:可以對選定區域的數據進行統計分析。

(6)查找和引用函數:可以在數據清單或者表格中查找特定數據,或者查找某一單元格的引用。

(7)日期與時間函數:用于在公式中分析和處理日期和時間值。

(8)過程函數:用于工程分析。

(9)信息函數:用于確定存儲在單元格中的數據的類型。

(10)財務函數:可以進行一般的財務計算。

2.輸入函數

輸入函數與輸入公式的過程類似。可以在單元格中直接輸入函數的名稱、參數,這是最快的方法。如果不能確定函數的拼寫以及函數的參數,則可以使用函數向導插入函數。

一般在編輯欄中輸入函數名稱并加上左括號之后,Excel就會打開公式選項板。公式選項板的使用方法可以參見2.2.2節的內容。

操作實例2-8輸入單個函數

其具體操作步驟如下:

(1)選中需要輸入函數的單元格。

(2)選擇“插入”|“函數”命令,或者直接單擊“常用”工具欄中的“插入函數”按鈕,打開“插入函數”對話框,如圖2-85所示。

圖2-85 “插入函數”對話框

(3)在“或選擇類別”下拉列表框中選擇所需的函數類型,則該函數類型的所有函數將顯示在“選擇函數”列表框中,在該列表框中選擇需要使用的函數。

(4)單擊“確定”按鈕完成函數的輸入。

在“插入函數”對話框中,兩個列表框下方有選中函數的說明,通過這些說明可以了解所選函數的作用。

2.3.2 常見的函數

Excel中的函數有200多個,下面列出了比較常用的Excel函數及其參數,并且進行了解釋、說明和舉例。

1.財務函數

輸入財務函數,并不需要輸入財務等式,因為Excel函數處理的速度很快,而且不容易出錯。

(1)DB函數

DB函數是用固定余額遞減法來計算一筆資產在給定期間內的折舊費。其語法如下:

DB(cost, salvage, life, period, month)

其中,cost為資產的初始價值;salvage為資產全部折舊后的剩余價值;life為資產折舊的時間長度;period為需要計算折舊值的單個時間周期,它的單位必須與life相同;month為第一年的月份數,如果缺省,則默認為12個月。

例如,要計算500000元在剩余價值為100000元,3年使用期限,如果在第一年使用了6個月的情況下,第一年的固定余額遞減折舊費的使用公式“=DB(500000, 100000, 3, l, 6)”,該公式返回182250.00。

(2)DDB函數

DDB函數利用雙倍余額遞減法或其他方法來計算指定期間內某項固定資產的折舊費。它返回加速利率的折舊費——早期大,后期小。這種方法是以資產的凈賬簿值(資產價值減去前幾年的折舊費)的百分比來計算折舊費。其語法如下:

DDB(cost, salvage, life, period, factor)

其中,前4個參數的定義可以參見DB函數。factor參數是指定余額遞減法,默認為2,表示一般的雙倍余額遞減法,如果設置為3,則表示3倍余額遞減法。

例如,要計算100000元的機器在剩余價值為10000元,5年使用期限(60個月)的折舊費,可以使用公式“=DDB(100000,10000,60,1)”來計算第一個月的雙倍余額遞減折舊費為3333.33元;使用公式“=DDB(100000,10000,5,1)”來計算第一年的雙倍余額遞減折舊費為40000.00元;使用公式“=DDB(100000,10000,5,5)”來計算第5年的雙倍余額遞減折舊費為2960.00元。

(3)PV函數

PV函數是計算某項投資的一系列等額分期償還額的現值之和或一次性償還額。其語法如下:

PV(rate, nper, pmt, fv, type)

其中,rate為各期利率;nper為投資期限;pmt為各個數額相同時的定期支付額;fv為投資在期限終止時的剩余值,其默認值為0; type用于確定各期的付款時間是在期初還是期末,type為0表示期末,type為1表示期初,其默認值為0。

例如,有一個投資機會,只需要現在投資120000元,就可以在未來5年中每年返回30000元。為決定這項投資是否可以接受,必須計算將得到的等額分期償還額30000元的現值之和。假設現在的銀行利率為4.0%,可以使用公式“=PV(4%,5,30000)”。該公式使用了pmt參數;沒有fv參數;也沒使用type參數,表示支付發生在每個周期的期末。該公式返回值為-133554.67元,意味著現在投入133554.67元才能得到每年返回的30000元。由于現在只需要120000元,因此這是一項可以接受的投資。

如果該投資不是在未來5年中每年返回30000元,而是一次性的,這時就應該使用公式“=PV(4%,5, ,150000)”。

這里必須使用逗號作為占位符來表示未用到pmt參數,以便使Excel知道150000為fv參數;這里同樣省略了type參數,其含義同上。該公式返回值為-123289.07元,意味著現在投入133554.67元才能得到5年后返回150000元,因此這仍然是一項可以接受的投資。

(4)NPV函數

NPV函數是基于一系列現金流和固定的各期利率,返回一項投資的凈現值。一般來說,任何產生大于0的凈現值都被認為有利可圖。其語法如下:

NPV(rate, valuel, value2, …)

其中,rate為各期利率;valuel, value2, …為1~29筆支出及收入的參數值。它們所屬各期間的長度必須相等,支付及收入的時間都發生在期末。NPV按次序使用valuel,value2, …來注釋現金流的次序。所以一定要保證支出和收入的數額按正確的順序輸入。

如果參數是數值、空白單元格、邏輯值或表示數值的文字表達式,則都會計算在內;如果參數是錯誤值或不能轉化為數值的文字,則被忽略。如果參數是一個數組或引用,只有其中的數值部分計算在內,忽略數組或引用中的空白單元格、邏輯值、文字及錯誤值。NPV函數在兩個重要方面不同于PV函數。PV函數假定相同的支付額,而NPV則允許可變的支付額。另一個重要區別在于PV函數允許支付和接收發生在周期開始或者結束,而NPV函數假定所有支付和接收都均等分布,發生在周期結束。如果投資費用必須在前面全部付清,則不應將此項費用作為value參數之一,而應當從函數結果中減去它。另一方面,如果該費用必須在第一期結束時付清,則應當將它作為第一個負value參數。

例如,要進行一項投資150000元,預計第一年末損失10000元,而第二年末、第三年末和第四年末分別可以獲得50000元、75000元、95000元。銀行利率為5%,要估計這項投資是否劃算,則應使用以下公式“=NPV(5%, -10000,50000,75000,95000)-150000”,其結果為28772.22元。所以這項投資可以接受。

(5)RATE函數

RATE函數用于計算得到一系列等額支付或者一次總支付的投資收益率。其語法如下:

RATE(nper, pmt, pv, fv, type, guess)

其中,nper, pmt, fv, type可以參考PV函數;pv為投資額現值;guess提供給Excel開始計算收益率的一個起點,默認值為0.1,即10%。

例如,考慮一項4年內每年可以得到100000元的投資,投資費用為320000元。要計算投資的實際收益率,可以利用以下公式“=RATE(4,100000, -320000)”。其結果為10%。準確的返回值為0.0956422744525717,但是由于答案是一個百分比,因此Excel將單元格格式轉化為百分比。

RATE函數是利用迭代過程來計算利率的。函數從給定的guess參數值開始計算投資的利潤率。如果第一個凈現值大于0,則函數選擇一個較低的利率進行第二次迭代。RATE函數繼續這個過程直到得到正確的收益率或者已經迭代20次。如果在輸入RATE函數后得到錯誤值“#NUM! ”,則Excel也許不能在20次迭代內求得收益率。選擇一個不同的guess參數為函數提供一個運行起點。

(6)IRR函數

IRR函數是計算一組現金流的內部收益率。這些現金流必須按固定的間隔發生,如按月或按年。其語法如下:

IRR(values, guess)

其中,values為數組或包含用來計算內部收益率的數字單元格的引用。允許只有一個values參數,它必須至少包括一個正數值和負數值。IRR函數忽略文字、邏輯值和空白單元格。

IRR函數根據數值的順序來解釋現金流的順序,故應確定按需要的順序輸入了支付和收入的數值。guess參見RATE函數。

IRR函數很近似于RATE函數。RATE函數和IRR函數的區別類似于PV函數和NPV函數的區別。與NPV函數一樣,IRR函數考慮了投資費用和不等支付額的問題,故其應用范圍更廣一些。

例如,要進行一項120000元的投資,并預期今后5年的凈收益分別為25000元、27000元、35000元、38000元和40000元。建立一個包含投資和收入信息簡單工作表。在工作表的A1︰A6單元格中分別輸入以下數值:-120000元、25000元、27000元、35000元、38000元和40000元。然后輸入公式“=IRR(A l︰A6)”。

計算此項投資在5年后的內部收益率,結果為11%。輸入公式“=IRR(Al︰A5)”。

計算此項投資4年后的內部收益率,結果為2%。輸入公式“=IRR(A l︰A4, -10%)”。

計算此項投資3年后的內部收益率,并由-10%的利率開始算起,結果為-14%。

2.日期與時間函數

在前面已經提過有關日期與時間的運算,Excel中將日期和時間記錄為序列數。下面簡單介紹常用的日期與時間函數。

(1)NOW函數

NOW函數返回計算機的系統日期和時間所對應的日期、時間序列數。其語法為:NOW( )例如,當前日期為1999年6月14日20:52,如果正在使用的是1900日期系統,則輸入公式“=NOW( )”,則返回36325.8697400463,如果單元格的格式為日期格式,則顯示結果為1999-6-14 20:52。10分鐘后NOW函數將返回36325.8770170139,如果單元格的格式為日期格式,則顯示結果為1999-6-14 21:02。

(2)TODAY函數

TODAY函數返回當前日期的序列數,該函數與NOW函數的作用一樣,只是不返回序列數的時間部分。工作表打開或者重新計算時Excel會更新序列數。其語法如下:

TODAY( )

(3)DATE函數

DATE函數返回某一特定日期的序列數。其語法如下:

DATE(year, month, day)

其中,year為年;month為月份,如果輸入的月份大于12,將從指定年份的一月份開始往上累加;day為在該月份中第幾天的數字,如果day大于該月份的最大天數時,將從指定月份的第一天開始往上累加。

函數DATE在那些年份、月份和日期的公式中非常有用。

例如,輸入公式“=DATE(99,5,1)”,將返回36281,此序列數對應于1999年5月1日。

(4)DATEVALUE函數

DATEVALUE函數返回date text參數所表示的序列數。它可以將文字表示的日期轉換成一個序列數。其語法如下:

DATEVALUE(date_text)

其中,date text參數可以是Excel預定義的任何日期格式。

例如,要返回1998年6月1日的序列數,可以使用公式“=DATEVALUE("06-01-98")”,將返回35947。

(5)NETWORKDAYS函數

NETWORKDAYS函數返回參數start_data和end_data之間總的工作天數。計算工作天數時應注意工作日不包括周末和專門指定的假期。其語法如下:

NETWORKDAYS=(start_date, end_date, holidays)

其中,start_date為起始日期的日期值;end_date為終止日期的日期值;holidays為可選清單,指需要從工作日歷中排除的日期值,如各種法定假日或自定假日。

如果該函數不存在,運行“安裝”程序來加載“分析工具庫”,安裝完畢之后,必須通過選擇“工具”|“加載宏”命令,在“加載宏”對話框中選擇并啟用它。

如果任何參數為非法日期值,函數NETWORKDAYS將返回錯誤值“#NUM! ”。

例如,要計算1998年3月1日到1998年3月19日的總工作天數(除去節假日和3月8日),則使用公式“=NETWORKDAYS(DATEVALUE("03-01-98")”, DATEVALUE("03-19-98"), DATEVALUE("03-08-98")”,其結果為14。

(6)WEEKDAY函數

WEEKDAY函數返回與serial_number對應的序列數是星期幾。其值為1~7之間的整數。其語法如下:

WEEKDAY(serial_number, return_type)

其中,serial_number為日期-時間代碼,它可以是數字,也可以是文本,如“30-Apr-1998”或者35915; return_type為可選,用以確定一星期從哪天開始,默認值由星期日開始為1,到星期六為7;其值為2,則由星期一開始為1,到星期日為7;其值為3,則由星期一開始為0,到星期日為6。

例如,要想知道1998年12月25日是星期幾,可以輸入公式“=WEEKDAY("12-25-98", 2)”,其結果為5,即星期五。

(7)EOMONTH函數

EOMONTH函數返回start_date之前或之后指定月份中最后一天的日期序列數。其語法如下:

EOMONTH(start_date, months)

其中,start_date為起始日期的日期值;months為start_date之前或之后的月數。如果是正數,指將來的日期,如果是負數,指過去的日期。

例如,要想知道這個月底的序列數,可以使用公式(設今天為1998年10月1日)“=EOMONTH(TODAY( ),0)”,其結果為36099或10/31/98。

3.數學與三角函數

數學與三角函數是工作表中大部分計算的基礎,特別是在它當中可以找到大多數科學與過程函數。

(1)SUM函數

SUM函數用于計算一系列數字之和。其語法如下:

SUM(numberl, number2, …)

其中,numberl, number2, …為1~30個需要求和的參數,它們可以是數字、公式、范圍或者產生數字的單元格引用。

SUM函數忽略數組或引用中的空白單元格、邏輯值、文本。如果參數為錯誤值或為不能轉換成數字的文本,將會導致錯誤。

例如,輸入公式“=SUM(13, 12)”,其結果為25。而輸入公式“=SUM("13", 22, TRUE)”,其結果為36,因為文本值被轉換成數字,而邏輯值TRUE被轉換成數字1。

如果單元格A1中為TEXT,輸入公式“=SUM(13, 22, A1)”,其結果為35,因為Excel忽略了文本。

如果單元格A1:A5包含10、20、30、40和50,則輸入公式“=SUM(A l:A3)”,結果為60。而輸入公式“=SUM(A l:A5,100)”,其結果為250。

(2)ROUND函數

ROUND函數將參數引用的數舍入到指定的小數位數。其語法如下:

ROUND(number, num_digits)

其中,number為需要進行舍入的數值、包含數值的單元格引用或者結果為數值的公式;num_digits為舍入的位數,可以為任意整數。當它為負數時將舍入小數點左邊的位數;當它為0時將舍入最近的整數。在Excel中,下舍小于5的數字,上入大于或等于5的數字。如表2-6所示的是ROUND函數的幾個例子。

表2-6 ROUND函數返回值

(3)EVEN函數

EVEN函數返回沿絕對值增大方向取整后最接近的偶數。其語法如下:

EVEN(number)

其中,number為要取整的數值。如果number為非數值參數,則EVEN函數返回錯誤值“#VALUE! ”。

不論number的正負號如何,函數都向遠離零的方向舍入,如果number恰好是偶數,則無需進行任何舍入處理。如表2-7所示的是EVEN函數的幾個例子。

表2-7 EVEN函數返回值

(4)PI函數

PI函數返回常量 π的精確到14個小數位的數值是3.14159265358979。其語法如下:

PI( )

PI函數沒有參數,通常嵌套在公式或其他函數中。

例如,要計算圓的面積,可以用 π乘以圓半徑的平方。輸入公式“= PI( )*(5^2)”,其計算半徑為5的圓的面積。結果舍入到兩個小數位后是78.54。

(5)RADIANS函數

RADIANS函數用來將角度轉換為弧度。三角函數是以弧度而不是角度來度量角度的。弧度根據常量 π計算角度的大小,其中180° 定義為 π弧度。其語法如下:

RADIANS(angle)

其中,angle為用度數度量的角度。

例如,輸入公式“=RADIANS(180)”,其返回3.14159265358979。

(6)SIN函數

SIN函數返回角度的正弦值。與之類似的有求余弦值的COS函數,求正切值的TAN函數。SIN函數的語法如下:

SIN(angle)

其中,angle為以弧度度量的角度。

如果已知角度要求其正弦值,可以將角度乘以 π/180,或者用RADIANS函數轉換成弧度。

例如,要計算30度的正弦值,可以使用公式“=SIN(30*PI( )/180)”或者“=SIN(RADIANS(30))”,其結果返回0.5。

(7)ASIN函數

ASIN函數返回角度的反正弦值。與之類似的有求反余弦值的ACOS函數,求反正切值的ATAN函數。ASIN函數的語法如下:

ASIN{number}

其中,number為角度的正弦值,介于-1~1之間。ASIN函數總是返回-π/2~π/2之間的一個弧度值。

例如,輸入公式“=ASIN(0.5)”,將返回0.523598775598299,即 π/6。

4.統計函數

統計函數可以幫助用戶處理一些簡單的問題,如計算平均值、計算某些項目的個數等。統計函數還可以進行一些簡單的統計分析,如標準偏差、方差等。

(1)AVERAGE函數

AVERAGE函數返回參數平均值(算術平均值)。其語法如下:

AVERAGE(numberl, number2, …)

其中,numberl, number2, …為要計算平均值的1~30個參數,參數可以是單個值或者范圍,范圍包括數字、單元格引用或者包含數字的數組。AVERAGE函數忽略文本、邏輯值或空單元格。

例如,C12:C15單元格中分別是以下的數值:2、3、4、5,輸入公式“=AVERAGE(C12:C15)”,則返回3.5。而輸入公式“=AVERAGE(C12:C15,11)”,則返回5。

(2)COUNT函數

COUNT函數返回參數中數字的個數。其語法如下:

COUNT(valuel, value2, …)

其中,valuel, value2, …為要計算數字個數的1~30個參數,參數可以是單個值或者范圍,范圍包括數字、單元格引用或者包含數字的數組。COUNT函數忽略文本、邏輯值或空單元格,只計算數字類型的數據個數。

如果要統計邏輯值、文字或錯誤值,則使用函數COUNTA。

例如,A6:A9分別是l、2、3、4,則輸入公式“=COUNT(A6:A9)”,則返回4。如果A8為空白單元格,則該公式返回3。

(3)COUNTA函數

COUNTA函數返回參數中非空白值的個數。其語法如下:

COUNTA(valuel, value2, …)

其中,valuel, value2, …為要計算非空白值個數的1~30個參數,參數可以是單個值或者范圍,范圍包括數字、單元格引用或者包含數字的數組。COUNTA函數忽略數組或者單元格引用中的空單元格。

例如,B14是唯一的空單元格,則輸入公式“=COUNTA(B1:B15)”,則返回14。

(4)STDEV函數

STDEV函數是計算某一樣本的標準偏差。其語法如下:

STDEV(numberl, number2, …)

其中,numberl, number2, …為對應于總體樣本的1~30個參數。

STDEV函數忽略邏輯值(TRUE或FALSE)和文本。如果不能忽略邏輯值和文本,應使用STDEVA函數。如果數據代表全部樣本總體,則應該使用STDEVP函數來計算標準偏差。

例如,要計算在B5:B14中樣本值45、13、68、32、10、70、18、10、50、29的標準偏差,使用公式“=STDEV(B5:B14)”,將返回19.7329391852529。

(5)DEVSQ函數

DEVSQ函數返回數據點與各自樣本均值偏差的平方和。其語法如下:

DEVSQ(numberl, number2, …)

其中,numberl, number2, …參數參見STDEV函數。

例如,要計算在A2:A11中樣本值15、23、78、72、70、60、56、17、58、99的均值偏差的平方和,使用公式“=DEVSQ(A2:A11)”,將返回7081.6。

(6)MAX函數

MAX函數返回參數中的最大值。其語法如下:

MAX(numberl, number2, …)

其中,numberl, number2, …為需要找出最大數值的1~30個數值。參數可以是單個值或者范圍,范圍包括數字、單元格引用或者包含數字的數組。MAX函數忽略文本、邏輯值或空單元格,只考慮數字類型的數據大小。如果邏輯值和文本不能忽略,使用函數MAXA來代替;如果參數不包含數字,MAX函數將返回0。

例如,單元格C1:D3包含數字-2、4、32、30、10、7,則輸入公式“=MAX(Cl:D3)”,將返回32。

5.查找及引用函數

當用戶需要確定單元格內容、范圍或者選擇的范圍時,查找及引用函數顯得非常有用。

(1)ADDRESS函數

ADDRESS函數返回指定的單元格引用,結果用文本形式來表示。其語法如下:

ADDRESS(row_num, column_num, abs_num, al, sheet_text)

其中,row_num為單元格引用中的行號;column_num為單元格引用中的列號;abs_num用以指定引用類型,默認值為1,即表示絕對引用;當其為2時,表示絕對行,相對列;當其為3時,表示相對行,絕對列;當其為4時,表示相對引用;a1用以指明引用樣式,默認值為TRUE,即返回A1形式的引用,如果其為FALSE,即返回R1C1形式的引用;sheet_ text是文本,指明作為外部引用的工作表名,如果省略,則不使用任何工作表名。

例如,輸入公式“=ADDRESS(15,4,2, TRUE)”,將返回D$l5。而輸入公式“=ADDRESS(10,5,4, FALSE)”,將返回R10C5。

(2)VLOOKUP函數

VLOOKUP函數用于查找所構造的表格中存放的信息。當在表格中查找信息時,一般用行索引或者列索引來定位特定單元格。Excel在利用這種方式時做了一些變動,即通過查找第一列中小于或者等于用戶所提供的最大值來得到一個索引,然后用另一指定參數作為其他索引。這樣可以根據表格中的信息查找數值,而不必確切地知道數值在哪里。其語法如下:

VLOOKUP(lookup_value, table_array, col_index_num, range lookup)

其中,lookup_value為要在表格中查找以得到第一個索引的數值。它可以為數值、引用或文字串;table_array為定義表格的數組或者范圍名稱;其第一行的數值可以為文本、數字或邏輯值;col_index_num為開始選擇結果的表格列(第二個索引),當其值為1時,返回table_array第一列的數值,當其值為2時,返回table_array第二列的數值,以此類推。

如果其值小于1, VLOOKUP函數返回錯誤值“#VALUE! ”;如果其值大于table_array的列數,VLOOKUP函數返回錯誤值“#REF! ”; range_lookup為一邏輯值,指明函數VLOOKUP查找時是精確匹配還是近似匹配,其默認值為TRUE,此時函數返回近似匹配值,如果其為FALSE, VLOOKUP函數將查找精確匹配值,如果找不到,則返回錯誤值“#N/A! ”。

例如,要在如圖2-86所示的表格中檢索數據,輸入公式“=VLOOKUP(42, A2:C6, 3)”,其返回值為24。

圖2-86 要檢索數據的表格

其檢索過程如下:先找到包含比較值的列,這里為列A,接下來掃描比較值查找小于或者等于lookup value的最大值。由于第4個比較值40小于41,而第5個比較值50又大于41,因此以包含40的行(即行5)作行索引。列索引是col_index_num參數,這里是3,因此列C中包含所要的數據。由此可以得到單元格C5中的數值24。

(3)HLOOKUP函數

HLOOKUP函數在表格或數值數組的首行查找指定的數值,并由此返回表格或數組當前列中指定行處的數值。HLOOKUP的用法可以參看VLOOKUP。其語法如下:

HLOOKUP(lookup_value, table_array, col_index_num, range_lookup)

(4)OFFSET函數

OFFSET函數返回具有指定高度和寬度,位于相對于另一個引用的指定位置的引用。其語法如下:

OFFSET(reference, rows, cols, height, width)

其中,reference為計算偏移的起點位置;rows指定reference參數和被返回引用之間的垂直距離,正值指定相對reference參數向下偏移;cols指定reference參數和被返回引用之間的水平距離,正值指定相對reference參數向右偏移;height為高度,即所要返回的引用區域的行數,它必須為正數,如果省略則以reference參數的高度為高度;width為寬度,即所要返回的引用區域的列數,它必須為正數,如果省略則以reference參數的寬度為寬度。

例如,輸入公式“=OFFSET(A3:C5, -1,0,3,3)”,將返回A2:C4單元格引用。一般OFFSET函數不單獨使用,它與需要將引用作為參數的函數連用,如輸入公式“=SUM(OFFSET(a3:C5, -1,0,3,3))”,將返回A2:C4單元格區域數值之和。

(5)INDIRECT函數

INDIRECT函數可以從單元格引用找到單元格的內容。其語法如下:

INDIRECT(ref_text, a1)

其中,ref_text為一個A1形式的引用、R1C1形式的引用或者單元格名稱,如果它的輸入項無效,則函數返回錯誤值“#REF! ”; a1為一個邏輯值,指示使用的是哪一種引用的類型。如果其值為FALSE,則Excel將其解釋為R1C1格式;如果其值為TRUE(默認值),則Excel將其解釋為A1格式。

例如,工作表的單元格C5包含文本B2,而單元格B2中為數值17,則輸入公式“=INDIRECT(c5)”,其返回值為17。如果工作表設置為R1C1格式的引用,而且單元格R5C3包含單元格R2C2的引用,單元格R2C2中為數值17,則輸入公式“=INDIRECTT(R5C3, FALSE)”,其返回值為17。

(6)INDEX函數

INDEX函數返回指定范圍中特定行與特定列交叉點上的單元格引用。其語法如下:

INDEX(reference, row_num, column_num, area_num)

其中,reference指定一個或多個區域的引用,如果指定多個區域,則必須用括號括起來,區域之間要用逗號隔開;row_num指定引用中的行序號;column_num指定引用中的列序號;area_num指定reference所確定的幾個區域中的某個,其默認值為1。

例如,輸入公式“=INDEX((D5:F9, D10:F14),1,2,2)”,返回區域D10:F14中第1行、第2列的單元格引用。

6.數據庫函數

Excel中各個數據庫都使用同樣的參數:數據庫(database),字段(field)和條件(criteria)。函數DAVERAGE中討論的參數說明適用于所有的數據庫函數。

(1)DAVERAGE函數

DAVERAGE函數計算滿足查詢的數據庫記錄中給定字段內數值的平均值。其語法如下:

DAVERAGE(database, field, criteria)

其中,database為構成數據清單或數據庫的單元格區域,它可以是一個范圍或者一個范圍引用的名稱;field指定函數所使用的數據列,它可以是引號中的字段名,包含字段名的單元格引用或者是數字;criteria為對一組單元格區域的引用,這組單元格區域用來設定函數的匹配條件。數據庫函數可以返回數據清單中與條件區域所設定的條件相匹配的信息。條件區域包含了函數所要匯總的數據列(即field)在數據清單中的列標志的一個副本。

例如,如圖2-87所示的工作表,單元格A3:C15為數據庫區域,要統計收入大于5000元的收入平均值,在區域E3:G4上輸入如圖的條件,使用公式“=DAVERAGE(a3:C15, "收入", E3)”,將得到收入平均值為7575.65333333333。

圖2-87 數據庫區域

(2)DCOUNT函數

DCOUNT函數用于計算數據庫中給定字段滿足條件的記錄數。其語法如下:

DCOUNT(database, field, criteria)

其中,參數field為可選項,如果省略,DCOUNT函數將返回數據庫中滿足條件criteria的所有記錄數;其他參數參見DAVERAGE函數。

例如,如圖2-87所示的數據庫區域,要統計收入大于5000元的記錄數,可以使用公式“=DCOUNT(a3:C15, E3:G4)”,得到的結果為9。

(3)DSTDEVP函數

DSTDEVP函數將數據清單或數據庫的指定列中滿足給定條件單元格中的數字作為總體樣本計算其標準偏差。其語法如下:

DSTDEVP(database, field, criteria)

其中,各參數與DAVERAGE函數相同。

例如,如圖2-87所示的數據庫區域,要計算收入大于5000元的樣本的標準偏差,可以使用公式“=DSTDEVP(a3:C15, "收入", E3:G4)”

將得到結果為1082.06790399986。

(4)DMAX函數

DMAX函數將返回數據庫中滿足條件的記錄中給定字段的最大值。其語法如下:

DMAX(database, field, criteria)

其中,各參數與DAVERAGE函數相同。

例如,圖2-87所示的數據庫區域,要查找收入大于5000元的記錄中支出的最大值,可以使用公式“=DMAX(a3:C15, "支出", E3:G4)”,將返回結果6571.69。

7.文本函數

文本函數又稱為字符串函數,對于處理轉化到ASCII文件的文本以及要裝載到主機的文本,都是非常重要的。

(1)CONCATENATE函數

CONCATENATE函數是返回將給出的幾個字符串合并的一個字符串。其語法如下:

CONCATENATE(Textl, Text2, …)

其中,Textl, Text2, …為1~30個將要合并成單個字符串的文本。這些文本可以是字符串、數字或單個單元格引用。

例如,輸入公式“=CONCATENATE("Welcome", "President! ")”,將返回合成字符串“Welcome President”。

又例如,根據圖2-87所示的工作表,輸入公式“=CONCATENATE("今年", A8, "的", B3, "為", B8, "元")”,將返回今年5月的收入為6541.89元。

(2)VALUE函數

VALUE函數將以文本形式輸入的數字轉換成數值。其語法如下:

VALUE(text)

其中,text為括在雙引號內的字符串,也可以是包含文字的單元格引用。它可以是任何可識別的格式,包括自定義的格式。如果它不是其中的任何一種格式,VALUE函數將返回錯誤值“#VALUE! ”。

例如,輸入公式“=VALUE("13425")”,將返回13425。如果單元格B5中文本為13425,則輸入公式“=VALUE(B5)”,也返回13425。

VALUE函數還可以將日期和時間格式的文本轉換為日期值,例如,輸入公式“=VALUE("1-1-1998")”,將返回日期系列值35796。

(3)FIXED函數

FIXED函數將數字四舍五入到指定的小數位數,用逗號和一個圓點來格式化結果,并以文本形式顯示結果。其語法如下:

FIXED(number, decimals, no_commas)

其中,number為要轉換成字符串的數;decimals為一個整數,當其為正值時指定小數點右邊的位數,為負值時指定小數點左邊的位數;no_commas為邏輯值,用于指定結果中是否要包括逗號,其默認值為FALSE,即在結果中插入逗號。

例如,輸入公式“=FIXD(5986.432,2, TRUE)”,將返回字符串5986.43。而輸入公式“=FIXD(5986.432, -l, FALSE)”,將返回字符串5990。

(4)LEN函數

LEN函數返回輸入項中的字符個數,其語法如下:

LEN(text)

其中,text為要計算字符個數的字符串,它可以是括在括號里的文本,也可以是單元格引用。

例如,輸入公式“=TEXT("text")”,返回4。如果單元格B5中包含字符串text,則輸入公式“=TEXT(B5)”,也返回4。

LEN函數返回顯示文字或者數值的長度,而不是基本單元格內容的長度。

例如,如果單元格B5中公式“=BI+B2+B3+B4”,則計算結果為98。而輸入公式“=LEN(B5)”,將返回數值98的長度2。

(5)REPLACE函數

REPLACE函數用某一文字串替換另一個字符串中的全部或者部分內容。其語法如下:

REPLACE(old_text, start_num, num_chars, new_text)

其中,old_text為被替換的字符串;start_num為old_text中要替換為new_text字符的起始位置;num_chars為old_text中要替換為new_text字符的個數;new_text為用于替換old_ text字符的字符串。

例如,單元格A5中為字符串“Hello, Kitty! ”,要將其放到單元格B1中,并用字符串“Windy? ”來替換其中的“Kitty”,則選擇B1單元格,然后使用公式“=REPLACE(a5, 7,5, "Kitty")”,得到的結果為“Hello, Windy! ”

(6)REPT函數

REPT函數將指定字符串重復指定次數作為新字符串填充單元格。其語法如下:

REPT(text, number_times)

其中,text指定要重復的字符串;number_times為重復的次數,它可以是任意整數,但重復的結果不能超過255個字符,如果其值為0,則REPT函數保持單元格為空白,如果它不是整數,則忽略其小數部分。

例如,要想得到100個“-”,可以使用公式“=REPT("-",100)”,結果是一個由100個“-”組成的字符串。

(7)SEARCH函數

SEARCH函數返回一個指定字符或者字符串首次出現在另外一個字符串中的起始位置,其語法如下:

SEARCH(find_text, within_text, start_num)

其中,find_text為要查找的字符串,可以在其中使用通配符問號“? ”和星號“*”,問號可以匹配任何單個字符,星號匹配任何字符序列。如果要查找實際的問號或星號,那么應在該字符前加一個代字符(~)。如果找不到find-text,函數返回錯誤值“#VALUE! ”;within_text為被查找的字符串;start_num為開始查找的位置,默認值為1,從左邊開始搜索,如果其值為小于等于0或大于within_text的長度,則返回錯誤值“#VALUE! ”。

例如,輸入公式“=SEARCH("here", "Welcome here! ")”,返回9,而輸入公式“=SEARCH("a? d", "Welcome here, ladies and gentlemen! ")”,返回21。

8.邏輯函數

邏輯函數是功能強大的工作表函數,它可以使用戶對工作表結果進行判斷和邏輯選擇。

(1)IF函數

IF函數返回根據邏輯測試真假值的結果。它可以對數值和公式進行條件檢測。其語法如下:

IF(logical_test, value_if_true, value_if_false)

其中,logical_test為邏輯值,它可以是TRUE或者FALSE,也可以是計算結果為TRUE或FALSE的任何數值或表達式。Value_if_true是logical_test為TRUE時函數的返回值,可以是某一個公式。如果logical_test為TRUE并且省略value_if_true,則返回TRUE。Value_if_false是logical_test為FALSE時函數的返回值,可以是某一個公式。如果logical_test為FALSE并且省略Value_if_false,則返回FALSE。

IF函數最多可以嵌套7層,方法是用value_if_true及value_if_false參數構造復雜的檢測條件。

例如,判斷單元格B5中的數值是否小于60, “是”則返回“FAIL! ”, “否”則返回“PASS! ”,可以使用公式“=IF(B5<60, "FAIL! ", "PASS! ")”如果還要對PASS的情況細分等級,即60~85為“FINE! ”,85及以上為“EXCELIENT! ”,可以使用嵌套公式“=IF(B5<60, "FAIL! ", IF(B5<85, "FINE! ", "EXCELLENT! "))”,這樣可得到所需的等級。

(2)AND函數

AND函數是判斷所有參數的邏輯值是否為真,“是”則返回“TRUE”,只要有一個邏輯值為假即返回“FALSE”。其語法如下:

AND(logical1, logical2, …)

其中,logical1, logical2, …為1~30個邏輯值參數,各邏輯值參數可以為單個邏輯值TRUE或FALSE,也可以是包含邏輯值的數組或者單元格引用。如果數組或者單元格引用中包含文字或空單元格,則忽略其值。如果指定的單元格區域內包括非邏輯值,AND將返回錯誤值“#VALUE! ”。

例如,要判斷單元格B10中的數值是否大于5而且小于10,可以使用公式“=AND(B10>5, B10<10)”,則當B10單元格的數值大于5而且小于10時返回“TRUE”,否則返回“FALSE”。

(3)NOT函數

NOT函數對給定參數的邏輯值求反。其語法如下:

NOT(logical)

其中,logical是一個邏輯值參數,可以是單個邏輯值TRUE或FALSE或者是邏輯表達式。如果邏輯值為FALSE,函數返回TRUE;如果邏輯值為TRUE,函數返回FALSE。

例如,輸入公式“=NOT(B5=10)”,在B5單元格數值等于10時返回“FALSE”,否則返回“TRUE”。

(4)OR函數

OR函數判斷給定參數中的邏輯值是否為真,只要有一個為真即返回“TRUE”,如果全部為假,則返回“FALSE”。其語法如下:

OR(logical1, logical2, …)

其中,logical1, logical2, …與AND函數相同。

例如,要判斷單元格C6中是否為10或者20,可以使用公式“=OR(C6=10, C6=20)”,當單元格中是10或20時返回“TRUE”,否則返回“FALSE”。

主站蜘蛛池模板: 乐东| 容城县| 衡阳市| 霍州市| 晋城| 延长县| 雷波县| 宜春市| 本溪市| 镇原县| 达尔| 广东省| 家居| 荆门市| 河北省| 龙川县| 高陵县| 安图县| 隆回县| 崇礼县| 沅江市| 东兰县| 阿巴嘎旗| 英德市| 澄迈县| 会泽县| 宾川县| 藁城市| 通化市| 安义县| 荃湾区| 定州市| 德惠市| 南开区| 邛崃市| 巫溪县| 苍梧县| 许昌县| 通州市| 阜新市| 临西县|