SharePoint のリストやドキュメント ライブラリのフォームの「条件式を含む列」という機能で、どういう条件での制御ができるか試してみました!

条件式の書き方をまとめてあるので、参考にしていただけたら幸いです(=´ェ`=)

  1. 「条件式を含む列」とは
  2. サポートされている列の種類
  3. 基本的な条件式の書き方
    (1)選択肢列(一行テキスト・複数行テキスト)
    (2)日付と時刻列
    (3)はい/いいえ(チェックボックス)列
    (4)ユーザーまたはグループ列
  4. 条件式のちょっとした応用
    (1)〇〇以外が入力された場合に表示
    (2)〇〇または××と入力された場合に表示
    (3)〇〇かつAAと入力された場合に表示
    (4)何かしら入力された場合に表示
  5. 試したけどできなかった条件
  6. まとめ

1.「条件式を含む列」とは

「条件式を含む列」にすることで、別の列の値に基づいてフォームの列の表示と非表示を切り替えることができます。
基本的には、前の列で「○○」と入力された場合に、列を表示するといったような設定が可能です。

【設定方法】
「条件式を含む列」にする方法は、フォームを開いて冒頭のキャプチャのところから設定を行います。

① [フォームの編集]>[列の編集]を選択
② 該当の列を選択して、[条件式の編集]を選択
③ 枠内に条件式を入力

上のキャプチャのような条件式だと、「Category」という内部名の列の値が「PC用品」の場合、表示するという設定になります。

内部名って何?という方は、以下のリンクから参照してください。

【SharePoint】列の内部名について

https://www.live-style.jp/sharepoint_internalname/

2.サポートされている列の種類

列の種類例外
一行テキスト
複数行テキスト
選択肢表示形式:チェック ボックス (複数選択可能)
数値
日付と時刻日付と時刻の形式:日付と時刻
はい/いいえ(チェックボックス)
ユーザーまたはグループ複数選択ができるようにする:はい

『通貨列』については、公式のドキュメントにサポートしていないとあったので、表には記入していませんが、試したところ問題なく動いているように見えました。

列の表示/非表示を切り替える条件式を指定します

https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/list-form-conditional-show-hide#specify-conditional-formula-to-show-or-hide-columns

3.基本的な条件式の書き方

各列の種類での、基本的な条件式の書き方をまとめました。

(1)選択肢列(一行テキスト・複数行テキスト)
次の式では、[Category]が’PC’用品の場合、表示します。

=if([$Category]==’PC用品’,’true’,’false’)



(2)数値列
次の式では、[Amount]が60未満の場合、表示します。

=if([$Amount]<60,”true,’false’)


次の式では、[Amount]と[Postage]の合計値が120以上の場合、表示します。
複数の数値列を計算して確認することもできます。

=if(([$Amount]+[$Postage])=>120),’true’,’false’)



(2)日付と時刻列
次の式では、[StartDate]が2020年8月25日以降の場合、表示します。
Date関数を用いて、特定の日付を指定します。

=if([$StartDate] >= Date(‘8/25/2020′),’true’,’false’)



(3)はい/いいえ(チェックボックス)列
次の式では、[Promoted]が「はい」の場合、表示します。

=if([$Promoted]==true,’true’,’false’)



(4)ユーザーまたはグループ列
次の式では、[Buyer]がChanmi@xxx.comの場合、表示します。
列名の最後に「.email」を付けます。

=if([$buyer.email]==’chanmi@xxx.com’,’true’,’false’)

4.条件式のちょっとした応用

こういうことってできるのかな?って思ったものをまとめました。
組み合わせていったら色々できそうです!

(1)〇〇以外が入力された場合に表示
次の式では、[Category]が’PC用品’の場合、表示します。
基本的な式の’true’,’false’を逆にすることで設定可能です。

=if([$Category]==’PC用品’,‘false’,’true’)



(2)〇〇または××と入力された場合に表示
次の式では、[Category]が’PC用品’または’文房具’の場合、表示します。

=if([$Category]==’PC用品’||[$Category]==’文房具’,’true’,’false’)


(3)〇〇かつAAと入力された場合に表示
次の式では、[Category]が’PC用品’かつ、[PCCategory]が’PC’の場合、表示します。

=if([$Category]==’PC用品’&&[$PCcategory]==’PC’,’true’,’false’)


(4)何かしら入力された場合に表示
次の式では、[Category]が空欄以外の場合、表示します。

=if([$Category]==,’false’,’true’)

(^・ェ・^)。oO(『*』を使って、何かが入力されたら~というのも試してみましたが、うまくいきませんでした)

5.試したけどできなかった条件

動的に日付やユーザーを指定できたらと思ったのですが、『有効な条件を入力してください』と表示されてしまいました、、、

『Today()』のところを、大文字小文字が問題なのかなと思い『TODAY()』にしてみたり、ビューのフィルターに使用する『[TODAY]』なども色々試してみましたが、全部だめでした。

ユーザー列でもMe関数を利用して、自分や自分以外で指定ができたらと思ったのですが、こちらもできなかったです。

6.まとめ

ユーザー側に『こういうケースにはここも入力してね。』といったことを意識させなくてすむので、入力間違いを減らすことに繋がりそうです!

また、フォームのカスタマイズの際に、Power Appsを利用しなくても、できることが増えてきているという印象を受けてます。
Power Appsより『列の編集』の方が簡単にできるので、ちょっとしたカスタマイズがしやすくなってきました!

色々と夢は膨らみましたが、動的な条件設定ができないのは少し残念でした。
代理申請(申請者と登録者が異なる)の場合は備考を入力させるといったような制御ができたらいいのになと思ったのですが、、、
そうなると表示された場合は必須入力にするといったこともできたらいいですね~
今後のアプデに期待です!!

(^・ェ・^)。oO(思いついたケースでの条件式を挙げましたが、『こんなこともできるよ!』とか『こういうことできる?』というものがありましたら、コメントで教えてください!TwitterやFacebookの弊社アカウントもしくはお問い合わせフォームでも大丈夫です)