線上學習
About Us

線上文檔

首頁 >>線上學習 >>線上文檔

第19章:運算式函數詳解

19.1 常量

運算式中可包含數字型、字元型或日期型的常量。數字型常量的表達就是數位本身;字元型常量表示為用單引號括起來的字串,如’abc’北京等;日期型常量表示為用單引號括起來的日期,寫成月//年的格式。如10/01/2005表示“2005101”這一日期。

另外注意字元型常量和日期型常量兩端的單引號一定要是英文的單引號,而不能是中文的單引號‘或’。

Excel伺服器的示例資料庫中,有一個名為《常量》的模版,其中的表間公式示例了常量的用法。

19.2 邏輯運算式

表間公式或回寫公式的篩選條件是一個邏輯運算式。所謂邏輯運算式就是一個判斷,它的結果只有兩種可能,或者為“真”,或者為“假”。

 

最簡單的邏輯運算式就是一個關係判斷(又稱關係運算式),它用“=”、“<>”、“>”、“>=”、“<”、“<=”、“形如”、“屬於”、“不屬於”等關係運算符連接左右兩端,如:

 

客戶表.登記日期>=本報表.Sheet1:日期

間隔時間(dd,客戶表.登記日期,系統變數.當前日期)>=30

訂單_主表.合計金額>20000

 

若干個關係運算式,可通過“並且”、“或者”、“不滿足”三個邏輯運算符連接起來,表達更複雜的邏輯關係,如:

 

