【问题标题】:How to find groups of individuals who attended multiple events together?如何找到一起参加多个活动的个人群体?
【发布时间】:2015-02-26 04:42:43
【问题描述】:

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

  1. 找到一起参加三个或更多相同活动的四人小组;
  2. 计算各组一起参加的活动次数,并
  3. 找到相关的事件 ID。

示例输入表 (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 执行此分析的最佳方法(即起点、策略等)的反馈感兴趣。

【问题讨论】:

    标签: vba excel pivot-table


    【解决方案1】:

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

    【讨论】:

    • 这次打败了我。您可以按照自己的方式进行设置,也可以将事件放在行中(与与会者一起),但请确保事件在与会者之前分组;即事件列在顶部。这样它只会给你一个列表,而不是这个网格状结构。我个人倾向于使用列表结构而不是这种网格结构。
    • 哦,那么这可能是一个更好的方式来看待它。我以为他的意思是他想知道哪个活动有 4 人以上参加;这样你就可以把它全部设置成一行。我不介意小总数..我认为有办法删除它们,但我喜欢它们,所以我把它们留在那里
    • 关于小计的主题,我通常做的一件事是更改数据透视表的格式,以便带有小计的行与组成的值具有不同的颜色/色度它。使其更易于阅读,并且看起来也不错
    • 感谢您的回复!我绝对对替代方法感兴趣。数据透视表非常适合示例数据。我很抱歉没有在我的问题中澄清,我正在寻找一种更自动化的解决方案,可以在数千个活动和与会者中使用。我的理解是在创建数据透视表后,您需要对组进行手动/视觉搜索。想法?谢谢!
    • 好吧,IDK,你没看错,因为我没有。我认为您设置它的方式仍然应该进行小计(尽管在底部,在右侧的总计栏中)。要进行突出显示,数据透视表工具 => 设计 => 向下单击两次,然后选择该行上的任何内容。这些是我倾向于使用的(中 1 - 6)
    【解决方案2】:

    不幸的是,pnuts 该表没有将E1,E2,E3 唯一标识为具有A1,A2,A21,A22E1,E2,E3A2,A21,A22,A23 标识为满足条件。

    mc,我可能会这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多