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

时间:2014-12-30 01:06:38

标签: excel vba excel-vba pivot-table

我有一张表格,其中列出了与会者(参加者ID)和活动(活动ID)。每个活动都有几位与会者,一些与会者参加了多个活动。我需要:

  1. 找到四个参加过三个或三个以上相同活动的与会者的小组;
  2. 计算小组一起参加的活动数量,
  3. 找到相关的事件ID。
  4. 示例输入表格(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执行此分析的最佳方法(即起点,策略等)感兴趣。

2 个答案:

答案 0 :(得分:1)

我认为这是一个练习,你对另一种方法不感兴趣,但是如果其他人认真地发现这篇文章,那么最简单的解决方案可能是应用数据透视表:

SO27698305 example

答案 1 :(得分:0)

不幸的是pnuts该表未将E1,E2,E3唯一标识为A1,A2,A21,A22E1,E2,E3符合A2,A21,A22,A23符合标准。

mc,我可能会这样做:

  1. 为每个独特的活动构建{event}"E2" {string of all attendants}"A1,A2,A7,A21,A22…"字典。
  2. 建立与会者列表(非重复)。
  3. 来自与会者列表的
  4. 构建四个与会者字符串("A1,A2,A21,A22"…)的组合并在字典中查找子字符串
  5. 记录结果,其中发生了3个或更多事件以匹配表中的字符串。