合并两个工作表并添加一个新列,其名称与所选的每个范围相关联。

Combining two sheets and adding a new column with name associated to each range selected.

我有 Sheet1 和 Sheet2,每张里面都有一些数据,假设来自 A1:A3。数据集是这样的

工作表 1:

col1
foo
bar
foobar

工作表 2:

col1
bat
man
batman

所以我使用以下公式来组合它们:

=query({ Sheet1!A1:A3;Sheet2!A1:A3 } ," select * where Col1 <> '' " ,1)

但是我想做的是在新列中为每个日期范围关联一个特定名称。所以我想要这样的东西:

dataset1,foo
dateset1,bar
dataset1,foobar
dataset2,bat
dataset2,man
dataset2,batman

出于特定原因,我需要在公式中实现这一点。我不能只在 sheet1 和 sheet2 中添加另一列。

我该怎么做?

谢谢!

这是一种在查询之前动态添加额外列到 table 的方法:

=query(arrayformula({iferror(Sheet1!A1:A/0, "dataset1"), Sheet1!A1:A; 
                     iferror(Sheet2!A1:A/0, "dataset2"), Sheet2!A1:A}), 
                     "select * where Col2 <> ''")

iferror(Sheet1!A1:A/0, "dataset1")的作用是创建一个与Sheet1!A1:A大小相同的数组,并用字符串"dataset1"填充。