合并两列并添加一个额外的列,这些列填充了第一列的两个标题。

时间:2016-12-13 00:48:37

标签: google-sheets spreadsheet

我的标题不是很清楚所以这是一个例子。

我有这个:

Date          Header1           Header2      
01/01/2016  value_header1_1    value_header2_1
02/01/2016  value_header1_2    value_header2_2
03/01/2016  value_header1_3    value_header2_3
04/01/2016  value_header1_4    value_header2_4
05/01/2016  value_header1_5    value_header2_5

我想要这个:

Date          Header1         Extra column       
01/01/2016  value_header1_1   header1    
02/01/2016  value_header1_2   header1 
03/01/2016  value_header1_3   header1 
04/01/2016  value_header1_4   header1 
05/01/2016  value_header1_5   header1 
01/01/2016  value_header2_1   header2
02/01/2016  value_header2_2   header2
03/01/2016  value_header2_3   header2
04/01/2016  value_header2_4   header2
05/01/2016  value_header2_5   header2

我已经开始使用以下公式:

=transpose(split(join(";",'Daily data'!B1:B,'Daily data'!C1:C),";"))

但后来我被卡住了!

由于

1 个答案:

答案 0 :(得分:2)

假设您显示的列是A:C,则以下公式有效:

={filter({A2:A, B2:B, iferror(A2:A/0, "header1")}, len(A2:A)); filter({A2:A, C2:C, iferror(A2:A/0, "header2")}, len(A2:A))}

第一部分形成一个三列数组,其中第三列是“header1”(通过人为地抛出除以零的错误并将“header1”与iferror放在一起而创建)。第二个是相同的,但使用A和C而不是A和B.在这两种情况下,过滤器确保我们不包含A中的行为空。最后,使用垂直堆栈表示法{array1; array2}堆叠两个数组。