如何解决逐行转置表格
我需要逐行转置表格的一部分。以下示例说明了结果需要的样子:
我尝试了 arrayformula()
、flatten()
和 transpose()
的不同组合,成功地使用 =arrayformula(FLATTEN(B4:C))
获得了最后一列,但现在需要帮助解决此问题。>
解决方法
在示例截图的第 2 行试试这个:
={flatten({A2:A,A2:A}),arrayformula(flatten({if(A2:A<>"",B$1,),if(A2:A<>"",C$1,)})),flatten({B2:C})}
或者如果你想要列标题,把它放在第 1 行:
={"A","B","C";flatten({A2:A,flatten({B2:C})}
新列 'C' 最终成为混合数据类型,因此如果您对这些结果运行 future query
时要小心,因为它不喜欢混合数据。
对于本地实现(根据您的初始屏幕抓图,EU 语言环境文件),请在单元格 E4
中尝试此操作 - 由于公式位于第 4 行,因此数组范围需要从4 (A4:A
):
={flatten({A4:A\A4:A})\arrayformula(flatten({if(A4:A<>"";B$3;)\if(A4:A<>"";C$3;)}))\flatten({B4:C})}
或者,如果您想要列标题,请在单元格 E3
中尝试此操作 - 数组范围仍然是 A4:A
,因为 "A"\"B"\"C";
将标题放在第 3 行, ;
是一个返回,然后公式的其余部分从第 4 行开始向下定位数据:
={"A"\"B"\"C";flatten({A4:A\A4:A})\arrayformula(flatten({if(A4:A<>"";B$3;)\if(A4:A<>"";C$3;)}))\flatten({B4:C})}
如果您想将数组范围限制为特定行而不是处理整个工作表(例如第 20 行),则 A4:A
需要为 A4:A20
。
这是一个基本的 SPLIT(FLATTEN(problem.
)Arrayformula() 可以始终存在于公式的外部,并将应用于整个事物。 这是在您的示例中名为 MK.Help 的新选项卡上:
=ARRAYFORMULA(QUERY(TO_TEXT(SPLIT(FLATTEN(Data!A2:A&"|"&Data!B1:C1&"|"&Data!B2:C);"|";0;0));"where Col1<>''"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。