(客戶表.登記日期>=本報表.Sheet1:日期 並且 客戶表.大區=’京津

(本報表.Sheet1:查詢品名=’’ 或者 (訂單_明細.產品名稱=本報表.Sheet1:查詢品名 並且 訂單_主表.已發貨=’’)

 

關係運算符

=:左端等於右端,要求兩端資料類型相同

<>:左端不等於右端,要求兩端資料類型相同

>=:左端大於右端,要求兩端資料類型相同

>=:左端大於或等於右端,要求兩端資料類型相同

<:左端小於右端,要求兩端資料類型相同

<=:左端小於或等於右端,要求兩端資料類型相同

形如:要求左右兩端都為字元型的資料,且左端字串中包含右端字串,如

中華人民共和國 形如 中國         成立

中國 形如 中華人民共和國         不成立

 

屬於、不屬於:要求右端必須是集合函數,詳見本章第6

邏輯運算符

並且:當AB都成立時,“A並且B”成立。

或者:當AB中有一個成立時,“A或者B”成立。

不滿足:當A成立時,“不滿足A”不成立。當A不成立時,“不滿足A”成立。例如:“不滿足(1>2)”成立。

19.3 統計函數

統計函數不能用於回寫公式,也不能用於表間公式的篩選條件,而只能用於表間公式的填充方式。

 

Excel伺服器提供了7個統計函數:合計、平均、計數、最大值、最小值、最早、最晚。它們都只有一個參數----某資料表中的欄位名,其作用是對該欄位的若干取值進行統計。

 

合計:要求參數欄位元為數字型,返回該欄位元取值的合計值。

平均:要求參數欄位元為數字型,返回該欄位元取值的平均值。

計數:不限參數欄位的類型,返回該欄位取值的個數。

最大值:不限參數欄位的類型,返回該欄位取值中的最大者。對字元型欄位,若為英文,大小按字母順序排序;若為中文,大小按中文拼音的字母順序排序。

最小值:不限參數欄位的類型,返回該欄位取值中的最小者。對字元型欄位,若為英文,大小按字母順序排序;若為中文,大小按中文拼音的字母順序排序。

最早:要求參數欄位為日期型,返回該欄位取值中的最早日期。(同最小值)

最晚:要求參數欄位為日期型,返回該欄位取值中的最晚日期。(同最大值)

 

示例資料庫中提供了一個模版《統計函數》,其中的表間公式示例了各種統計函數的用法。

 

19.4 日期函數

Excel伺服器提供了比較豐富的日期函數,比較常用的有:

 

年份值、月份值、日期值、星期

求日期型資料的年份、月份、日期和星期,返回值為整數。如年份值(‘12/23/2005’)=2005,月份值(‘12/23/2005’)=12

 

此年、此月、此季

返回某個時間區間,要求與關係運算符“介於”一起使用。例如:01/15/2005 介於 此月(2005,1),表示日期“2005115”介於20051月份之內。

 

日期加減

在某基準日期的基礎上,增加或減少幾個時間單位(天/////小時)。得到一個新的日期。例如:日期加減(dd,-2,’01/10/2005’),返回的是“2005110”的前2天的日期,即“200518”。

 

年初、年末、月初、月末

返回指定時間段的起始(或結尾)那一天的日期。例如:月末(2005,7),返回20057月份月末那一天的日期,即“2005731”。

 

間隔時間

返回兩個指定日期之間的間隔時間單位,結果為整數。例如:

間隔時間(dd,’01/01/2005’,’02/01/2005’)返回200511200521之間的間隔天數,結果為31

間隔時間(mm,’01/01/2005’,’02/01/2005’)返回200511200521之間間隔的月數,結果為1

 

在示例資料庫中提供了一個模版《日期函數》,其中的表間公式例示了日期函數的用法。

19.5 字串函數

取子串(<字串>,<起始位置>,<截取長度>):此函數截取指定字串的一部分。比如:取子串(′abcdefg′,2,3),返回子串"bcd"

字串長度(<字串>):此函數返回指定字串的長度。

轉大寫(<字串>):此函數將字串中的小寫字母轉換成大寫字母。

 

在示例資料庫中提供了一個模版《字串函數》,其中的表間公式例示了字串函數的用法。

19.6 集合函數

集合函數只有一個:此集合(<1>,<2>,…,<n>),此函數必須和關係運算符“屬於”或“不屬於”一起使用。

 

集合函數的具體使用方法,請參見示例資料庫中的模版《集合函數》

19.7 系統變數

Excel伺服器提供的系統變數有:當前用戶姓名、當前用戶登錄名、當前任務名稱、當前用戶所在部門、當前用戶部門編號、當前用戶部門全稱、當前用戶所在機構、當前用戶所在機構全稱、當前日期、當前日期時間。

19.8 輸入變數

我們在定義表間公式的篩選條件時,經常會把資料表中的欄位內容和本報表上的欄位內容比較,比如:

客戶表.登記日期>=本報表.Sheet1:起始日期。

 

在這裏,“本報表.Sheet1:起始日期”,就是一個變數,它的取值為應用公式的那一時刻“起始日期”所對應的單格的值。

假如我們希望篩選條件中的變數取值不是來自Excel工作表上的單格內容,而是在應用公式的那一時刻彈出輸入視窗,由用戶手工輸入,就需要用到輸入變數。這是,上面的條件可以改寫為:

客戶表.登記日期>=輸入.起始日期[D]

 

其中的[D]表示用戶輸入的起始日期一定要是日期型。

 

在示例資料庫中提供了一個模版《輸入變數》,其中定義了一個打開後自動運行的表間公式:

 

提取<客戶表>中滿足下列條件的資料:

    <數據篩選: 客戶表.登記日期 >= 輸入.起始日期[D]>

按以下方式填入<輸入變數_明細>:

客戶表.客戶編號  --->(填入值)  客戶編號

客戶表.客戶名稱  --->(填入值)  客戶名稱

客戶表.登記日期  --->(填入值)  登記日期

 

填報此模版,公式自動運行,彈出輸入對話方塊,如下圖所示,當用戶輸入起始日期後按【確定】,自動查詢出在指定日期之後登記的客戶資訊。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19-1

 

19.9 Excel擴展函數

 

Excel伺服器提供了幾個擴展函數,用戶可以直接在Excel的單格中寫公式,使用這些函數。

轉金額大寫

語法:ESF_mnyToCap(<數字>)

功能:把參數值轉換為金額的中文大寫形式。

參數:數字型的運算式,可以是數位常量、單元個位址等。

示例:

 

在我們的訂單範本中,C1單格是一個公式:=”人民幣(大寫” & ESF_mnyToCap(H11),如圖。即,把H11處的訂單合計金額轉換成中文大寫,前面加“人民幣(大寫)”字樣。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19-2

漢字拼音字頭

語法:ESF_pinyin(<字串>,[n])

功能:提取指定字串中前n個字的中文拼音字頭。

參數:

       第一個參數是待提取的字串運算式

       第二個參數是提取的字數。即,若為1,則提取第一個字的首字母,若為2,則提取前兩個字的首字母,如果省略,則提取所有漢字的首字母

 

示例:

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

在我們的客戶登記表範本中,我們可以在I3單格增加一個欄位“簡稱”,輸入Excel公式:=ESF_pinyin(C3),則把C3處輸入的中文名稱轉換成其每個漢字的拼音首字母。

阿拉伯數字改成美元金額大寫

語法:ESF_mnyToUSCap(<數字>)

功能:把參數值轉換為美元金額大寫形式。

參數:數字型的運算式,可以是數位常量、單格位址等。

用法與ESF_mnyToCap(<數字>)類似。