如何使用表格中的数据重新排列Google表格?

问题描述

我获得了以下格式的大量序列化电子表格:

PN   SN  Qty
1    24   3
2    25   1
3    26   7

我需要编写一个Sheets脚本,该脚本可以重新排列数据,以便标头消失,并推断出数量,然后清除。

例如,所需的结果将是:

1  24
1  24
1  24
2  25
3  26
3  26
3  26
3  26
3  26
3  26
3  26

我尝试编写一些递归语句来实现此目的,但是一旦我开始向工作表中添加新行,我的循环就会中断。我已经尝试了数百次不同的迭代,而我知道这应该是一个相当简单的任务,但可惜,我完全没有实践能力。我担心在这一点上我会迷上错误的主意。任何在正确方向上的帮助将不胜感激!

解决方法

您不需要使用Google Apps脚本。

尝试以下公式:

={ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
 REPT(A2:A&"♠",C2:C),999^99),"♠")))),ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
 REPT(B2:B&"♠","♠"))))}

example

,

不同的方法,结果相同:

=ArrayFormula(SPLIT(QUERY(FLATTEN(SPLIT(FILTER(REPT(A2:A&"\"&B2:B&"^",A2:A<>""),"^",1)),"Select * Where Col1 <>''"),"\"))

我之所以添加它,是因为不同的人可能会发现一个或另一个更易于理解和应用。 Marios提出的伟大建议对该公式没有实际或性能上的好处。

注意:此公式利用了尚未正式使用的Google脚本功能FLATTEN。