先に前提をお話させて頂きます。
SalesforceのLeadデータにおいて、ある特定の文字列を含むキャンペーンに紐づくLead IDを表示できるように以下のような計算フィールドを作りました。
IF (CONTAINS([Name (Campaign)],'inbound form'))
THEN 'inbound Form SQL'
ELSEIF (CONTAINS([Name (Campaign)],'inbound chat'))
THEN 'inbound chat SQL'
ELSEIF (CONTAINS([Name (Campaign)],'inbound other'))
THEN 'inbound other SQL'
ELSE 'Others'
END
そして紐づいているLead IDを行にしてTotalを追加の上、月ごとのデータと内訳を表示できるようにしました。
その結果、以下添付イメージのように内訳を表示できたものの、LeadIDが両方のキャンペーンに属しているケースは各キャンペーンのLead数の合計と全体の合計が一致しません。以下の例では、合計は53ですが、両カテゴリの数を足すと54になり、1多くなります。1人は重複で、両方のキャンペーンに属しているとわかります。
そこで、複数キャンペーンに属するユーザは「Inbound Form & Chat」のように両方に属しているというくくりで表示できたらと考えました。しかしながら、以下に添付した表のイメージのように、キャンペーンごとに行がわかれているため、IF CONTAINSでは両方に属するや、片方に属するを表現することは難しいと判断しました。
有識者の方にやりたいことが実現できる計算式をご教示いただきたく、投稿させていただきました。長文となり恐れ入りますが、ご教示いただけると幸いです。
上記表の場合は棒グラフにて以下のような結果を表示したいです。
Inbound Form: 1 (Lead ID: 113)
Inbound Chat: 1 (Lead ID: 134)
Inbound Form&Chat: 1 (Lead ID: 123)
Inbound Form&Chat&Other: 1 (Lead ID: 151)
Total: 4
【参考】現在の計算だと
Inbound Form: 3 (Lead ID: 123, 113, 151)
Inbound Chat: 3 (Lead ID: 123, 134, 151)
Inbound Other: 1 (Lead ID: 151)
Total: 4

フィルタを反映させるとなると事前計算はできませんね。この場合、Form&Chatのように複数のメンバーを列挙するのはとても骨が折れるので、2番目の案のようにMultipleのような表現でまとめてしまうのがやりやすいかなと思います。
各Lead IDごとにInbound Form, Chat, Other を含むかどうかを個別に見るフィールドを作り、
それを使って、複数に該当すればMultiple、そうでなければそれぞれの分類に判定させます。
あとはこの判定フィールドをビューに置いて、Lead IDの個別のカウントを取れば求めていたような表ができると思います。
なお、この例だと計算にFIXEDを使っているので、日付等のフィルタを反映させたい場合はそのフィルタをコンテキストに追加する必要があります。