SharePointでの列の検証と検証の設定

MS開発部の 永田 です。

今回はSharePointのリストで設定可能な入力チェック(バリデーション)について記載したいと思います。

SharePointでの列の検証

SharePointでは列の検証として、入力チェックを設定する事が可能ですが以下の制約があります。
・「検証の設定」では他の列と比較した入力チェックが行えます。
・「列の検証」では他の列を参照することはできません。
・文字パターンをテストするための正規表現は利用できません。
・数式の結果はTrue、Falseで返す必要があります。
・利用できる数式はExcelと互換がありますが、すべて利用出来るわけではありません。
  利用できる関数の一覧は
ここに記載されています。
・スペースを含む列名の場合は[]で囲ってください。
・テキストの比較を行う場合、大文字小文字の区別はされません。

検証の設定例

ORを使用する場合
TrueまたはFalseを返す比較を複数実行可能です。比較した結果のいずれかがTrueの場合はTrueを返します。
= OR(Field = "A", Field = "B", Field = "C") aかbかcを入力可能

ANDを使用する場合
TrueまたはFalseを返す比較を複数実行可能です。比較した結果の全てがTrueの場合はTrueを返します。
= AND(Num >= 1,Num <= 100) Numが1~100の間

LENを使用する場合
桁数が4文字以上、10文字以内
= AND(LEN(Num)>= 4、LEN(Num)<= 10)

SEARCHを使用する場合
=ISERROR(SEARCH("A",Field)) Aを含んでいるか否か

応用:郵便番号型チェック
=AND(NOT(ISERROR(SEARCH("???-????",Field,1))),LEN(Field)=8)
上記の例の場合、文字列でもチェックが通ります。
ここから、数値チェックの関数を追加します。

MIDで数値個所を取得し、CONCATENATEで数値の文字を結合した後に、掛け算を行いエラーが発生するかどうかで
数値チェックを行っています。
=AND(NOT(ISERROR(SEARCH("???-????",Field,1))),LEN(Field)=8,NOT(ISERROR(1*CONCATENATE(MID(Field,1,3),MID(Field,5,4)))))
または掛け算を行わずにISNUMBERを利用する方法もあります。
この場合、CONCATENATEした値を一度VALUEで数値に戻す必要があります。
=AND(NOT(ISERROR(SEARCH("???-????",Field,1))),LEN(Field)=8,ISNUMBER(VALUE(CONCATENATE(MID(Field,1,3),MID(Field,5,4)))))
数値チェックの例として2パターン記載致しましたが、他にもチェックする方法はあると思います。

日付チェックを行う場合
=Field>NOW() 今日より過去の日付の場合チェック
または
=Field>TODAY() 今日より過去の日付の場合チェック
TODAYはリストフィルターの時は[Today]となりますが列の検証ではToday()となります。

 

いかがでしたでしょうか?SharePointの設定等、弊社の業務内容にご興味のある方は、お気軽にお問い合わせください。

(お問い合わせはこちらのページをご確認の上、メールアドレス「info@deepcom.co.jp」までご連絡ください。)

以上、最後までご愛読いただきありがとうございました。

コメントは利用できません。