所以在这个例子中,我有3列9个单元格每个。(这只是一个例子,在现实生活中,它可能是100列1000个单元格每个)。
色谱柱:
- 苹果
- 香蕉
- 葡萄
我想创建第4列,其中前3个单元格来自苹果,然后3个单元格来自香蕉,然后3个单元格来自葡萄,然后又3个单元格来自苹果,依此类推...
所以我试着给单元格一个顺序,然后把顺序拖到单词下面,希望Excel能得到我想要的模式。然后我想到把所有3列复制到一列中,并把顺序从小到大排序,但Excel没有得到我想要的模式。
你们知道其他可能的解决方案吗?或者我如何让Excel在向下拖动时获得我的模式?
2条答案
按热度按时间vmjh9lq91#
它堆叠范围并索引它。序列引用正确的行/列。
如果您添加了一个范围,只要您将其添加到
join
,公式仍然有效第一个(行)序列(
(MOD(sq,shift)+1)+shift*INT(sq/(col*shift))
)使用MOD中包含的行 * 列的序列以及您要用作移位的行数作为除数来创建计数器1、2、3、1、2、3等。这将继续引用前三行,但在我们到达每列的第三行后,我们需要移动到下一个行序列。shift*INT(sq/(col*shift)
用于此;总序列的整数除以列数乘以移位创建计数器,该计数器从0开始每9行加1,因此计数器1、2、3、1、2、3等将对前9行加上列数乘以0(3 * 0 = 0);然后对于接下来的九行3 * 1 = 3等等。第二(列)序列
MOD(INT(SEQUENCE(rw*col,,shift)/shift)-1,col)+1)
计算行 * 列的序列的整数(+行移位的数目)除以行移位的数目(-1)。这导致从0开始每三行加1的数字的重复;因此0,0,0,1,1,1,2,2,2等,直到达到行数-1。用列数作为除数将其 Package 在MOD中导致相同的计数器(这次从1开始),但是每次计数器超过列数时,其重置为1;所以1,1,1,2,2,2,3,3,1,1,1,2,2,2,3,3,3,等等。gcmastyq2#
假设输入的总行数可以被
3
整除,那么可以在单元格H2
(* 公式1 *)中尝试:如果不想在输出中生成
Seq
列,则调整CHOOSEROWS
中的范围。在这种情况下,由于返回的是一列,因此可以将CHOOSEROWS
替换为INDEX
。顺便说一下,如果序列数据是要考虑的输入的一部分,那么解决方案更简单:
或者,序列列值可按如下方式生成(
byArr
),并产生与上一公式相同的输出:下面是 * 公式1 * 的输出:
解释(* 公式1 *)
我们使用
REDUCE
连接每次迭代的VSTACK
输出,迭代次数由ROWS(A2:A10)/3
定义,每次迭代通过CHOOSEROWS
选择的行由下式确定:一米一米一。数组(其中
REDUCE
中的每个元素都由cnt
表示):表示我们在每次迭代中应用的偏移量:
0,3,6,...
.DROP
用于删除第一行,因为我们没有合适的值来初始化累加器(ac
)。您可以使用头初始化它,如果您想生成它,则不需要DROP
函数。例如,将REDUCE(""
替换为:REDUCE({"Cells", "Ordered Sequence"}