Google 工作表公式将列标题转为行
Google sheets formula transposing column title to row
附上我的问题link
我想这样转置数据。
我的原始数据可能有几千行。
我的想法是把我的专栏标题做成同样数量的表格,然后把四个表格合二为一。我的想法也在 google sheet 上。它可能会起作用,但我想要一个更好的解决方案。
A picture of my question
尝试
=query(arrayformula(split(flatten({(A3:A4&"♦"&B3:B4&"♦"&C3:E4)}),"♦")),"select * where Col3 is not null")
说明
第一步:=arrayformula(A3:A4&"♦"&B3:B4&"♦"&C3:E4)
step2: =arrayformula(flatten(A3:A4&"♦"&B3:B4&"♦"&C3:E4))
, flatten 会将所有数据放在一个列中 flatten()
第三步:=query(arrayformula(split(flatten({(A3:A4&"♦"&B3:B4&"♦"&C3:E4)}),"♦")),"select * where Col3 is not null")
在发现 FLATTEN() 函数后的过去几年里,我已经回答了数百次这个问题,我决定为 Google AppsScript 编写一个自定义函数来完成它。虽然在某种意义上,自定义函数比 SPLIT(FLATTEN( 公式化的解决方案更不透明,你会在过去几年的论坛中找到它,但它至少更容易被用户理解。
在您共享的 sheet 中有一个名为 MKHelp.gs 的新脚本文件。在里面,你会发现the code that I wrote构造了“UNPIVOT()”函数。
在 sheet 的新选项卡上,您会在名为 MK.Help 的选项卡中找到此公式。
=QUERY(UNPIVOT(A2:B,"V",C2:E,"B",C1:E1,"H"),"where Col3 is not null")
要使 unpivot 正常工作,最好用 query() 包围它以清除不必要的行。在您的情况下,“金额”不是“空”或“空”。
每个范围后面的字母“V”、“H”或“B”描述了输入数据的“形状”。无论是“垂直”、“水平”还是“两者”。
附上我的问题link
我想这样转置数据。
我的原始数据可能有几千行。
我的想法是把我的专栏标题做成同样数量的表格,然后把四个表格合二为一。我的想法也在 google sheet 上。它可能会起作用,但我想要一个更好的解决方案。
A picture of my question
尝试
=query(arrayformula(split(flatten({(A3:A4&"♦"&B3:B4&"♦"&C3:E4)}),"♦")),"select * where Col3 is not null")
说明
第一步:
=arrayformula(A3:A4&"♦"&B3:B4&"♦"&C3:E4)
step2:
=arrayformula(flatten(A3:A4&"♦"&B3:B4&"♦"&C3:E4))
, flatten 会将所有数据放在一个列中 flatten()第三步:
=query(arrayformula(split(flatten({(A3:A4&"♦"&B3:B4&"♦"&C3:E4)}),"♦")),"select * where Col3 is not null")
在发现 FLATTEN() 函数后的过去几年里,我已经回答了数百次这个问题,我决定为 Google AppsScript 编写一个自定义函数来完成它。虽然在某种意义上,自定义函数比 SPLIT(FLATTEN( 公式化的解决方案更不透明,你会在过去几年的论坛中找到它,但它至少更容易被用户理解。
在您共享的 sheet 中有一个名为 MKHelp.gs 的新脚本文件。在里面,你会发现the code that I wrote构造了“UNPIVOT()”函数。
在 sheet 的新选项卡上,您会在名为 MK.Help 的选项卡中找到此公式。
=QUERY(UNPIVOT(A2:B,"V",C2:E,"B",C1:E1,"H"),"where Col3 is not null")
要使 unpivot 正常工作,最好用 query() 包围它以清除不必要的行。在您的情况下,“金额”不是“空”或“空”。
每个范围后面的字母“V”、“H”或“B”描述了输入数据的“形状”。无论是“垂直”、“水平”还是“两者”。