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 函数进行此比较。

COLUMN1COLUMN2公式说明(可能的结果)
150009000=[Column1]>[Column2]Column1 大于 Column2 吗?(Yes)
150009000=IF([Column1]<=[Column2], "OK", "Not OK")Column1 小于或等于 Column2 吗?(Not OK)

 

对于是逻辑值(Yes 或 No)的结果,请使用 AND、OR 和 NOT 函数。

COLUMN1COLUMN2COLUMN3公式说明(可能的结果)
1598=AND([Column1]>[Column2], [Column1]<[Column3])15 大于 9 且小于 8 吗?(No)
1598=OR([Column1]>[Column2], [Column1]<[Column3])15 大于 9 或小于 8 吗?(Yes)
1598=NOT([Column1]+[Column2]=24)15 加 9 不等于 24 吗?(No)

对于是另一个计算的结果,或者是 Yes 或 No 以外的任何其他值的结果,请使用 IF、AND 和 OR 函数。

COLUMN1COLUMN2COLUMN3公式说明(可能的结果)
1598=IF([Column1]=15, "OK", "Not OK")如果 Column1 中的值等于 15,则返回“OK”。(OK)
1598=IF(AND([Column1]>[Column2], [Column1]<[Column3]), "OK", "Not OK")如果 15 大于 9 且小于 8,则返回“OK”。(Not OK)
1598=IF(OR([Column1]>[Column2], [Column1]<[Column3]), "OK", "Not OK")如果 15 大于 9 或小于 8,则返回“OK”。(OK)

 

要显示零,请执行一次简单计算。要显示空白或短划线,请使用 IF 函数。

COLUMN1COLUMN2公式说明(可能的结果)
1010=[Column1]-[Column2]从第一个数字中减去第二个数字 (0)
159=IF([Column1]-[Column2],"-",[Column1]-[Column2])值为零时返回一条短划线 (-)

 

要显示短划线、#N/A 或 NA 而不是错误值,请使用 ISERROR 函数。

