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)

学习函数和公式时,下列词汇很有帮助:

结构 函数的结构以等号 (=) 开始,后跟函数名、左括号、以逗号分隔的函数参数,以右括号结束。

函数名称 列表或库支持的函数的名称。每个函数都引用特定个数的参数,并对这些参数进行处理,然后返回一个值。

参数</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值