Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何使用工作表中的数据重新排列Google工作表?_Google Sheets_Google Sheets Formula_Array Formulas_Transpose - Fatal编程技术网

Google sheets 如何使用工作表中的数据重新排列Google工作表?

Google sheets 如何使用工作表中的数据重新排列Google工作表?,google-sheets,google-sheets-formula,array-formulas,transpose,Google Sheets,Google Sheets Formula,Array Formulas,Transpose,我得到了以下格式的大量序列化电子表格: 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 我已经尝试过编写一些递归语句来实现这一点,但是一旦我开始在工作表中添加新行,我的循环就会中断。我已经尝试了数百

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

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

我已经尝试过编写一些递归语句来实现这一点,但是一旦我开始在工作表中添加新行,我的循环就会中断。我已经尝试了数百次不同的迭代,我知道这应该是一个相当简单的任务,但遗憾的是,我已经完全脱离了实践。我担心在这一点上我被错误的想法所困扰。任何正确方向的帮助都将不胜感激

您不需要使用谷歌应用程序脚本

尝试以下公式:

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

不同的方法,相同的结果:

=ArrayFormula(SPLIT(QUERY(FLATTEN(SPLIT(FILTER(REPT(A2:A&"\"&B2:B&"^",C2:C),A2:A<>""),"^",0,1)),"Select * Where Col1 <>''"),"\"))
我之所以加上这一点,只是因为不同的人可能会发现其中一个更容易理解和应用。与马里奥斯提出的伟大建议相比,这个公式没有任何实际或性能上的改进

注意:这个公式使用了一个非官方的googlescripts函数flatte