COLUMN1COLUMN2公式说明(可能的结果)
100=[Column1]/[Column2]产生错误 (#DIV/0)
100=IF(ISERROR([Column1]/[Column2]),"NA",[Column1]/[Column2])值为错误时返回 NA
100=IF(ISERROR([Column1]/[Column2]),"-",[Column1]/[Column2])值为错误时返回一条短划线
 

日期和时间公式

可以使用下面的公式执行基于日期和时间的计算,例如向某个日期添加若干天、若干月或若干年,计算两个日期之间的差值,以及将时间转换为小数值。

计算值获取当前日期

=DATE(YEAR(创建时间),MONTH(创建时间),DAY(创建时间))



隐藏

添加日期

要向某个日期添加若干天,请使用加法运算符 (+)。

 注释   对日期进行操作时,计算栏的返回类型必须设置为“日期和时间”

COLUMN1COLUMN2公式说明(结果)
6/9/20073=[Column1]+[Column2]向 6/9/2007 添加 3 天 (6/12/2007)
12/10/200854=[Column1]+[Column2]向 12/10/2008 添加 54 天(2/2/2009)

要向某个日期添加若干月,请使用 DATE、YEAR、MONTH 和 DAY 函数。

COLUMN1COLUMN2公式说明(结果)
6/9/20073=DATE(YEAR([Column1]),MONTH([Column1])+[Column2],DAY([Column1]))向 6/9/2007 添加 3 个月 (9/9/2007)
12/10/200825=DATE(YEAR([Column1]),MONTH([Column1])+[Column2],DAY([Column1]))向 12/10/2008 添加 25 个月 (1/10/2011)

要向某个日期添加若干年,请使用 DATE、YEAR、MONTH 和 DAY 函数。

COLUMN1COLUMN2公式说明(结果)
6/9/20073=DATE(YEAR([Column1])+[Column2],MONTH([Column1]),DAY([Column1]))向 6/9/2007 添加 3 年 (6/9/2010)
12/10/200825=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 函数执行此计算。

COLUMN1COLUMN2公式说明(结果)
01-Jan-199515-Jun-1999=DATEDIF([Column1], [Column2],"d")返回两个日期之间的天数 (1626)
01-Jan-199515-Jun-1999=DATEDIF([Column1], [Column2],"ym")返回两个日期之间的月数,忽略年 (5)
01-Jan-199515-Jun-1999=DATEDIF([Column1], [Column2],"yd")返回两个日期之间的天数,忽略年 (165)

隐藏计算两个时间之间的差值

要使用标准时间格式(时:分:秒)显示结果,请使用减法运算符 (-) 和 TEXT 函数。要使此方法正常工作,小时不得超过 24,且分和秒不得超过 60。

COLUMN1COLUMN2公式说明(结果)
06/09/2007 10:35 AM06/09/2007 3:30 PM=TEXT([Column2]-[Column1],"h")两个时间之间的小时数 (4)
06/09/2007 10:35 AM06/09/2007 3:30 PM=TEXT([Column2]-[Column1],"h:mm")两个时间之间的小时数和分钟数 (4:55)
06/09/2007 10:35 AM06/09/2007 3:30 PM=TEXT([Column2]-[Column1],"h:mm:ss")两个时间之间的小时数、分钟数和秒数 (4:55:00)

要用基于一个时间单位的总计值显示结果,请使用 INT 函数或 HOUR、MINUTE 或 SECOND 函数。

COLUMN1COLUMN2公式说明(结果)
06/09/2007 10:35 AM06/10/2007 3:30 PM=INT(([Column2]-[Column1])*24)两个时间之间的总小时数 (28)
06/09/2007 10:35 AM06/10/2007 3:30 PM=INT(([Column2]-[Column1])*1440)两个时间之间的总分钟数 (1735)
06/09/2007 10:35 AM06/10/2007 3:30 PM=INT(([Column2]-[Column1])*86400)两个时间之间的总秒数 (104100)
06/09/2007 10:35 AM06/10/2007 3:30 PM=HOUR([Column2]-[Column1])当差值不超过 24 时,两个时间之间的小时数 (4)
06/09/2007 10:35 AM06/10/2007 3:30 PM=MINUTE([Column2]-[Column1])当差值不超过 60 时,两个时间之间的分钟数 (55)
06/09/2007 10:35 AM06/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 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
654=[Column1]+[Column2]+[Column3]将前三个栏中的值相加 (15)
654=SUM([Column1],[Column2],[Column3])将前三个栏中的值相加 (15)
654=SUM(IF([Column1]>[Column2], [Column1]-[Column2], 10), [Column3])如果 Column1 大于 Column2,则将它们的差值与 Column3 相加。否则将 10 与 Column3 相加 (5)

隐藏数字相减

要将一行中两栏或更多个栏中的数字相减,请使用减法运算符 (-) 或带负数的 SUM 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
150009000-8000=[Column1]-[Column2]从 15000 中减去 9000 (6000)
150009000-8000=SUM([Column1], [Column2], [Column3])将前三个栏中的数字相加,包括负值 (16000)

隐藏将两个数字之间的差值计算为百分比

请使用减法运算符 (-)、除法运算符 (/) 和 ABS 函数。

COLUMN1COLUMN2公式说明(结果)
23422500=([Column2]-[Column1])/ABS([Column1])百分比变动(6.75% 或 0.06746)

隐藏数字相乘

要将一行中两栏或更多个栏中的数字相乘,请使用乘法运算符 (*) 或 PRODUCT 函数。

COLUMN1COLUMN2公式说明(结果)
52=[Column1]*[Column2]将前两个栏中的数字相乘 (10)
52=PRODUCT([Column1], [Column2])将前两个栏中的数字相乘 (10)
52=PRODUCT([Column1],[Column2],2)将前两个栏中的数字及数字 2 相乘 (20)

隐藏数字相除

要将一行中两栏或更多个栏中的数字相除,请使用除法运算符 (/)。

COLUMN1COLUMN2公式说明(结果)
1500012=[Column1]/[Column2]用 15000 除以 12 (1250)
1500012=([Column1]+10000)/[Column2]将 15000 与 10000 相加,然后用和除以 12 (2083)

隐藏计算一组数字的平均值

平均值也称为平均数。要计算一行中两栏或更多个栏中的数字的平均值,请使用 AVERAGE 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
654=AVERAGE([Column1], [Column2],[Column3])前三个栏中的数字的平均值 (5)
654=AVERAGE(IF([Column1]>[Column2], [Column1]-[Column2], 10), [Column3])如果 Column1 大于 Column2,则计算其差值与 Column3 的平均值。否则计算数值 10 与 Column3 的平均值 (2.5)

隐藏计算一组数字的中值

中值是一系列有序数字的中间值。请使用 MEDIAN 函数计算一组数字的中值。

ABCDEF公式说明(结果)
10792704=MEDIAN(A, B, C, D, E, F)前六个栏中的数字的中值 (8)

隐藏计算某个范围中的最小数或最大数

要计算一行中两栏或更多个栏中的数字中的最小数或最大数,请使用 MIN 和 MAX 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
1079=MIN([Column1], [Column2], [Column3])最小数 (7)
1079=MAX([Column1], [Column2], [Column3])最大数 (10)

隐藏对数值进行计数

要对数值进行计数,请使用 COUNT 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
苹果树 12/12/2007=COUNT([Column1], [Column2], [Column3])计算包含数值的栏数。排除日期和时间、文本以及空值 (0)
$12#DIV/0!1.01=COUNT([Column1], [Column2], [Column3])计算包含数值的栏数,但排除错误和逻辑值 (2)

隐藏将一个数字增加或减少一个百分点

请使用百分数 (%) 运算符执行此计算。

COLUMN1COLUMN2公式说明(结果)
233%=[Column1]*(1+5%)将 Column1 中的数字增加 5% (24.15)
233%=[Column1]*(1+[Column2])将 Column1 中的数字增加 Column2 中的百分数值:3% (23.69)
233%=[Column1]*(1-[Column2])将 Column1 中的数字减少 Column2 中的百分数值:3% (22.31)

隐藏对一个数字进行乘幂运算

使用乘幂运算符 (^) 或 POWER 函数执行此计算。

COLUMN1COLUMN2公式说明(结果)
52=[Column1]^[Column2]计算 5 的平方 (25)
53=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 函数。

COLUMN1COLUMN2公式说明(结果)
CarlosCarvallo=[Column1]&[Column2]对两个字符串进行组合 (CarlosCarvallo)
CarlosCarvallo=[Column1]&" "&[Column2]对两个字符串进行组合,并用空格分隔 (Carlos Carvallo)
CarlosCarvallo=[Column2]&", "&[Column1]对两个字符串进行组合,并用逗号和空格分隔 (Carvallo, Carlos)
CarlosCarvallo=CONCATENATE([Column2], ",", [Column1])对两个字符串进行组合,并用逗号分隔 (Carvallo,Carlos)

隐藏将不同列中的文本和数字进行组合

要将文本和数字进行组合,请使用 CONCATENATE 函数、“与”运算符 (&) 或 TEXT 函数和“与”运算符。

COLUMN1COLUMN2公式说明(结果)
Yang28=[Column1]&" sold "&[Column2]&" units."将上面的内容组合成一个短语 (Yang sold 28 units.)
Dubois40%=[Column1]&" sold "&TEXT([Column2],"0%")&" of the total sales."

将上面的内容组合成一个短语 (Dubois sold 40% of the total sales.)

 注释   TEXT 函数追加 Column2 的带格式的值而不是基础值 .4。

Yang28=CONCATENATE([Column1]," sold ",[Column2]," units.")将上面的内容组合成一个短语 (Yang sold 28 units.)

隐藏将文本与日期或时间进行组合

要将文本与日期或时间进行组合,请使用 TEXT 函数和“与”运算符 (&)。

COLUMN1COLUMN2公式说明(结果)
Billing Date5-Jun-2007="Statement date: "&TEXT([Column2], "d-mmm-yyyy")将文本与日期进行组合 (Statement date: 5-Jun-2007)
Billing Date5-Jun-2007=[Column1]&" "&TEXT([Column2], "mmm-dd-yyyy")将不同栏中的文本与日期组合为一栏 (Billing Date Jun-05-2007)

隐藏比较栏中的内容

要将一栏同另一栏或值列表进行比较,请使用 EXACT 和 OR 函数。

COLUMN1COLUMN2公式说明(可能的结果)
BD122BD123=EXACT([Column1],[Column2])对前两栏中的内容进行比较 (No)
BD122BD123=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 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
销售额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 次 (----------)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值