圆形列表从下到上旋转 - Excel公式

时间:2014-12-22 03:31:58

标签: excel excel-formula

我有一份人员名单,可能是不同的人数。我想每年轮换它们。但它们不能旋转到相同的位置。如,

Paul       Lysander
George     Paul
Lysander   George

明年:

Paul       George
George     Lysander
Lysander   Paul

但从不:

Paul       Paul
George     George
Lysander   Lysander

出于某种原因,我甚至无法想到从哪里开始。它必须是一个公式,并且可以灵活地添加或带走人。

更新

好的,这是“简单”的部分。现在我只需要找出困难的部分 - 不要重复:

Base Year: 1968
#OfPeople: =COUNTA(B:B)-1
Offset:    =YEAR(NOW())-BaseYear
New Row    =MOD(row()+Offset, #OfPeople)+2

2 个答案:

答案 0 :(得分:1)

对于不重复,您可以使用公式(在C2中,见下图):

=MOD(C1-1,$A$3-1)+1

这个号码(比如Offset1)会给你" true"您必须轮换(循环)列表的次数。 C1包含循环的顺序(您的Offset或"虚拟"旋转次数),A3包含项目数(可能是#OfPeople+1)。 Offset1会替换Offset。随着Offset增加(= 1,2,3,4,5,...),Offset1循环为1,2,3,1,2,......(如果项目数量)在你的清单中是4)。所以,你实际上是跳过0(这给你原来的清单)。 如果我不完全理解您的描述,但是遵循发布的本质,您可能需要稍微改变。

然后计算旋转值,输入C3

=OFFSET($B$3,MOD(ROW($B3)-ROW($B$3)-C$2,$A$3),0)

并向下复制到右边。

没有数组公式,也没有查找公式。根据工作表的大小,这可能比查找更快。

enter image description here

答案 1 :(得分:0)

这可以让你开始:

假设你的名字列表在B1:B3中,你在A1:A3中有数字1,2,3。

现在定义一个单元格,比如C1,用​​自第一年起经过的年数。这将是0 =第一年,1 =第二,2 =第三,等等。

最后,在单元格D1中输入公式= VLOOKUP(MOD(A1- $ C $ 1-1; 3)+1; $ A $ 1:$ B $ 3; 2)并将公式复制到单元格D2和D3。 / p>

当C1 = 0时,公式会复制三个名称。当C1 = 1时,名称旋转1.当C1 = 2时,名称再次旋转一次。