Google sheets 将多列数据转换为具有类型列(其值基于原始列名称)的三元组行

Google sheets 将多列数据转换为具有类型列(其值基于原始列名称)的三元组行,google-sheets,Google Sheets,我在谷歌表格中有如下数据: 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 做这件事最简单的方法是什么?不确定这是不是最简单的,但这对我来说很有效 =ArrayFo

我在谷歌表格中有如下数据:

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

做这件事最简单的方法是什么?

不确定这是不是最简单的,但这对我来说很有效

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

编辑

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

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

哇,这几乎奏效了!唯一的一个小问题是“Entity”的一些值实际上包含逗号,因此我认为需要以某种方式处理这些值。也许逗号不是一个很好的分隔符选择,我们来看看。实体是否包含像|#等字符?不,它们没有任何奇怪的东西。你现在在这里使用的角色应该可以。