Google表格 - 数组的新起点

时间:2017-07-18 16:51:02

标签: arrays excel google-sheets

在Google表格中,运行数组以将原始数据转换为可读格式。数组论坛运行一行数据,并使用该数组将数据转换为多行。问题是,对于每一行额外的原始数据,我创建了五行新的转置数据,因此数组公式会中断。试图使数组公式flex适用于添加的数据行 - 任何想法都会受到赞赏!

https://docs.google.com/spreadsheets/d/16GOsH-EUDm2IeRgUgEQ8LBEltQASfJ8hR6GXh-pqNcM/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

您可以使用间接公式和模运算以及整数除法来执行此操作,而不是使用数组公式。在k2中放置公式=indirect("A"&(3+FLOOR((row()-2)/5))),它将从第A行第3行获得日期,直到第7行开始从第4行开始。这个公式可以被拖下来并按照需要每5跳一次。 类似地,=indirect("B"&(3+FLOOR((row()-2)/5)))中的L2位置也可以向下拖动(复制)列。 对于列m,我们需要循环通过c2,d2,e2,f2和g2,因此我们需要模数(时钟)算术。所以在m2中放置公式=indirect(char(CODE("C")+(mod(ROW()-2,5)))&"2")。最后,对于数量,我们需要每5行进行列循环和递增行,因此n2的公式为=indirect(char(CODE("C")+(mod(ROW()-2,5)))&(3+FLOOR((row()-2)/5)))。这也可以被复制下来。应该这样做。肯定会有更优雅的方式。

我认为不是更优雅,但是在j2中保留数组公式为=3+floor((row()-2)/5)并向下拖动,然后将数组公式调整为:={INDIRECT("A" & J2),INDIRECT("B"&J2),$C$2,INDIRECT("C"&J2);INDIRECT("A" & J2),INDIRECT("B"&J2),$D$2,INDIRECT("D"&J2);INDIRECT("A" & J2),INDIRECT("B"&J2),$E$2,INDIRECT("E"&J2);INDIRECT("A" & J2),INDIRECT("B"&J2),$F$2,INDIRECT("F"&J2);INDIRECT("A" & J2),INDIRECT("B"&J2),$G$2,INDIRECT("G"&J2)},可以将其复制到其下方的5行J2变成了J7,你正在处理下一个想要的行。