按每行中的多个电子邮件地址过滤

按电子邮件地址过滤的工作原理是将已登录查看者的地址与数据源中包含有效电子邮件地址的字段进行比较。对于数据中的每一行,过滤器都会检查查看者的电子邮件地址是否与该行中的地址匹配。

请思考以下数据:

邮件 数据
alan@example.com abc
mary@example.com cde
alan@example.com efg
mary@example.com ghi

如果按电子邮件地址过滤此数据,并且用户 alan@example.com 查看过滤后的报告,则此用户只会看到数据 abcefg。如果另一个用户 mary@example.com 查看同一报告,则此用户会看到数据 cdeghi

如果查看者与数据之间存在一对一关系,此方法可行。但是,如果您还希望用户 manager@example.com 看到数据,该怎么办?也就是说,您希望许多人看到相同的数据行(多对多关系)。

由于按电子邮件过滤仅适用于每行一个地址,因此您无法在电子邮件 字段中添加电子邮件地址列表。例如,在电子邮件 字段中添加电子邮件地址列表(如下所示)将不起作用:

邮件 数据
alan@example.com, manager@example.com, vp@example.com, bigwig@customer.com abc

解决方案:使用数据混搭

您可以通过将地址表与数据混搭,在电子邮件地址与数据之间创建多对多关系,并使用任何通用字段作为联接键。

水果摊示例

您管理一家农产品公司,并希望向销售代表展示他们在所服务的各个水果摊的业绩。多位销售人员可以服务多个摊位。如需过滤数据,以便销售人员仅看到自己的数据,您可以执行以下操作:

第 1 步:创建访问权限控制列表表

在此步骤中,您将创建一个访问权限控制列表 (ACL) 表,其中包含授权销售人员的电子邮件地址,并与可用作混搭联接键的数据字段(水果摊名称)配对。

销售代表电子邮件 联接键
salesrep1@example.com 水果摊 A
salesrep2@example.com 水果摊 A
salesrep1@example.com 水果摊 B

salesrep2@example.com

水果摊 C

访问控制列表 (ACL) 表

请注意,用户 salesrep1@example.com 可以查看水果摊 A 和水果摊 B 的数据,而用户 salesrep2@example.com 可以查看水果摊 A 和水果摊 C 的数据。

第 2 步:创建数据表

数据表会跟踪每位代表向每个水果摊的销售额。

水果摊 水果 销售额
水果摊 A Apple 50
水果摊 A Banana 26
水果摊 A Orange 20
水果摊 A Pear 93
水果摊 B Apple 98
水果摊 B Banana 86
水果摊 B Orange 7
水果摊 B Pear 85
水果摊 C Apple 21
水果摊 C Banana 61
水果摊 C Orange 3
水果摊 C Pear 78

数据表

第 3 步:将电子邮件过滤器应用于 ACL 表

如需将电子邮件过滤器应用于 ACL 表,请完成以下步骤:

  1. 修改数据源 ACL 表。
  2. 点击按电子邮件过滤
  3. 为过滤器选择销售代表电子邮件 字段。

第 4 步:将 ACL 表与数据表混搭

最后,将 ACL 表与数据表混搭。如需将销售代表电子邮件作为列添加到数据表中,请从 ACL 表开始,然后左联接数据表。

如果未应用电子邮件过滤器,您将看到两位销售代表的所有记录。但是,如果应用了电子邮件过滤器,将 ACL 表与销售数据表混搭会根据查看报告的销售人员过滤数据。以下是每位代表在查看报告时会看到的内容:

销售代表 1 看到的内容

水果摊 水果 销售额
水果摊 A Apple 50
水果摊 A Banana 26
水果摊 A Orange 20
水果摊 A Pear 93
水果摊 B Apple 98
水果摊 B Banana 86
水果摊 B Orange 7
水果摊 B Pear 85

销售代表 2 看到的内容

水果摊 水果 销售额
水果摊 A Apple 50
水果摊 A Banana 26
水果摊 A Orange 20
水果摊 A Pear 93
水果摊 C Apple 21
水果摊 C Banana 61
水果摊 C Orange 3
水果摊 C Pear 78