问题描述
我获得了以下格式的大量序列化电子表格:
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&"♠","♠"))))}
,
不同的方法,结果相同:
=ArrayFormula(SPLIT(QUERY(FLATTEN(SPLIT(FILTER(REPT(A2:A&"\"&B2:B&"^",A2:A<>""),"^",1)),"Select * Where Col1 <>''"),"\"))
我之所以添加它,是因为不同的人可能会发现一个或另一个更易于理解和应用。 Marios提出的伟大建议对该公式没有实际或性能上的好处。
注意:此公式利用了尚未正式使用的Google脚本功能FLATTEN。