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

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

请思考以下数据:

邮件 数据
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 查看数据,该怎么办?也就是说,您希望许多人看到相同的数据行(多对多关系)。

由于按电子邮件地址过滤时,每行只能包含一个地址,因此您无法在电子邮件字段中添加电子邮件地址列表。例如,在 Email 字段中添加电子邮件地址列表(如下所示)将无法正常运行:

邮件 数据
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 香蕉 26
水果摊 A 橙色 20
水果摊 A 93
水果摊 B Apple 98
水果摊 B 香蕉 86
水果摊 B 橙色 7
水果摊 B 85
水果摊 C Apple 21
水果摊 C 香蕉 61
水果摊 C 橙色 3
水果摊 C 78

数据表格

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

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

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

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

最后,将数据表与 ACL 表混合。由于我们希望有效地将销售代表电子邮件地址作为列添加到数据表中,因此我们将从数据表开始,然后左联接 ACL 表。

如果不应用电子邮件过滤条件,您将看到两位销售代表的所有记录。不过,应用电子邮件过滤条件后,将 ACL 表与销售数据表进行混合作业会根据查看报告的销售人员来过滤数据。以下是每位代表在查看报告时会看到的内容:

销售代表 1 会看到以下内容

数据 水果 销售
水果摊 A Apple 50
水果摊 A 香蕉黄 26
水果摊 A 橙色 20
水果摊 A 93
水果摊 B Apple 98
水果摊 B 香蕉黄 86
水果摊 B 橙色 7
水果摊 B 85

销售代表 2 会看到以下内容

数据 水果 销售
水果摊 A 香蕉黄 26
水果摊 A 橙色 20
水果摊 A Apple 50
水果摊 A 93
水果摊 C 香蕉黄 61
水果摊 C 橙色 3
水果摊 C Apple 21
水果摊 C 78