首页 > 解决方案 > 将多列数据转换为三元组的行,其类型列的值基于原始列名

问题描述

我在 Google 表格中有如下数据:

Entity  A   B   C

foo     42  27  13
bar     67  17  94

我想把它变成这样:

Entity  Type  Value

foo     A     42
foo     B     27
foo     C     13
bar     A     67
bar     B     17
bar     C     94

最简单的方法是什么?

标签: google-sheets

解决方案


不确定它是否是最简单的,但这对我有用

=ArrayFormula(split(transpose(split(textjoin(";",true,A2:A3&","&B1:D1&","&B2:D3),";")),","))

在此处输入图像描述

编辑

我使用逗号作为列之间的分隔符,并使用分号作为行之间的分隔符,因为它们在设置数组常量时在 Google 表格和 Excel 中使用,但是您可以选择任何一对字符以避免与使用的字符集发生冲突您的数据,例如

=ArrayFormula(split(transpose(split(textjoin("§",true,A2:A3&"¶"&B1:D1&"¶"&B2:D3),"§")),"¶"))

推荐阅读