項目検証プラグインで、テーブル内項目の重複チェックする方法をまとめてみます。
環境
- kintone: いろいろ簡単にできるクラウド型業務アプリ開発プラットフォーム
- 項目検証プラグイン: めんどうなチェックを簡単にできるプラグイン
テーブル内項目の重複チェック1
テーブル内の項目で、同じ値を重複して入力させたくない場合に、項目検証プラグインでエラーにします。
アプリのフォーム設定
テーブル内にドロップダウン項目を作成
項目検証プラグインの設定
テーブル内のドロップダウン項目に、カスタムバリデーションを設定します。
少しトリッキーなチェックで、重複チェックを行っています。
テーブル内のドロップダウン項目値を',' でつなげて、対象行のドロップダウン値を"" に一つだけ変換したものと、全部変換したものが違っているかどうかで判定しています。
-
条件:
REPLACEALL(JOIN(TARRAY(ドロップダウン),","),ドロップダウン,"") !=
REPLACE(JOIN(TARRAY(ドロップダウン),","),ドロップダウン,"") -
メッセージ:
"重複エラー: " & ドロップダウン -
関数: 計算式プラグインの関数が使えます。
- REPLACEALL: 文字列変換で対象文字列をすべて変換
- REPLACE: 文字列変換で対象文字列の先頭のみ変換
- JOIN: 配列を区切り文字で連結
- TARRAY: テーブル内項目の値を配列化
問題点
チェックに文字列変換を使っているため、ドロップダウンの選択値に他の選択肢の文字列が含まれている場合に、エラーになってしまいます。
例:ドロップダウン2の選択肢が "ABC","A" で、重複していないのにエラーになるケース。
テーブル内項目の重複チェック2
ドロップダウンの選択値に他の選択肢の文字列が含まれている場合も、対応できるチェックを考えてみます。
例:ドロップダウン2の正常ケースと重複エラー。
項目検証プラグインの設定2
テーブル内のドロップダウン2項目に、カスタムバリデーションを設定します。
違いは、値をアポストロフィー"'" で囲んで変換する点です。
これで値に部分列があっても、ちゃんとチェックできます。
もし値にアポストロフィーがある場合は、別の記号を使いましょう。
-
条件:
REPLACEALL(JOIN(TARRAY("'"&ドロップダウン2&"'"),","),"'"&ドロップダウン2&"'","") !=
REPLACE(JOIN(TARRAY("'"&ドロップダウン2&"'"),","),"'"&ドロップダウン2&"'","") -
メッセージ:
"重複エラー: " & ドロップダウン2