>第16章,、表達(dá)式函數(shù)詳解16.1 常量表達(dá)式中可包含數(shù)字型、字符型或日期型的常量,。數(shù)字型常量的表達(dá)就是數(shù)字本身,;字符型常量表示為用單引號括起來的字符串,如’abc’,,’北京’等,;日期型常量表示為用單引號括起來的日期,寫成月/日/年的格式,。如’10/01/2005’表示“2005年10月1日”這一日期,。 另外注意字符型常量和日期型常量兩端的單引號一定要是英文的單引號,而不能是中文的單引號‘或’,。 在Excel服務(wù)器的示例數(shù)據(jù)庫中,,有一個名為《常量》的模版,,其中的表間公式示例了常量的用法。 16.2 邏輯表達(dá)式表間公式或回寫公式的篩選條件是一個邏輯表達(dá)式,。所謂邏輯表達(dá)式就是一個判斷,,它的結(jié)果只有兩種可能,或者為“真”,,或者為“假”,。 最簡單的邏輯表達(dá)式就是一個關(guān)系判斷(又稱關(guān)系表達(dá)式),它用“=”,、“<>”,、“>”、“>=”,、“<”,、“<=”、“形如”,、“屬于”,、“不屬于”等關(guān)系運(yùn)算符連接左右兩端,如: 客戶表.登記日期>=本報表.Sheet1:日期 間隔時間(dd,,客戶表.登記日期,,系統(tǒng)變量.當(dāng)前日期)>=30 訂單_主表.合計(jì)金額>20000 若干個關(guān)系表達(dá)式,可通過“并且”,、“或者”,、“不滿足”三個邏輯運(yùn)算符連接起來,表達(dá)更復(fù)雜的邏輯關(guān)系,,如: (客戶表.登記日期>=本報表.Sheet1:日期 并且 客戶表.大區(qū)=’京津’) (本報表.Sheet1:查詢品名=’’ 或者 (訂單_明細(xì).產(chǎn)品名稱=本報表.Sheet1:查詢品名 并且 訂單_主表.已發(fā)貨=’是’)) 關(guān)系運(yùn)算符=:左端等于右端,,要求兩端數(shù)據(jù)類型相同 <>:左端不等于右端,要求兩端數(shù)據(jù)類型相同 >=:左端大于右端,,要求兩端數(shù)據(jù)類型相同 >=:左端大于或等于右端,,要求兩端數(shù)據(jù)類型相同 <:左端小于右端,要求兩端數(shù)據(jù)類型相同 <=:左端小于或等于右端,,要求兩端數(shù)據(jù)類型相同 形如:要求左右兩端都為字符型的數(shù)據(jù),,且左端字符串中包含右端字符串,如 ’中華人民共和國’ 形如 ‘中國’ 成立 ‘中國’ 形如 ‘中華人民共和國’ 不成立 屬于,、不屬于:要求右端必須是集合函數(shù),,詳見本章第6節(jié) 邏輯運(yùn)算符并且:當(dāng)A和B都成立時,“A并且B”成立,。 或者:當(dāng)A和B中有一個成立時,,“A或者B”成立,。 不滿足:當(dāng)A成立時,,“不滿足A”不成立,。當(dāng)A不成立時,“不滿足A”成立,。例如:“不滿足(1>2)”成立,。 16.3 統(tǒng)計(jì)函數(shù)統(tǒng)計(jì)函數(shù)不能用于回寫公式,也不能用于表間公式的篩選條件,,而只能用于表間公式的填充方式,。 Excel服務(wù)器提供了7個統(tǒng)計(jì)函數(shù):合計(jì)、平均,、計(jì)數(shù),、最大值、最小值,、最早,、最晚。它們都只有一個參數(shù)----某數(shù)據(jù)表中的字段名,,其作用是對該字段的若干取值進(jìn)行統(tǒng)計(jì),。 合計(jì):要求參數(shù)字段為數(shù)字型,返回該字段取值的合計(jì)值,。 平均:要求參數(shù)字段為數(shù)字型,,返回該字段取值的平均值。 計(jì)數(shù):不限參數(shù)字段的類型,,返回該字段取值的個數(shù),。 最大值:不限參數(shù)字段的類型,返回該字段取值中的最大者,。對字符型字段,,若為英文,大小按字母順序排序,;若為中文,,大小按漢語拼音的字母順序排序。 最小值:不限參數(shù)字段的類型,,返回該字段取值中的最小者,。對字符型字段,若為英文,,大小按字母順序排序,;若為中文,大小按漢語拼音的字母順序排序,。 最早:要求參數(shù)字段為日期型,,返回該字段取值中的最早日期。(同最小值) 最晚:要求參數(shù)字段為日期型,,返回該字段取值中的最晚日期,。(同最大值) 示例數(shù)據(jù)庫中提供了一個模版《統(tǒng)計(jì)函數(shù)》,,其中的表間公式示例了各種統(tǒng)計(jì)函數(shù)的用法。 16.4 日期函數(shù)Excel服務(wù)器提供了比較豐富的日期函數(shù),,比較常用的有: 年份值,、月份值、日期值,、星期求日期型數(shù)據(jù)的年份,、月份、日期和星期,,返回值為整數(shù),。如年份值(‘12/23/2005’)=2005,月份值(‘12/23/2005’)=12 此年,、此月,、此季返回某個時間區(qū)間,要求與關(guān)系運(yùn)算符“介于”一起使用,。例如:’01/15/2005’ 介于 此月(2005,1),,表示日期“2005年1月15日”介于2005年1月份之內(nèi)。 日期加減在某基準(zhǔn)日期的基礎(chǔ)上,,增加或減少幾個時間單位(天/周/月/季/年/小時),。得到一個新的日期。例如:日期加減(dd,-2,’01/10/2005’),,返回的是“2005年1月10日”的前2天的日期,,即“2005年1月8日”。 年初,、年末,、月初、月末返回指定時間段的起始(或結(jié)尾)那一天的日期,。例如:月末(2005,7),,返回2005年7月份月末那一天的日期,即“2005年7月31日”,。 間隔時間返回兩個指定日期之間的間隔時間單位,,結(jié)果為整數(shù)。例如: 間隔時間(dd,’01/01/2005’,’02/01/2005’)返回2005年1月1日至2005年2月1日之間的間隔天數(shù),,結(jié)果為31,。 間隔時間(mm,’01/01/2005’,’02/01/2005’)返回2005年1月1日至2005年2月1日之間間隔的月數(shù),結(jié)果為1,。 在示例數(shù)據(jù)庫中提供了一個模版《日期函數(shù)》,,其中的表間公式例示了日期函數(shù)的用法。 16.5 字符串函數(shù)取子串(<字符串>,<起始位置>,<截取長度>):此函數(shù)截取指定字符串的一部分。比如:取子串('abcdefg',2,3),,返回子串"bcd",。 字符串長度(<字符串>):此函數(shù)返回指定字符串的長度。 轉(zhuǎn)大寫(<字符串>):此函數(shù)將字符串中的小寫字母轉(zhuǎn)換成大寫字母,。 在示例數(shù)據(jù)庫中提供了一個模版《字符串函數(shù)》,其中的表間公式例示了字符串函數(shù)的用法,。 16.6 集合函數(shù)集合函數(shù)只有一個:此集合(<值1>,<值2>,…,<值n>),,此函數(shù)必須和關(guān)系運(yùn)算符“屬于”或“不屬于”一起使用。 集合函數(shù)的具體使用方法,,請參見示例數(shù)據(jù)庫中的模版《集合函數(shù)》 16.7 系統(tǒng)變量Excel服務(wù)器提供的系統(tǒng)變量有:當(dāng)前用戶姓名,、當(dāng)前用戶所在部門、當(dāng)前用戶部門編號,、當(dāng)前日期,、當(dāng)前日期時間。 16.8 輸入變量我們在定義表間公式的篩選條件時,,經(jīng)常會把數(shù)據(jù)表中的字段內(nèi)容和本報表上的字段內(nèi)容比較,,比如: 客戶表.登記日期>=本報表.Sheet1:起始日期。 在這里,,“本報表.Sheet1:起始日期”,,就是一個變量,它的取值為應(yīng)用公式的那一時刻“起始日期”所對應(yīng)的單元格的值,。 假如我們希望篩選條件中的變量取值不是來自Excel工作表上的單元格內(nèi)容,,而是在應(yīng)用公式的那一時刻彈出輸入窗口,由用戶手工輸入,,就需要用到輸入變量,。這是,上面的條件可以改寫為: 客戶表.登記日期>=輸入.起始日期[D] 其中的[D]表示用戶輸入的起始日期一定要是日期型,。 在示例數(shù)據(jù)庫中提供了一個模版《輸入變量》,,其中定義了一個打開后自動運(yùn)行的表間公式: 提取<客戶表>中滿足下列條件的數(shù)據(jù): <數(shù)據(jù)篩選: 客戶表.登記日期 >= 輸入.起始日期[D]> 按以下方式填入<輸入變量_明細(xì)>: 客戶表.客戶編號 --->(填入值) 客戶編號 客戶表.客戶名稱 --->(填入值) 客戶名稱 客戶表.登記日期 --->(填入值) 登記日期 填報此模版,公式自動運(yùn)行,,彈出輸入對話框,,如下圖所示,當(dāng)用戶輸入起始日期后按【確定】,,自動查詢出在指定日期之后登記的客戶信息,。 圖 16?1 |
|