最大限度地增加客人在会议上的新接触次数

iklwldmw  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(357)

我正在主持一系列会议。有24位客人。每次开会两三次,我们分成2-6人的不同小组。我想最大限度地增加新的遭遇,所以我正在寻找一个算法,以帮助我作出新的匹配,所以每个人都可以满足其他人。
我目前的想法是将数据记录在googlesheets中,然后使用查询功能分析数据(查询与sql语法非常相似。)
这是圆桌会议:

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将这些输入表转换成输出图表?

vuktfyat

vuktfyat1#

如果在共享工作表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选项卡时,它将无限期地自我填充。
你就是为了这个?

cgyqldqp

cgyqldqp2#

我想出了一个答案,用了一个非常艰苦的过程!如果我在这里解释的话,也许有人能帮我想一想如何让这更简单。
我从这张表中的示例数据开始。
在最初的问题中,我描述了每轮一个表,但我不关心在哪轮中有人遇到,所以我可以将所有数据合并到一个表中。所以在这个表中,每行显示一个子组:

然后我做一长串的match()、transpose()、filter()、join()、split(),直到得到这个表,其中显示了谁遇到了谁:

从那里,生成我要的输出图表并不难

真管用!但它不是很优雅。我很想让这更简单。

相关问题