合并两列并添加一个额外的列,其中填充了第一列的 headers

Merge two columns and add one extra column filled with headers from the two first column

我有这个:

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),";"))

但后来我卡住了!

假设您显示的列是 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} 进行堆叠。