循环列表从下到上旋转 – 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时,名称再次旋转一次。