如何find一起参加多个活动的人群?

我有一个与参加者(参加者ID)和事件(事件ID)列表的表。 每个活动都有几个参加者,有数名参加者参加了多个活动。 我需要:

  1. find一起参加三个或更多相同事件的四个参加者组;
  2. 统计小组一起参加的事件的数量,以及
  3. find相关的事件ID。

示例input表(CSV):

Event ID,Attendee ID E1,A1 E1,A2 E1,A21 E1,A22 E1,A23 E1,A24 E2,A7 E2,A1 E2,A2 E2,A21 E2,A22 E2,A23 E2,A24 E3,A14 E3,A1 E3,A2 E3,A21 E3,A22 E3,A23 E3,A24 E3,A18 E3,A19 E4,A20 E4,A21 E4,A22 E4,A23 E4,A24 

示例所需输出(以任何格式):

  • 一组四位参加者(A21,A22,A23,A24)一起参加了四场活动(E1,E2,E3,E4)。

要求的反馈 :不寻找特定的代码,但对使用Excel VBA(即起点,策略等)执行此分析的最佳方法的反馈感兴趣。

我认为这是一个练习,你对另一种方法不感兴趣,但是如果其他人认真考虑这个post,最简单的解决scheme可能是应用一个数据透视表:

SO27698305的例子

不幸的是,表中并没有唯一标识E1,E2,E3具有A1,A2,A21,A22E1,E2,E3作为A2,A21,A22,A23符合标准。

MC,我可能会做这样的事情:

  1. 为每个唯一事件build立{event}"E2" {string of all attendants}"A1,A2,A7,A21,A22…"的字典。
  2. build立与会者名单(不重复)。
  3. 从与会者列表中构build四个与会者string("A1,A2,A21,A22"…)并在字典中查找子string
  4. logging3个或更多事件发生在表中匹配string的结果。