我正在开展一项小型研究,基本上需要将合适的人配对并为他们分配一对编号,因此每个人都可以分配到A组或B组。 他们基本上需要来自同一个医疗诊所,性别相同,年龄低于80岁或80岁以上。
我不确定这是否可以使用excel,但基本上我有一张表单,其中包含您输入新参与者信息的表单。我需要一个公式,基本上检查这三个条件与以前的条目,找到所有3匹配的人,然后分配相同的对号。如果找不到合适的匹配,则需要分配一个新的对号。
在上面的示例数据集中,我希望I3意识到C3,D3和E3都匹配C2,D2和E2,然后在I3中放入1。
然后对于I4,它会指定一个2,因为它与上面的任何条目都不匹配。同样适用于I5。然后I6会在I4中实现匹配并输入2。
不确定这是否有意义。每对#中也不能超过2个,但是在我能够生成数字之后我可以处理它。
答案 0 :(得分:2)
如果您可以将D列更改为年龄组(71-80,81-90等),则以下公式将作为第一步(超过2人组合在一起)执行您想要的操作。在I3中粘贴以下公式并按cntrl + shift + enter,因为它是一个数组公式。将其复制到下面的其他单元格。
=IFERROR(INDEX(F$1:F2,MATCH(C3&D3&E3,C$1:C2&D$1:D2&E$1:E2,0)),MAX(F$2:F2)+1)
这将当前行中C,D和E列中的字符串组合与前一行中字符串组合的数组相匹配,并指定相同的Pair编号,如果没有匹配则获取下一个新编号。
尝试使用此修改后的公式(数组公式),不要在组中放置两个以上的条目。我创建了另一列G,即G2 = C2& D2& E2
=IF(COUNTIF(G$1:G2,G3)<2,IFERROR(INDEX(F$1:F2,MATCH(C3&D3&E3,C$1:C2&D$1:D2&E$1:E2,0)),MAX(F$2:F2)+1),MAX(F$2:F2)+1)
答案 1 :(得分:1)
此响应通过返回匹配对的实际 PT ID 数字以及唯一的“配对组”标识符来扩展您的原始要求。
使用原始标准年龄段(例如70-80,81 +),并且不会多次使用匹配对。
如果您已经从数据中获得了匹配,那么您将需要返回配对的PT ID。一个简单的INDEX / MATCH函数对可以做到这一点。如果尚未进行匹配,则IFERROR function可以将处理传递给使用INDEX function的嵌套AGGREGATE¹ function,而不是MATCH以返回相应的行号。
AGGREGATE与其SMALL子功能一起使用。这允许COUNTIFS function通过检查先前制作的匹配来增加到第二,第三等配对。
使用扩展的样本数据,I2:K2中的公式为
'formula for I2
=IFERROR(IFERROR(INDEX(B$1:B1, MATCH(B2, I$1:I1, 0)),
INDEX(B:B, AGGREGATE(15, 6, ROW(B$1:INDEX(B:B, MATCH(1E+99, B:B)))/
((B:B<>B2)*(C:C=C2)*(E:E=E2)*IF(D2>80, D:D>80, (D:D>=70)*(D:D<=80))),
COUNTIFS(C$1:C1, C2, E$1:E1, E2, D$1:D1, IF(D2>80, ">80", ">=70"), D$1:D1, IF(D2>80, ">80", "<=80"))+1))),
"NO MATCH")
'formula for J2
=IFERROR(INDEX(J$1:J1, MATCH(I2, B$1:B1, 0)), MAX(J$1:J1)+1)
'formula for K2 (volatile and random - see footnote ⁴)
=IFERROR(IF(INDEX(K$1:K1, MATCH(J2, J$1:J1, 0))="A", "B", "A"), IF(ISNUMBER(I2), CHAR(RANDBETWEEN(65, 66)), ""))
根据需要填写。
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。
²当基于AGGREGATE的公式作为常规公式输入时(即没有CSE),AGGREGATE确实应用循环阵列式处理。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组处理以对数方式咀嚼计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas。
³您的原始叙述声明'...介于70到80岁之间或80岁以上。'而您随后的评论声明'80以下或80以上' 。这些都不是一回事。我使用过原来的原始描述,因为你从未编辑过问题以便澄清。
⁴发往K2的公式是不稳定的,并使用RANDBETWEEN function。对结果感到满意后,使用复制,选择性粘贴,值将公式恢复为其基础值。使用RANDBETWEEN保留公式完整意味着值可能随着整个工作簿中的任何更改而改变。只有每个匹配对的初始A / B值是随机的;该对中的匹配将始终为A或B对应。
答案 2 :(得分:0)
首先,您可以创建一个新列(J)来连接您正在比较的3个值,您可以使用这样的公式执行此操作:
=C2&IF(D2>80,"YES","NO")&D3
你可以用一个公式来填充I2,该公式检查数据集中的连接值是否重复,如下所示:
=COUNTIFS($J$2:$J$6,J2)>1