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公式说明(可能的结果)
15000 9000 =[Column1]>[Column2] Column1 大于 Column2 吗?(Yes)
15000 9000 =IF([Column1]<=[Column2], "OK", "Not OK") Column1 小于或等于 Column2 吗?(Not OK)

 

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

COLUMN1COLUMN2COLUMN3公式说明(可能的结果)
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 函数。

COLUMN1COLUMN2COLUMN3公式说明(可能的结果)
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 函数。

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

 

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

COLUMN1COLUMN2公式说明(可能的结果)
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(创建时间))



隐藏

添加日期

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

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

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2公式说明(结果)
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 函数执行此计算。

COLUMN1COLUMN2公式说明(结果)
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。

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2COLUMN3公式说明(结果)
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 函数。

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

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

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

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

隐藏数字相乘

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

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

隐藏数字相除

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

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

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

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

COLUMN1COLUMN2COLUMN3公式说明(结果)
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 函数计算一组数字的中值。

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

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

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

COLUMN1COLUMN2COLUMN3公式说明(结果)
10 7 9 =MIN([Column1], [Column2], [Column3]) 最小数 (7)
10 7 9 =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公式说明(结果)
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 函数执行此计算。

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2公式说明(结果)
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 函数和“与”运算符。

COLUMN1COLUMN2公式说明(结果)
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 函数和“与”运算符 (&)。

COLUMN1COLUMN2公式说明(结果)
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 函数。

COLUMN1COLUMN2公式说明(可能的结果)
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 函数。

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 次 (----------)
 
posted @ 2012-01-31 21:50  顾式传说  阅读(3201)  评论(0编辑  收藏  举报