SharePoint 2010 驗證欄的使用說明

如何給欄添加驗證公式

創建欄界面第二欄就可以給該欄添加驗證公式:

 

 

幾個常用的驗證公式(函數)

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 次 (----------)
 

發佈了29 篇原創文章 · 獲贊 7 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章