循环列表从下到上旋转 – Excel公式

我有一个人的名单,可能是不同的人数。 我想每年轮换他们。 他们不能旋转到相同的位置,虽然。 例如,

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 

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

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

这个数字(比如Offset1 )会给你“真实”的次数,你必须旋转(循环)你的列表。 C1包含周期的顺序(您的Offset或“虚构”旋转次数),A3包含项目的数量(可能是#OfPeople+1 )。 Offset1将取代Offset 。 随着Offset增加(= 1,2,3,4,5,…), Offset1循环为1,2,3,1,2,…(如果列表中的项目数为4)。 所以,你正在跳过0(这给你的原始列表)。 如果我没有完全理解你的描述,但是追踪到本质,你可能需要做些微小的改动。

然后计算旋转的值,你inputC3

 =OFFSET($B$3,MOD(ROW($B3)-ROW($B$3)-C$2,$A$3),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。

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