連絡先リストに基づき、ログインユーザーが現在所属している組織のタスクを表示するソリューションを作成しようと、「連絡先リスト」列の「優先連絡先」と「複数選択連絡先」の最大数を確認したところ、「連絡先リスト」列の「優先連絡先」の最大数は50、「複数選択連絡先」の最大数は20が上限でした。
これはあまり典型的なユースケースではないが、例えば50以上のローカル組織があり、それぞれのダッシュボードにそのローカル組織のタスクなどのリストを表示させたいとする。
50以上のダッシュボードを作成するのは大変なので、カレントユーザー(現在ログインしているユーザー)でフィルタリングして、ユーザーが所属する組織のタスクなどを表示するレポートを作成し、ログインしているユーザーによって異なる組織のタスクを1つのダッシュボードに表示したいと思います。
![現在ユーザーによる当該ユーザ所属組織のタスクの表示](https://cloudsmart.jp/wp-content/uploads/2023/01/Filter-By-Current-User-1024x617.png)
この場合、ある組織には数十人以上のユーザーが所属しているのが普通なので、「連絡先リスト」列の「優先表示連絡先」と「複数選択連絡先」の最大数制約を調べ、これを処理する方法を考えました。
優先表示連絡先とは?
連絡先リスト」列に優先表示する連絡先を設定すると、「連絡先リスト」セル内のドロップダウン矢印をクリックするか、対応する Smartsheet フォームのフィールドにあるドロップダウン矢印をクリックすることで、その連絡先にすばやく連絡することができます。
この「優先表示される連絡先」の上限をテストしたところ、下の画像に示すように 50 であることがわかりました。つまり、ドロップダウンを使用して連絡先を選択またはリストに制限する際に、利用可能な連絡先の最大数が 50 に設定されているようです。(なぜ50に設定したのかは不明だが、これで十分だと考えたのだろう)
![優先連絡先の上限数](https://cloudsmart.jp/wp-content/uploads/2023/01/preferred-contacts-limit-1024x557.png)
複数選択のコンタクトとは?
一方、複数の人に割り当てる必要があるタスクがある場合、「セルごとに複数の連絡先を許可する」をチェックすることで、複数選択を許可することができます。
![](https://cloudsmart.jp/wp-content/uploads/2023/01/複数連絡先の許容-1024x637.png)
この複数選択の連絡先の上限をテストしたところ、下の画像のように20件でした。
英語版のヘルプには「1つのセルに最大20人の連絡先を追加できます」と書かれています。)これが仕様のようです。
![複数連絡先の上限は20](https://cloudsmart.jp/wp-content/uploads/2023/01/20-contact-limit-1024x539.png)
コンタクトの最大数に関する実用上の制約
優先表示連絡先の制約
しかし、実際には、通常の組織では、割り当てる連絡先の数が50件に制限されるような場面はないと思いますので、大きな制約にはならないと思います。
単純にドロップダウンリストに表示される候補者の数を増やしたいのであれば、連絡先リストの代わりに50などの上限がないドロップダウンリストを使用し、連絡先カラムのドロップダウンリストカラムを数式で参照することができます。
![ドロップダウンリストのメールから選択して式で連絡先に入れている例](https://cloudsmart.jp/wp-content/uploads/2023/01/dropdown-list-to-contact-list-1024x576.png)
複数選択肢による連絡先の制約
タスクに20人以上の連絡先を割り当てることは実際には適切ではないので、この意味での制約はありません。必要であれば、単にグループを使うことができます。
現在のユーザーフィルターでの実用的な制約
レポートフィルタでカレントユーザを使用し、カレントユーザが当該タスクの責任者である組織のメンバーリストに含まれているという条件でフィルタリングしようとする場合、20という制限がかなり大きな問題となります。例えば、各支店のデータを表示したい場合、20の制限を設定する必要があります。
例えば、各支店のデータを表示するダッシュボードがあり、現在ログインしているユーザーの支店のデータのみを表示したい場合、支店メンバーなど複数の連絡先を選択できるカラムを用意し、支店名をキーにテーブルから支店メンバーを引き出し、複数の支店メンバーに現在ログインしているユーザーが含まれるかどうかを判断する必要があります。支店のデータのみを表示したい場合、支店メンバーなど複数の連絡先を選択できる列を用意し、支店名をキーに支店メンバーをテーブルから引き出し、現在ログインしているユーザーが支店メンバーに含まれるかどうかを判断する場合、支店メンバーの数は20名までとなります。
例えば、下図は北海道、東北などの支店のメンバーリストであり、連絡先は複数選択可能である。(メンバー2については後述します)。
![支社メンバーリスト](https://cloudsmart.jp/wp-content/uploads/2023/01/Branch_Office_Member_List-1024x384.png)
次に、下の支店別タスクリストでは、クロスリファレンス機能で支店名をキーにして、上のシートから支店のメンバーを参照します。
![支社タスクリスト(支社メンバーリスト付き)](https://cloudsmart.jp/wp-content/uploads/2023/01/Branch-Office-Task-List--1024x427.png)
すると、下のレポートでは、現在ログインしているユーザーが所属する支社(ここでは東北)のタスクが、支社のメンバーにカレントユーザー(現在ログインしているユーザー)が含まれているかどうかでフィルタリングされて表示されます。
![現在ログインユーザーでフィルターをかける例](https://cloudsmart.jp/wp-content/uploads/2023/01/Current-User-Filter-Example-1024x422.png)
例えば、複数選択制約が20の場合、この支社に20人以上のメンバーがいる場合、1つの基準だけでは現在ログインしているユーザーが所属する支社のタスクを表示できないという現実的な制約があることを意味します。
回避策として、支店に 20 名以上のメンバーがいる場合、下図のように Member1、Member2……とメンバーリストを別に用意し、Current User で OR でつなげることで、現在 Member1、Member2 に所属している場合、その支店のタスクが表示されます(例えば、ある支店の営業部に所属している場合、その支店のタスクが表示されます。(例えば、支店の営業部員と業務部員が設定されます)。
これは回避策ですが、拡張性がなく、スマートな解決策ではありません。
![2つ以上の現在ログインユーザーのフィルターをORでつなぐ](https://cloudsmart.jp/wp-content/uploads/2023/01/Use-More-than-One-Current-Users-Filter-1024x466.png)
これは、1つのセルにあまり多くの情報(この場合は複数の連絡先)を保持すると、Smartsheetの動作が遅くなる可能性があることを考慮した制限なのかもしれませんが、優先連絡先の最大数を50に設定したほうがよかったと思います。