Unpivot矩阵到表格。将两个变量的计数用于单个行

时间:2015-08-04 17:04:04

标签: google-sheets

我有一个基本的注册格式,矩阵格式,第一列中的名称和第一行中的日期。

A2:A20名称(班级大小的范围变化)

B1:E1日期(范围变化)

A2:E20 =计数数字:(1到5)

我想将其转换为表格格式,考虑计数,取消结果。

因此,如果名称1 第1天名称2 中参加两次第2天并且姓名3 第3天出席5次:输出显示:

第1行:n1,d1

第2行:n1,d1

第3行:n2,d2

第3行:n3,d3

第3行:n3,d3

第3行:n3,d3

第3行:n3,d3

第3行:n3,d3

有人可以帮我吗?这可以在Google表格上使用吗?

1 个答案:

答案 0 :(得分:1)

对于Google表格解决方案:

=ArrayFormula(TRANSPOSE(TRIM(SPLIT(QUERY(TRANSPOSE(QUERY(REPT(A2:A20&", "&B1:E1&" ",B2:E20),,100)),,100)," ",0))))

REPT为矩阵中的每个值 n 形成一个字符串,该字符串以逗号分隔的名称和日期重复, n 次。内部QUERY是一个强大地连接每个列的技巧,以空格分隔。 100只需要是一个你知道的值超过矩阵中的行数。

TRANSPOSE使得结果数组垂直,外部QUERY再次连接此数组,以空格分隔(在这种情况下,100需要超过源矩阵中的列数)。

您最终得到一个字符串,其中名称 - 日期对由一行中至少两个空格分隔。 SPLIT将字符串拆分为这些双空格,TRIM除去了结果字符串两端的不需要的空格。外TRANSPOSE使输出垂直。