【问题标题】:Secret Santa Generator using Google Sheets使用 Google 表格的秘密圣诞老人生成器
【发布时间】:2022-11-17 08:10:43
【问题描述】:

我正在使用 Google 表格制作秘密圣诞老人生成器,但遇到了一个我似乎无法解决的问题。您如何确保人们不会收到属于同一家庭组的受赠人?

目前我有一个工作系统,可以查看人员的名字并检查是否有人自己被分配。但是,这是否可以通过考虑名字和姓氏来确保不会给来自同一家庭的人提供他们的伴侣来做到这一点?

目前我的公式如下;

A B C D E F
1 Person Rand No. Rank Giftee Run Again?
2 1 Louise H. =RAND() =RANK(C2,C2:C5) =VLOOKUP(D2,A2:B5,2,0) =IF(B2=E2,"Error - Run Again","")
3 2 Matt H. =RAND() =RANK(C3,C3:C5) =VLOOKUP(D3,A2:B5,2,0) =IF(B3=E3,"Error - Run Again","")
4 3 Matt C. =RAND() =RANK(C4,C3:C5) =VLOOKUP(D4,A2:B5,2,0) =IF(B4=E4,"Error - Run Again","")
5 4 Liz C. =RAND() =RANK(C5,C3:C5) =VLOOKUP(D5,A2:B5,2,0) =IF(B5=E5,"Error - Run Again","")
6 5 Barbara D. =RAND() =RANK(C6,C3:C5) =VLOOKUP(D6,A2:B5,2,0) =IF(B6=E6,"Error - Run Again","")
7 6 Barbara D. =RAND() =RANK(C7,C3:C5) =VLOOKUP(D7,A2:B5,2,0) =IF(B7=E7,"Error - Run Again","")

依此类推,适用于需要的其他人。

任何人有一些想法来考虑家庭情况?

【问题讨论】:

  • B 中的所有单元格是否只由一个名字和一个姓氏组成?
  • 与所需输出的示例共享工作表示例

标签: excel google-sheets excel-formula google-sheets-formula


【解决方案1】:

如果您的列表在第二个名字中始终有姓氏,您可以设置此公式:

=byrow(B2:B,lambda(each,if(each="","",if(REGEXEXTRACT(each,"s+[^s]+")=REGEXEXTRACT(offset(each,0,3),"s+[^s]+"),"Same family - Run again",""))))

注意:offset 的值 3 决定了分隔这两个名称的列数。如果它改变了,改变那个数字

你可以做的一件事是,为了不让你的受赠人解决方案被重新安排得比你希望的更远,你可以制作 B 列的副本并随机化:

这样你就可以只在你想要的时候随机化(你可以节省 C 和 D 列)

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 2010-09-21
    • 2013-11-10
    • 2016-05-23
    • 2022-01-12
    • 1970-01-01
    • 2022-01-15
    • 2017-04-24
    • 1970-01-01
    相关资源
    最近更新 更多