我正在尝试从排名中进行大量转变,并且不知道使用什么公式?
基本上我们有一个绩效分数和一个排名功能,可以找到最佳表现者。排名越高,您获得第一班次选择的可能性就越大。
然而,每个班次只有一定的数量。
请参阅以下电子表格以获得更好的理解。我正在寻找一个可以输入班次栏的公式,以显示每个人的转变。 VBA也很好。
答案 0 :(得分:1)
你可以用一个公式来做,但它将是一个很大的公式。基本上,您需要一系列VLOOKUP,封装在一系列IF语句中。
逻辑的一个例子:
IF(Rank<=VLOOKUP(Choice1), Choice1, If(Rank<=(VLOOKUP(Choice1) + VLOOKUP(Choice2), Choice2, IF( ...
我建议减少公式的大小,添加一些额外的列,并在新列中执行一些计算。
例如:
T2 becomes =VLOOKUP(G2, $P$1:$R$6, 3, FALSE)
U2 becomes =T2 + VLOOKUP(H2, $P$1:$R$6, 3, FALSE)
等,以便您查找当前的班次值并将其添加到累计总数中。
然后在M (Shift)
中,您有IF
声明:
=IFERROR(INDEX(G2:K2,0,IFNA(MATCH(L2,T2:X2,1)+1,1)),K2)
MATCH
会查看排名累计班次总数中的列数(即他们是否获得首选)。
INDEX
会在选项列中找到该选项的转移。
注意:正如评论中所提到的,这对于排名冲突没有处理(其中不止一个人具有相同的排名)。
为什么+1 / IFNA
/ IFERROR
?匹配将在不超过总数时退回;等级24 - 你想成为选择3 - 将超过选择2但不超过选择3.因此匹配将认为它是选择2,因为那是它超过的最后一个。将它与B匹配以正确匹配Choice 3.这引入了它永远不会与Choice 1匹配的挑战,就好像它小于Choice 1中的值,它将不匹配;这由IFNA补偿说“如果你没有得到匹配,则返回1”。
IFERROR
怎么样?还记得我们把它撞到+1吗?这意味着你可以获得一个与任何选项都不匹配的值6(例如,如果你最终得到的移位数超过了数量)。 IFERROR
将其归结为选择5。