首页 > 解决方案 > 在会议上最大限度地增加客人之间的新相遇次数

问题描述

我正在主持一系列会议。有24位客人。每次会议两到三次,我们分成 2-6 人的不同小组。我想最大化新的相遇,所以我正在寻找一种算法来帮助我进行新的匹配,这样每个人都可以遇到其他人。

我目前的想法是将数据记录在 Google Sheets 中,然后使用QUERY 函数来分析数据。(QUERY 与 SQL 语法非常相似。)

这是“Round1”表:

subgroup1 |  subgroup2
==========|==========
Adam      |  Edith
Ben       |  Fran
Chris     |  Gary
Dave      |

'Round2' 的表格如下所示:

subgroup1 |  subgroup2 | subgroup3 
==========|============|===========
Adam      |  Ben       | Dave
Gary      |  Fran      | Edith
Chris     |            |

我想要做的是使用这些数据并输出这样的图表,显示谁遇到了谁:

      Adam     Ben     Chris    Dave   Edith   Fran    Gary
Adam   X       TRUE    TRUE     TRUE   FALSE   FALSE   TRUE
Ben   TRUE      X      TRUE     TRUE   FALSE   TRUE    FALSE
Chris TRUE     TRUE     X       TRUE   FALSE   FALSE   TRUE
Dave  etc...
Edith etc...
Fran  etc..
Gary  etc...

谁能帮助我思考如何使用 QUERY/SQL 将这些输入表转换为输出图表?

标签: sqlalgorithmgoogle-sheetsmatch

解决方案


如果您查看共享工作表上名为 MK.Help 的新选项卡上的单元格 B3,您会发现这个公式:

=ARRAYFORMULA(IF((B2:2="")+(ROW(A3:A)>COLUMN(B2:2)),,COUNTIF(QUERY(TRANSPOSE('One table'!A:E),,9),"*"&A3:A&"*"&B2:2&"*")+COUNTIF(QUERY(TRANSPOSE('One table'!A:E),,9),"*"&B2:2&"*"&A3:A&"*")))

这告诉您基于名为 OneTable 的选项卡的热图计数,仅此而已。当您将组添加到 OneTable 选项卡时,它将无限期地自行填充。

这就是你的目的吗?


推荐阅读