如何使用 sheet 中的数据重新排列 Google Sheet?
How can I rearrange a Google Sheet using the data within the sheet?
我得到了以下格式的大量序列化传播sheet:
PN SN Qty
1 24 3
2 25 1
3 26 7
我需要编写一个可以重新排列数据的表格脚本,以便 headers 消失,并推断出数量,然后清除。
例如,期望的结果是:
1 24
1 24
1 24
2 25
3 26
3 26
3 26
3 26
3 26
3 26
3 26
我已经尝试编写一些递归语句来实现此目的,但是一旦我开始向 sheet 添加新行,我的循环就会中断。我已经尝试了数百种不同的迭代,我知道这应该是一项相当简单的任务,但唉,我很缺乏实践。我担心此时我执着于错误的想法。任何正确方向的帮助将不胜感激!
您不需要使用 google 应用程序脚本。
试试下面的公式:
={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 <>''"),"\"))
我添加这个只是因为不同的人可能会发现一个或另一个更容易理解和应用。与 Marios 给出的重要建议相比,此公式没有实际或性能提升。
注意:此公式使用了一个非官方的 Google 脚本函数,FLATTEN。
我得到了以下格式的大量序列化传播sheet:
PN SN Qty
1 24 3
2 25 1
3 26 7
我需要编写一个可以重新排列数据的表格脚本,以便 headers 消失,并推断出数量,然后清除。
例如,期望的结果是:
1 24
1 24
1 24
2 25
3 26
3 26
3 26
3 26
3 26
3 26
3 26
我已经尝试编写一些递归语句来实现此目的,但是一旦我开始向 sheet 添加新行,我的循环就会中断。我已经尝试了数百种不同的迭代,我知道这应该是一项相当简单的任务,但唉,我很缺乏实践。我担心此时我执着于错误的想法。任何正确方向的帮助将不胜感激!
您不需要使用 google 应用程序脚本。
试试下面的公式:
={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 <>''"),"\"))
我添加这个只是因为不同的人可能会发现一个或另一个更容易理解和应用。与 Marios 给出的重要建议相比,此公式没有实际或性能提升。
注意:此公式使用了一个非官方的 Google 脚本函数,FLATTEN。