Google表格可以在数组中添加帮助列,而无需编辑原始源

时间:2019-06-27 22:09:52

标签: google-sheets concatenation google-sheets-formula array-formulas google-sheets-query

此代码可以正常工作

=arrayformula({Sheet1!A:A;Sheet2!A:A})

但我想在其旁边添加一列

=arrayformula({Sheet1!A:A,"from sheet 1";Sheet2!A:A,"from sheet 2"})

有没有一种方法可以使我的查询更整洁,还是真的需要在每张工作表中创建一堆帮助器列,因为我无法预测数据量。我也很好奇,因为在某些情况下我无法编辑试图以此方式提取的原始数据。

例如,数据输出应如下所示... 两列...

a sheet1
b sheet1
c sheet2
d sheet2
e sheet2

我知道如何通过helper列完成此操作,但希望有一种方法可以将其推入数组公式中,通常我会添加它,但是在这种情况下,我不知道有多少行,因此必须重复在公式中重复“从工作表1”,“从工作表1”的次数。

我目前最干净的解决方案是添加此帮助列

=arrayformula(if(isblank(A:A),"","sheet1"))

但是我想知道如何“紧凑”,为了理智起见,我可以使用{...,...; ..,...}来制作公式,但是我也可以具有相同的行为而无需访问编辑原始工作表或不必要地复制它。

1 个答案:

答案 0 :(得分:1)

您可以按{> 1“}行中的#条来与REPT一起玩,也可以像这样使用并附加SPLIT

=ARRAYFORMULA(SPLIT({Sheet1!A1:A10&"♦Sheet1";Sheet2!A1:A10&"♦Sheet2"}, "♦", 1, 0))

enter image description here


还可以在QUERY中创建伪列,例如:

=QUERY(Sheet1!A1:B10, "select A,B,'Sheet1' label 'Sheet1'''", 0)