如何給欄添加驗證公式
創建欄界面第二欄就可以給該欄添加驗證公式:
幾個常用的驗證公式(函數)
Len()
說明:返回字段值的長度
用法:
驗證是“填寫週期”這個字段的值長度是16的話返回“是”,驗證通過,否則返回“否”,驗證不通過,顯示錯誤提示。
MID()
說明:取字段值字符串的某一個字符
用法:
驗證“填寫週期”這個字段值的第一個字符是不是爲“2”,驗證通過,否則返回“否”,驗證不通過,顯示錯誤提示。
code()
說明:取字符的ASCII值
用法:
上段公式,可以=((A+B)=2),A的值爲(CODE(MID(填寫週期,15,1))>47),B的值爲(CODE(MID(填寫週期,15,1))<58),
(CODE(MID(填寫週期,15,1))>47) 解釋爲:先用MID()函數取“填寫週期”字段值字符串的第15個字符,再用CODE()函數取上一步得到的字符的ASCII值,如果大於47則返回1,否則 返回 0. 通過MID()和CODE()的配合,可以把字符轉成ASCII碼,這樣可以進行大小比較,這48~57是數字0~9的ASCII碼。
綜合後,上段公式用於驗證該字段值第15位必需是一個數字。
更多公式可以查看微軟官方網站:http://office.microsoft.com/en-us/sharepoint-foundation-help/CH010372694.aspx
邏輯條件
And 運算
很遺憾這個公式表達式中我們不能寫and 或者 or的表達式,但是這個不是問題,其實上面的示例已經給了一個and條件的例子。
如果我們要用and邏輯表達式,我們可以通過“+”運算,判斷最後的值即可。
例如:
判斷一個電話號碼:
=(LEN([Phone])=12) +(CODE(MID([Phone],1,1))>47) +(CODE(MID([Phone],1,1))<58) +(CODE(MID([Phone],2,1))>47) +(CODE(MID([Phone],2,1))<58) +(CODE(MID([Phone],3,1))>47) +(CODE(MID([Phone],3,1))<58) +(MID([Phone],4,1)="-") +(CODE(MID([Phone],5,1))>47) +(CODE(MID([Phone],5,1))<58) +(CODE(MID([Phone],6,1))>47) +(CODE(MID([Phone],6,1))<58) +(CODE(MID([Phone],7,1))>47) +(CODE(MID([Phone],7,1))<58) +(MID([Phone],8,1)="-") +(CODE(MID([Phone],9,1))>47) +(CODE(MID([Phone],9,1))<58) +(CODE(MID([Phone],10,1))>47) +(CODE(MID([Phone],10,1))<58) +(CODE(MID([Phone],11,1))>47) +(CODE(MID([Phone],11,1))<58) +(CODE(MID([Phone],12,1))>47) +(CODE(MID([Phone],12,1))<58) =23
OR 運算
比如想驗證“血型”字段值只能是“A”、“B”或者“O”時,可以用下面的方法:
=(LEN([BLOODTYPE])=1) +(MID([Phone],1,1)="A") +(MID([Phone],1,1)="B") +(MID([Phone],1,1)="O") =2
另外可能還會碰到其它OR邏輯的可能,比如,我們的MOSS平臺上有一個列表記錄員工的周月報,其中“填寫週期”一欄根據填寫目的不同,要求使用兩種格式,一種是週報格式要求用YYYY.MM.DD-MM.DD格式,另外一種是月報格式,要求使用YYYY.MM格式。以方便最終做統計視圖。
我們可以用"IF"邏輯運算進行處理:
=IF( LEN(填寫週期)=16 ,( (MID(填寫週期,1,1)="2") +(MID(填寫週期,2,1)="0") +(MID(填寫週期,3,1)="1") +(MID(填寫週期,5,1)=".") +(MID(填寫週期,8,1)=".") +(MID(填寫週期,11,1)="-") +(MID(填寫週期,14,1)=".") =7) ,(IF( LEN(填寫週期)=7 ,((MID(填寫週期,1,1)="2") +(MID(填寫週期,2,1)="0") +(MID(填寫週期,3,1)="1") +(MID(填寫週期,5,1)=".") =4) ,FALSE )) )
這裏,我們只驗證了字符長度和年度前三位,當然也可以做到完全驗證,如下:
=OR( ( IF(ISERROR( ((LEN([填寫週期])=16) +(CODE(MID([填寫週期],1,1))>47) +(CODE(MID([填寫週期],1,1))<58) +(CODE(MID([填寫週期],2,1))>47) +(CODE(MID([填寫週期],2,1))<58) +(CODE(MID([填寫週期],3,1))>47) +(CODE(MID([填寫週期],3,1))<58) +(CODE(MID([填寫週期],4,1))>47) +(CODE(MID([填寫週期],4,1))<58) +(MID([填寫週期],5,1)=".") +(CODE(MID([填寫週期],6,1))>47) +(CODE(MID([填寫週期],6,1))<58) +(CODE(MID([填寫週期],7,1))>47) +(CODE(MID([填寫週期],7,1))<58) +(MID([填寫週期],8,1)=".") +(CODE(MID([填寫週期],9,1))>47) +(CODE(MID([填寫週期],9,1))<58) +(CODE(MID([填寫週期],10,1))>47) +(CODE(MID([填寫週期],10,1))<58) +(MID([填寫週期],11,1)="-") +(CODE(MID([填寫週期],12,1))>47) +(CODE(MID([填寫週期],12,1))<58) +(CODE(MID([填寫週期],13,1))>47) +(CODE(MID([填寫週期],13,1))<58) +(MID([填寫週期],14,1)=".") +(CODE(MID([填寫週期],15,1))>47) +(CODE(MID([填寫週期],15,1))<58) +(CODE(MID([填寫週期],16,1))>47) +(CODE(MID([填寫週期],16,1))<58) =29) ) ,FALSE ,IF( ((LEN([填寫週期])=16) +(CODE(MID([填寫週期],1,1))>47) +(CODE(MID([填寫週期],1,1))<58) +(CODE(MID([填寫週期],2,1))>47) +(CODE(MID([填寫週期],2,1))<58) +(CODE(MID([填寫週期],3,1))>47) +(CODE(MID([填寫週期],3,1))<58) +(CODE(MID([填寫週期],4,1))>47) +(CODE(MID([填寫週期],4,1))<58) +(MID([填寫週期],5,1)=".") +(CODE(MID([填寫週期],6,1))>47) +(CODE(MID([填寫週期],6,1))<58) +(CODE(MID([填寫週期],7,1))>47) +(CODE(MID([填寫週期],7,1))<58) +(MID([填寫週期],8,1)=".") +(CODE(MID([填寫週期],9,1))>47) +(CODE(MID([填寫週期],9,1))<58) +(CODE(MID([填寫週期],10,1))>47) +(CODE(MID([填寫週期],10,1))<58) +(MID([填寫週期],11,1)="-") +(CODE(MID([填寫週期],12,1))>47) +(CODE(MID([填寫週期],12,1))<58) +(CODE(MID([填寫週期],13,1))>47) +(CODE(MID([填寫週期],13,1))<58) +(MID([填寫週期],14,1)=".") +(CODE(MID([填寫週期],15,1))>47) +(CODE(MID([填寫週期],15,1))<58) +(CODE(MID([填寫週期],16,1))>47) +(CODE(MID([填寫週期],16,1))<58) =29) ,TRUE ,FALSE ) )) ,(IF(ISERROR( ((LEN([填寫週期])=7) +(CODE(MID([填寫週期],1,1))>47) +(CODE(MID([填寫週期],1,1))<58) +(CODE(MID([填寫週期],2,1))>47) +(CODE(MID([填寫週期],2,1))<58) +(CODE(MID([填寫週期],3,1))>47) +(CODE(MID([填寫週期],3,1))<58) +(CODE(MID([填寫週期],4,1))>47) +(CODE(MID([填寫週期],4,1))<58) +(MID([填寫週期],5,1)=".") +(CODE(MID([填寫週期],6,1))>47) +(CODE(MID([填寫週期],6,1))<58) +(CODE(MID([填寫週期],7,1))>47) +(CODE(MID([填寫週期],7,1))<58) =14) ) ,FALSE ,IF( ((LEN([填寫週期])=7) +(CODE(MID([填寫週期],1,1))>47) +(CODE(MID([填寫週期],1,1))<58) +(CODE(MID([填寫週期],2,1))>47) +(CODE(MID([填寫週期],2,1))<58) +(CODE(MID([填寫週期],3,1))>47) +(CODE(MID([填寫週期],3,1))<58) +(CODE(MID([填寫週期],4,1))>47) +(CODE(MID([填寫週期],4,1))<58) +(MID([填寫週期],5,1)=".") +(CODE(MID([填寫週期],6,1))>47) +(CODE(MID([填寫週期],6,1))<58) +(CODE(MID([填寫週期],7,1))>47) +(CODE(MID([填寫週期],7,1))<58) =14) ,TRUE ,FALSE )) ) )
但是有個不幸的消息,SharePoint的驗證填只支持1024個字符,所以,我用了第一種。
其它
附一
一個老外寫的用於驗證Email地址的公式:
=(LEN(LEFT([Email],FIND("@",[Email])-1))>0) +(LEN(RIGHT([Email],LEN([Email])-FIND(".",[Email],FIND("@",[Email]))))>0) +(LEN(MID([Email],FIND("@",[Email])+1,FIND(".",[Email],FIND("@",[Email]))-FIND("@",[Email])-1))>0) +(ISERROR(FIND(" ",[Email]))=TRUE) =4
附二
微軟網站上的相關幫助,方便以後查找,直接附在這裏了。
公式概述
公式是對列表或庫中的值進行計算的等式。公式以等號 (=) 開頭。例如,在下面的公式中,結果等於 2 乘以 3 再加 5。
=5+2*3
可以在計算列中使用公式,也可以使用公式計算某一列的默認值。公式中可以包含函數、列引用、運算符和常量,如下例所示。
=PI()*[Result]^2
元素 | 說明 |
---|---|
函數 | PI() 函數返回圓周率 pi 的值 3.141592654。 |
引用(或列名) | [Result] 表示當前行的“Result”列中的值。 |
常量 | 直接輸入到公式中的數字或文本值,如 2。 |
運算符 | *(星號)運算符執行乘法運算,^(插入符號)運算符表示將數字乘冪。 |
公式可以使用上表中的一個或多個元素。下面是一些按照複雜程度排序的公式的示例。
簡單公式(如 =128+345)
下列公式包含常量和運算符。
示例 | 說明 |
---|---|
=128+345 | 將 128 與 345 相加 |
=5^2 | 計算 5 的平方 |
包含列引用的公式(如 =[REVENUE] >[COST])
下列公式引用同一個列表或庫中的其他列。
示例 | 說明 |
---|---|
=[Revenue] | 使用“Revenue”列中的值。 |
=[Revenue]*10/100 | “Revenue”列中的值的 10%。 |
=[Revenue] > [Cost] | 如果“Revenue”列中的值大於“Cost”列中的值,則返回“Yes”。 |
調用函數的公式(如 =AVERAGE(1, 2, 3, 4, 5))
下列公式調用內置函數。
示例 | 說明 |
---|---|
=AVERAGE(1, 2, 3, 4, 5) | 返回一組數值的平均值。 |
=MAX([Q1], [Q2], [Q3], [Q4]) | 返回一組數值中的最大值。 |
=IF([Cost]>[Revenue], "Not OK", "OK") | 如果成本大於收入,則返回“Not OK”。否則,返回“OK”。 |
=DAY("15-Apr-2008") | 返回日期中的天。此公式返回數字 15。 |
含有嵌套函數的公式(如 =SUM(IF([A]>[B], [A]-[B], 10), [C]))
下列公式將一個或多個函數指定爲函數參數。
示例 | 說明 |
---|---|
=SUM(IF([A]>[B], [A]-[B], 10), [C]) |
IF 函數返回列 A 與列 B 中值的差值或 10。 SUM 函數將 IF 函數的返回值與列 C 中的值相加。 |
=DEGREES(PI()) |
PI 函數返回數字 3.141592654。 DEGREES 函數將弧度值轉換爲角度值。此公式返回數值 180。 |
=ISNUMBER(FIND("BD",[Column1])) |
FIND 函數在 Column1 中搜索字符串 BD,並返回該字符串的起始位置。如果未找到該字符串,則返回一個錯誤值。 如果 FIND 函數返回一個數值,則 ISNUMBER 函數返回“Yes”。否則,它返回“No”。 |
函數概述
函數是預定義的公式,這些公式使用叫做參數的特定值按特定順序或結構進行計算。函數可用於執行簡單或複雜的計算。例如,下面的 ROUND 函數實例可將“Cost”列的數字四捨五入爲小數點後兩位。
=ROUND([Cost], 2)
學習函數和公式時,下列詞彙很有幫助:
結構 函數的結構以等號 (=) 開始,後跟函數名、左括號、以逗號分隔的函數參數,以右括號結束。
函數名稱 列表或庫支持的函數的名稱。每個函數都引用特定個數的參數,並對這些參數進行處理,然後返回一個值。
參數 參數可以是數字、文本、邏輯值(如 True 或 False)或列引用。指定的參數必須是該參數的有效值。參數也可以是常量、公式或其他函數。
在某些情況下,可能需要將一個函數作爲另一個函數的一個參數使用。例如,下面的公式使用了嵌套的 AVERAGE 函數,將結果與兩列的值之和進行比較。
=AVERAGE([Cost1], SUM([Cost2]+[Discount]))
有效返回值 當函數作爲參數使用時,其返回值的類型必須與參數所用值的類型相同。例如,如果參數使用“Yes”或“No”,則嵌套函數必須返回“Yes”或“No”;否則,列表或庫將顯示 #VALUE! 錯誤值。
嵌套層數限制 一個公式最多可以含有八層嵌套函數。當函數 B 作爲函數 A 中的參數使用時,函數 B 是第二層函數。例如,在上面的示例中,SUM 函數是第二層函數,因爲它是 AVERAGE 函數的參數。在 SUM 函數中嵌套的函數是第三層函數,依此類推。
註釋
- 列表和庫不支持 RAND 和 NOW 函數。
- 計算列中不支持 TODAY 和 ME 函數,但在某一列的默認值設置中支持這兩個函數
在公式中使用列引用
引用標識當前行中的一個單元格,並向列表或庫指示在何處搜索要在公式中使用的值或數據。例如,[Cost] 引用當前行中“Cost”列中的值。如果當前行中“Cost”列的值爲 100,則 =[Cost]*3 返回 300。
通過引用,可以在一個或多個公式中使用列表或庫的不同列中所包含的數據。可以在公式中引用下列數據類型的列:單行文本、數字、貨幣、日期和時間、選擇、是/否以及計算列。
可以使用列的顯示名稱在公式中引用該列。如果名稱中包含空格或特殊字符,則必須將名稱括在方括號 ([ ]) 中。引用不區分大小寫。例如,可以在公式中使用 [Unit Price] 或 [unit price] 來引用“Unit Price”這一列。
註釋
- 不能引用當前行以外的行中的值。
- 不能引用其他列表或庫中的值。
- 不能通過行 ID 引用新插入的行。因爲執行計算時該 ID 尚不存在。
- 不能在爲某列創建默認值的公式中引用其他列。
在公式中使用常量
常量是不用計算的值。例如,日期 10/9/2008、數字 210 以及文本“季度收入”都是常量。常量可以是下列數據類型:
- String(示例:=[Last Name] = "Smith")
String 常量括在引號中,最多可以包含 255 個字符。
- Number(示例:=[Cost] >= 29.99)
Numeric 常量可以包含小數位數,可以是正數或負數。
- Date(示例:=[Date] > DATE(2007,7,1))
Date 常量要求使用 DATE(year,month,day) 函數。
- Boolean(示例:=IF([Cost]>[Revenue], "Loss", "No Loss"))
“Yes”和“No”是 Boolean 常量。可以在條件表達中使用 Boolean 常量。在上面的示例中,如果“Cost”大於“Revenue”,則 IF 函數返回“Yes”,該公式返回字符串“Loss”。如果“Cost”等於或小於“Revenue”,則該函數返回“No”,並且該公式返回字符串“No Loss”。
在公式中使用運算符
運算符指定要對公式中的元素執行的運算的類型。列表和庫支持三種不同類型的運算符:算術運算符、比較運算符和文本運算符。
算術運算符
可使用下列算術運算符來執行加法、減法或乘法等基本數學運算,組合數字或者產生數字結果。
算術運算符 | 含義(示例) |
---|---|
+(加號) | 加法運算 (3+3) |
–(減號) | 減法運算 (3–1) 負數 (–1) |
*(星號) | 乘法運算 (3*3) |
/(正斜槓) | 除法運算 (3/3) |
%(百分號) | 百分比 (20%) |
^(插入符號) | 乘冪運算 (3^2) |
比較運算符
可以使用下列運算符對兩個值進行比較。使用這些運算符對兩個值進行比較時,結果是一個邏輯值“Yes”或“No”。
比較運算符 | 含義(示例) |
---|---|
=(等號) | 等於 (A=B) |
>(大於號) | 大於 (A>B) |
<(小於號) | 小於 (A<B) |
>=(大於等於號) | 大於或等於 (A>=B) |
<=(小於等於號) | 小於或等於 (A<=B) |
<>(不等號) | 不等於 (A<>B) |
文本運算符
使用與號 (&) 聯接或連接一個或更多個文本字符串以產生一串文本。
文本運算符 | 含義(示例) |
---|---|
&(與號) | 將兩個值連接或聯接起來產生一個連續的文本值 ("North"&"wind") |
列表或庫執行公式中的運算的順序
公式按照特定的順序計算值。公式可以使用等號(=)開頭。等號後面緊跟着要計算的元素(操作數),它們之間用運算符分隔。根據公式中每個運算符的特定順序,列表和庫從左向右計算公式。
運算符優先級
如果一個公式中用到多個運算符,列表和庫將按下表所示的順序進行運算。如果公式中包含具有相同優先級的運算符,例如,公式中同時包含乘法運算符和除法運算符,則列表和庫將從左到右計算運算符。
運算符 | 說明 |
---|---|
– | 負號(例如 –1) |
% | 百分比 |
^ | 乘冪 |
* 和 / | 乘和除 |
+ 和 – | 加和減 |
& | 連接(將兩個文本串連接在一起) |
= < > <= >= <> | 比較 |
使用括號
要更改求值順序,請將公式中要先計算的部分用括號括起來。例如,下面公式的結果是 11,因爲列表或庫先進行乘法運算後進行加法運算。該公式將 2 與 3 相乘,然後再加上 5,所得的數值就是最終結果。
=5+2*3
與此相反,如果使用括號改變語法,則列表或庫先將 5 與 2 相加,再用所得的結果乘以 3,得到的最終結果爲 21。
=(5+2)*3
在下面的示例中,公式中第一部分周圍的括號強制列表或庫先計算 [Cost]+25,然後用結果除以列 EC1 和 EC2 中的值之和。
=([Cost]+25)/SUM([EC1]+[EC2])
常見公式示例
條件公式
可以使用下面的公式測試語句的條件並返回值“Yes”或“No”,或者測試“OK”或“Not OK”等替代值,或者返回代表空值的空白或短劃線。
使用 IF 函數進行此比較。
COLUMN1 | COLUMN2 | 公式 | 說明(可能的結果) |
---|---|---|---|
15000 | 9000 | =[Column1]>[Column2] | Column1 大於 Column2 嗎?(Yes) |
15000 | 9000 | =IF([Column1]<=[Column2], "OK", "Not OK") | Column1 小於或等於 Column2 嗎?(Not OK) |
對於是邏輯值(Yes 或 No)的結果,請使用 AND、OR 和 NOT 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(可能的結果) |
---|---|---|---|---|
15 | 9 | 8 | =AND([Column1]>[Column2], [Column1]<[Column3]) | 15 大於 9 且小於 8 嗎?(No) |
15 | 9 | 8 | =OR([Column1]>[Column2], [Column1]<[Column3]) | 15 大於 9 或小於 8 嗎?(Yes) |
15 | 9 | 8 | =NOT([Column1]+[Column2]=24) | 15 加 9 不等於 24 嗎?(No) |
對於是另一個計算的結果,或者是 Yes 或 No 以外的任何其他值的結果,請使用 IF、AND 和 OR 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(可能的結果) |
---|---|---|---|---|
15 | 9 | 8 | =IF([Column1]=15, "OK", "Not OK") | 如果 Column1 中的值等於 15,則返回“OK”。(OK) |
15 | 9 | 8 | =IF(AND([Column1]>[Column2], [Column1]<[Column3]), "OK", "Not OK") | 如果 15 大於 9 且小於 8,則返回“OK”。(Not OK) |
15 | 9 | 8 | =IF(OR([Column1]>[Column2], [Column1]<[Column3]), "OK", "Not OK") | 如果 15 大於 9 或小於 8,則返回“OK”。(OK) |
要顯示零,請執行一次簡單計算。要顯示空白或短劃線,請使用 IF 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(可能的結果) |
---|---|---|---|
10 | 10 | =[Column1]-[Column2] | 從第一個數字中減去第二個數字 (0) |
15 | 9 | =IF([Column1]-[Column2],"-",[Column1]-[Column2]) | 值爲零時返回一條短劃線 (-) |
要顯示短劃線、#N/A 或 NA 而不是錯誤值,請使用 ISERROR 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(可能的結果) |
---|---|---|---|
10 | 0 | =[Column1]/[Column2] | 產生錯誤 (#DIV/0) |
10 | 0 | =IF(ISERROR([Column1]/[Column2]),"NA",[Column1]/[Column2]) | 值爲錯誤時返回 NA |
10 | 0 | =IF(ISERROR([Column1]/[Column2]),"-",[Column1]/[Column2]) | 值爲錯誤時返回一條短劃線 |
日期和時間公式
可以使用下面的公式執行基於日期和時間的計算,例如向某個日期添加若干天、若干月或若干年,計算兩個日期之間的差值,以及將時間轉換爲小數值。
計算值獲取當前日期
=DATE(YEAR(創建時間),MONTH(創建時間),DAY(創建時間))
添加日期
要向某個日期添加若干天,請使用加法運算符 (+)。
註釋 對日期進行操作時,計算欄的返回類型必須設置爲“日期和時間”。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
6/9/2007 | 3 | =[Column1]+[Column2] | 向 6/9/2007 添加 3 天 (6/12/2007) |
12/10/2008 | 54 | =[Column1]+[Column2] | 向 12/10/2008 添加 54 天(2/2/2009) |
要向某個日期添加若干月,請使用 DATE、YEAR、MONTH 和 DAY 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
6/9/2007 | 3 | =DATE(YEAR([Column1]),MONTH([Column1])+[Column2],DAY([Column1])) | 向 6/9/2007 添加 3 個月 (9/9/2007) |
12/10/2008 | 25 | =DATE(YEAR([Column1]),MONTH([Column1])+[Column2],DAY([Column1])) | 向 12/10/2008 添加 25 個月 (1/10/2011) |
要向某個日期添加若干年,請使用 DATE、YEAR、MONTH 和 DAY 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
6/9/2007 | 3 | =DATE(YEAR([Column1])+[Column2],MONTH([Column1]),DAY([Column1])) | 向 6/9/2007 添加 3 年 (6/9/2010) |
12/10/2008 | 25 | =DATE(YEAR([Column1])+[Column2],MONTH([Column1]),DAY([Column1])) | 向 12/10/2008 添加 25 年 (12/10/2033) |
要向某個日期添加天數、月數和年數的組合,請使用 DATE、YEAR、MONTH 和 DAY 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
6/9/2007 | =DATE(YEAR([Column1])+3,MONTH([Column1])+1,DAY([Column1])+5) | 向 6/9/2007 添加 3 年 1 個月零 5 天 (7/14/2010) |
12/10/2008 | =DATE(YEAR([Column1])+1,MONTH([Column1])+7,DAY([Column1])+5) | 向 12/10/2008 添加 1 年 7 個月零 5 天 (7/15/2010) |
計算兩個日期之間的差值
請使用 DATEDIF 函數執行此計算。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
01-Jan-1995 | 15-Jun-1999 | =DATEDIF([Column1], [Column2],"d") | 返回兩個日期之間的天數 (1626) |
01-Jan-1995 | 15-Jun-1999 | =DATEDIF([Column1], [Column2],"ym") | 返回兩個日期之間的月數,忽略年 (5) |
01-Jan-1995 | 15-Jun-1999 | =DATEDIF([Column1], [Column2],"yd") | 返回兩個日期之間的天數,忽略年 (165) |
計算兩個時間之間的差值
要使用標準時間格式(時:分:秒)顯示結果,請使用減法運算符 (-) 和 TEXT 函數。要使此方法正常工作,小時不得超過 24,且分和秒不得超過 60。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
06/09/2007 10:35 AM | 06/09/2007 3:30 PM | =TEXT([Column2]-[Column1],"h") | 兩個時間之間的小時數 (4) |
06/09/2007 10:35 AM | 06/09/2007 3:30 PM | =TEXT([Column2]-[Column1],"h:mm") | 兩個時間之間的小時數和分鐘數 (4:55) |
06/09/2007 10:35 AM | 06/09/2007 3:30 PM | =TEXT([Column2]-[Column1],"h:mm:ss") | 兩個時間之間的小時數、分鐘數和秒數 (4:55:00) |
要用基於一個時間單位的總計值顯示結果,請使用 INT 函數或 HOUR、MINUTE 或 SECOND 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =INT(([Column2]-[Column1])*24) | 兩個時間之間的總小時數 (28) |
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =INT(([Column2]-[Column1])*1440) | 兩個時間之間的總分鐘數 (1735) |
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =INT(([Column2]-[Column1])*86400) | 兩個時間之間的總秒數 (104100) |
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =HOUR([Column2]-[Column1]) | 當差值不超過 24 時,兩個時間之間的小時數 (4) |
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =MINUTE([Column2]-[Column1]) | 當差值不超過 60 時,兩個時間之間的分鐘數 (55) |
06/09/2007 10:35 AM | 06/10/2007 3:30 PM | =SECOND([Column2]-[Column1]) | 當差值不超過 60 時,兩個時間之間的秒數 (0) |
轉換時間
要將小時從標準時間格式轉換爲小數,請使用 INT 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
10:35 AM | =([Column1]-INT([Column1]))*24 | 自 12:00 AM 以後的小時數 (10.583333) |
12:15 PM | =([Column1]-INT([Column1]))*24 | 自 12:00 AM 以後的小時數 (12.25) |
要將小時從小數轉換爲標準時間格式(時:分:秒),請使用除法運算符和 TEXT 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
23:58 | =TEXT(Column1/24, "hh:mm:ss") | 自 12:00 AM 以後的時、分和秒 (00:59:55) |
2:06 | =TEXT(Column1/24, "h:mm") | 自 12:00 AM 以後的時和分 (0:05) |
插入儒略曆日期
儒略曆日期指的是一種日期格式,是當前年份和從當年年初算起的天數的組合。例如,2007 年 1 月 1 日表示爲 2007001,而 2007 年 12 月 31 日則表示爲 2007365。此格式並不基於儒略曆。
要將日期轉換爲儒略曆日期,請使用 TEXT 和 DATEVALUE 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
6/23/2007 | =TEXT([Column1],"yy")&TEXT(([Column1]-DATEVALUE("1/1/"& TEXT([Column1],"yy"))+1),"000") | 採用儒略曆格式的日期,年份用兩位數字表示 (07174) |
6/23/2007 | =TEXT([Column1],"yyyy")&TEXT(([Column1]-DATEVALUE("1/1/"&TEXT([Column1],"yy"))+1),"000") | 採用儒略曆格式的日期,年份用四位數字表示 (2007174) |
要將日期轉換爲在天文學中使用的儒略曆日期,請使用常量 2415018.50。如果使用 1900 日期系統,則此公式只對 1901 年 3 月 1 日之後的日期起作用。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
6/23/2007 | =[Column1]+2415018.50 | 在天文學中使用的儒略曆格式的日期 (2454274.50) |
將日期顯示爲一週中的某一天
要將日期轉換爲表示一週中某一天的文本,請使用 TEXT 和 WEEKDAY 函數。
COLUMN1 | 公式 | 說明(可能的結果) |
---|---|---|
19-Feb-2007 | =TEXT(WEEKDAY([Column1]), "dddd") | 計算該日期在一週中所對應的天數,並返回這一天的全名 (Monday) |
3-Jan-2008 | =TEXT(WEEKDAY([Column1]), "ddd") | 計算該日期在一週中所對應的天數,並返回這一天的縮寫名稱 (Thu) |
數學公式
可以使用下面的公式執行各種數學計算,如數字的加、減、乘、除,計算一組數字的平均值或中值,對數字進行四捨五入以及對數值進行計數。
數字相加
要將一行中兩欄或更多個欄中的數字相加,請使用加法運算符 (+) 或 SUM 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
6 | 5 | 4 | =[Column1]+[Column2]+[Column3] | 將前三個欄中的值相加 (15) |
6 | 5 | 4 | =SUM([Column1],[Column2],[Column3]) | 將前三個欄中的值相加 (15) |
6 | 5 | 4 | =SUM(IF([Column1]>[Column2], [Column1]-[Column2], 10), [Column3]) | 如果 Column1 大於 Column2,則將它們的差值與 Column3 相加。否則將 10 與 Column3 相加 (5) |
要將一行中兩欄或更多個欄中的數字相減,請使用減法運算符 (-) 或帶負數的 SUM 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
15000 | 9000 | -8000 | =[Column1]-[Column2] | 從 15000 中減去 9000 (6000) |
15000 | 9000 | -8000 | =SUM([Column1], [Column2], [Column3]) | 將前三個欄中的數字相加,包括負值 (16000) |
請使用減法運算符 (-)、除法運算符 (/) 和 ABS 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
2342 | 2500 | =([Column2]-[Column1])/ABS([Column1]) | 百分比變動(6.75% 或 0.06746) |
要將一行中兩欄或更多個欄中的數字相乘,請使用乘法運算符 (*) 或 PRODUCT 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
5 | 2 | =[Column1]*[Column2] | 將前兩個欄中的數字相乘 (10) |
5 | 2 | =PRODUCT([Column1], [Column2]) | 將前兩個欄中的數字相乘 (10) |
5 | 2 | =PRODUCT([Column1],[Column2],2) | 將前兩個欄中的數字及數字 2 相乘 (20) |
要將一行中兩欄或更多個欄中的數字相除,請使用除法運算符 (/)。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
15000 | 12 | =[Column1]/[Column2] | 用 15000 除以 12 (1250) |
15000 | 12 | =([Column1]+10000)/[Column2] | 將 15000 與 10000 相加,然後用和除以 12 (2083) |
計算一組數字的平均值
平均值也稱爲平均數。要計算一行中兩欄或更多個欄中的數字的平均值,請使用 AVERAGE 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
6 | 5 | 4 | =AVERAGE([Column1], [Column2],[Column3]) | 前三個欄中的數字的平均值 (5) |
6 | 5 | 4 | =AVERAGE(IF([Column1]>[Column2], [Column1]-[Column2], 10), [Column3]) | 如果 Column1 大於 Column2,則計算其差值與 Column3 的平均值。否則計算數值 10 與 Column3 的平均值 (2.5) |
計算一組數字的中值
中值是一系列有序數字的中間值。請使用 MEDIAN 函數計算一組數字的中值。
A | B | C | D | E | F | 公式 | 說明(結果) |
---|---|---|---|---|---|---|---|
10 | 7 | 9 | 27 | 0 | 4 | =MEDIAN(A, B, C, D, E, F) | 前六個欄中的數字的中值 (8) |
要計算一行中兩欄或更多個欄中的數字中的最小數或最大數,請使用 MIN 和 MAX 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
10 | 7 | 9 | =MIN([Column1], [Column2], [Column3]) | 最小數 (7) |
10 | 7 | 9 | =MAX([Column1], [Column2], [Column3]) | 最大數 (10) |
要對數值進行計數,請使用 COUNT 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
蘋果樹 | 12/12/2007 | =COUNT([Column1], [Column2], [Column3]) | 計算包含數值的欄數。排除日期和時間、文本以及空值 (0) | |
$12 | #DIV/0! | 1.01 | =COUNT([Column1], [Column2], [Column3]) | 計算包含數值的欄數,但排除錯誤和邏輯值 (2) |
請使用百分數 (%) 運算符執行此計算。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
23 | 3% | =[Column1]*(1+5%) | 將 Column1 中的數字增加 5% (24.15) |
23 | 3% | =[Column1]*(1+[Column2]) | 將 Column1 中的數字增加 Column2 中的百分數值:3% (23.69) |
23 | 3% | =[Column1]*(1-[Column2]) | 將 Column1 中的數字減少 Column2 中的百分數值:3% (22.31) |
使用乘冪運算符 (^) 或 POWER 函數執行此計算。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
5 | 2 | =[Column1]^[Column2] | 計算 5 的平方 (25) |
5 | 3 | =POWER([Column1], [Column2]) | 計算 5 的立方 (125) |
要對數字向上舍入,請使用 ROUNDUP、ODD 或 EVEN 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
20.3 | =ROUNDUP([Column1],0) | 將 20.3 向上舍入爲最接近的整數 (21) |
-5.9 | =ROUNDUP([Column1],0) | 將 -5.9 向上舍入爲最接近的整數 (-5) |
12.5493 | =ROUNDUP([Column1],2) | 將 12.5493 向上舍入爲最接近的百分位,即兩個小數位數 (12.55) |
20.3 | =EVEN([Column1]) | 將 20.3 向上舍入爲最接近的偶數 (22) |
20.3 | =ODD([Column1]) | 將 20.3 向上舍入爲最接近的奇數 (21) |
要對數字向下舍入,請使用 ROUNDDOWN 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
20.3 | =ROUNDDOWN([Column1],0) | 將 20.3 向下舍入爲最接近的整數 (20) |
-5.9 | =ROUNDDOWN([Column1],0) | 將 -5.9 向下舍入爲最接近的整數 (-6) |
12.5493 | =ROUNDDOWN([Column1],2) | 將 12.5493 向下舍入爲最接近的百分位,即兩個小數位數 (12.54) |
要將數字四捨五入爲最接近的數字或分數,請使用 ROUND 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
20.3 | =ROUND([Column1],0) | 將 20.3 向下舍入,因爲其分數部分小於 .5 (20) |
5.9 | =ROUND([Column1],0) | 將 5.9 向上舍入,因爲其分數部分大於 .5 (6) |
-5.9 | =ROUND([Column1],0) | 將 -5.9 向下舍入,因爲其分數部分小於 -.5 (-6) |
1.25 | =ROUND([Column1], 1) | 將數字四捨五入到最接近的十分位(一個小數位數)。因爲要進行四捨五入的部分爲 0.05 或更大,該數字被向上舍入(結果:1.3) |
30.452 | =ROUND([Column1], 2) | 將數字四捨五入到最接近的百分位(兩個小數位數)。因爲要四捨五入的部分 (0.002) 小於 0.005,該數字被向下舍入(結果:30.45) |
要將數字四捨五入到 0 以上的有效位數,請使用 ROUND、ROUNDUP、ROUNDDOWN、INT 和 LEN 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
5492820 | =ROUND([Column1],3-LEN(INT([Column1]))) | 將數字四捨五入到 3 個有效位數 (5490000) |
22230 | =ROUNDDOWN([Column1],3-LEN(INT([Column1]))) | 將數字向下舍入到 3 個有效位數 (22200) |
5492820 | =ROUNDUP([Column1], 5-LEN(INT([Column1]))) | 將數字向上舍入到 5 個有效位數 (5492900) |
文本公式
可以使用下面的公式處理文本,例如組合或連接多個欄中的值,比較一些欄中的內容,刪除字符或空格以及重複字符。
要更改文本的大小寫,請使用 UPPER、LOWER 或 PROPER 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
nina Vietzen | =UPPER([Column1]) | 將文本更改爲大寫形式 (NINA VIETZEN) |
nina Vietzen | =LOWER([Column1]) | 將文本更改爲小寫形式 (nina vietzen) |
nina Vietzen | =PROPER([Column1]) | 將文本更改爲詞首大寫形式 (Nina Vietzen) |
要將名字和姓氏進行組合,請使用“與”運算符 (&) 或 CONCATENATE 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
Carlos | Carvallo | =[Column1]&[Column2] | 對兩個字符串進行組合 (CarlosCarvallo) |
Carlos | Carvallo | =[Column1]&" "&[Column2] | 對兩個字符串進行組合,並用空格分隔 (Carlos Carvallo) |
Carlos | Carvallo | =[Column2]&", "&[Column1] | 對兩個字符串進行組合,並用逗號和空格分隔 (Carvallo, Carlos) |
Carlos | Carvallo | =CONCATENATE([Column2], ",", [Column1]) | 對兩個字符串進行組合,並用逗號分隔 (Carvallo,Carlos) |
要將文本和數字進行組合,請使用 CONCATENATE 函數、“與”運算符 (&) 或 TEXT 函數和“與”運算符。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
Yang | 28 | =[Column1]&" sold "&[Column2]&" units." | 將上面的內容組合成一個短語 (Yang sold 28 units.) |
Dubois | 40% | =[Column1]&" sold "&TEXT([Column2],"0%")&" of the total sales." |
將上面的內容組合成一個短語 (Dubois sold 40% of the total sales.) 註釋 TEXT 函數追加 Column2 的帶格式的值而不是基礎值 .4。 |
Yang | 28 | =CONCATENATE([Column1]," sold ",[Column2]," units.") | 將上面的內容組合成一個短語 (Yang sold 28 units.) |
要將文本與日期或時間進行組合,請使用 TEXT 函數和“與”運算符 (&)。
COLUMN1 | COLUMN2 | 公式 | 說明(結果) |
---|---|---|---|
Billing Date | 5-Jun-2007 | ="Statement date: "&TEXT([Column2], "d-mmm-yyyy") | 將文本與日期進行組合 (Statement date: 5-Jun-2007) |
Billing Date | 5-Jun-2007 | =[Column1]&" "&TEXT([Column2], "mmm-dd-yyyy") | 將不同欄中的文本與日期組合爲一欄 (Billing Date Jun-05-2007) |
要將一欄同另一欄或值列表進行比較,請使用 EXACT 和 OR 函數。
COLUMN1 | COLUMN2 | 公式 | 說明(可能的結果) |
---|---|---|---|
BD122 | BD123 | =EXACT([Column1],[Column2]) | 對前兩欄中的內容進行比較 (No) |
BD122 | BD123 | =EXACT([Column1], "BD122") | 將 Column1 中的內容與字符串“BD122”進行比較 (Yes) |
要檢查欄值或欄值的一部分是否與特定文本匹配,請使用 IF、FIND、SEARCH 和 ISNUMBER 函數。
COLUMN1 | 公式 | 說明(可能的結果) |
---|---|---|
Vietzen | =IF([Column1]="Vietzen", "OK", "Not OK") | 檢查確定 Column1 是否爲 Vietzen (OK) |
Vietzen | =IF(ISNUMBER(FIND("v",[Column1])), "OK", "Not OK") | 檢查確定 Column1 中是否包含字母 v (OK) |
BD123 | =ISNUMBER(FIND("BD",[Column1])) | 檢查確定 Column1 中是否包含 BD (Yes) |
要計算非空欄的數目,請使用 COUNTA 函數。
COLUMN1 | COLUMN2 | COLUMN3 | 公式 | 說明(結果) |
---|---|---|---|---|
銷售額 | 19 | =COUNTA([Column1], [Column2]) | 計算非空欄的數目 (2) | |
銷售額 | 19 | =COUNTA([Column1], [Column2], [Column3]) | 計算非空欄的數目 (2) |
要刪除文本中的字符,請使用 LEN、LEFT 和 RIGHT 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
Vitamin A | =LEFT([Column1],LEN([Column1])-2) | 從左邊開始返回 7 (9-2) 個字符 (Vitamin) |
Vitamin B1 | =RIGHT([Column1], LEN([Column1])-8) | 從右邊開始返回 2 (10-8) 個字符 (B1) |
要刪除欄中的空格,請使用 TRIM 函數。
COLUMN1 | 公式 | 說明(結果) |
---|---|---|
Hello there! | =TRIM([Column1]) | 刪除開頭和結尾處的空格 (Hello there!) |
要重複欄中的字符,請使用 REPT 函數。
公式 | 說明(結果) |
---|---|
=REPT(".",3) | 將句號重複 3 次 (...) |
=REPT("-",10) | 將短劃線重複 10 次 (----------) |