如何在 Google 电子表格矩阵中添加一列?
How can I add a column in Google Spreadsheet matrix?
我有两个单独的 Google 电子表格文档,我们称它们为汤姆和杰瑞。它们包含相同的 table 但其中包含不同的数据。例如:
汤姆:
SERIE RATING
Friends 5
Suits 4
Ray Donavon 2
杰瑞:
SERIE RATING
Game of Thrones 5
Black Mirror 3
Breaking Bad 5
现在我想将它们合并到不同的 Google 电子表格中,所以我输入:
=QUERY(
{
QUERY(
IMPORTRANGE("DOCUMENT_ID_TOM";"RANGE_DATA_NAME");"SELECT * WHERE Col1 <>''"
);
QUERY(
IMPORTRANGE("DOCUMENT_ID_JERRY";"RANGE_DATA_NAME");"SELECT * WHERE Col1<>''"
)
};"SELECT *"
)
现在我有所有的数据:
Friends 5
Suits 4
Ray Donavon 2
Game of Thrones 5
Black Mirror 3
Breaking Bad 5
然而,查询中丢失的是,现在我不知道谁对什么进行了评分。所以我希望的结果是这样的:
Tom Friends 5
Tom Suits 4
Tom Ray Donavon 2
Jerry Game of Thrones 5
Jerry Black Mirror 3
Jerry Breaking Bad 5
现在我不想在 Tom & Jerry 的文档中添加一个无用的列,其中包含在每一行中复制的简单名称。必须有另一种方法,这样我才能在公式中使用它。所以问题:
如何在 Google 电子表格矩阵中添加名称列?
当猫和老鼠参与其中时,我怎么能不去挖掘答案呢?
将它放在 sheet 的单元格 H1 中将导致 H 列与 A 列具有相同的值,I 与 B 具有相同的值,J 与 C 具有放置 "Tom" 的附加功能(没有引号)在列 K:
={A1:C,ARRAYFORMULA(IF(ISBLANK(A1:A),,"Tom"))}
所以我们为 Importrange 函数稍微改变一下,得到:
={IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:A")
)
,,"Tom")
)
}
所以我们应该能够将它用于您的公式,将汤姆和杰瑞添加到导入的范围数组中,甚至可以稍微简化公式:
=QUERY(
{
{
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:A")
)
,,"Tom"
)
)
};{
IMPORTRANGE("DOCUMENT_ID_JERRY", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_JERRY", "sheet1!A1:A")
)
,,"Jerry"
)
)
}
}
, "Select * where Col2 <> ''"
)
请注意,我使用命名范围并不是为了尽量减少各种范围的使用,而且还因为命名范围不会增长。创建范围时,它将转到 sheet 中的最后一行。
{} 中逗号和分号的使用决定了是将值添加到数组末尾还是创建新列。有关更多信息,请参阅 help on Arrays。
我有两个单独的 Google 电子表格文档,我们称它们为汤姆和杰瑞。它们包含相同的 table 但其中包含不同的数据。例如:
汤姆:
SERIE RATING
Friends 5
Suits 4
Ray Donavon 2
杰瑞:
SERIE RATING
Game of Thrones 5
Black Mirror 3
Breaking Bad 5
现在我想将它们合并到不同的 Google 电子表格中,所以我输入:
=QUERY(
{
QUERY(
IMPORTRANGE("DOCUMENT_ID_TOM";"RANGE_DATA_NAME");"SELECT * WHERE Col1 <>''"
);
QUERY(
IMPORTRANGE("DOCUMENT_ID_JERRY";"RANGE_DATA_NAME");"SELECT * WHERE Col1<>''"
)
};"SELECT *"
)
现在我有所有的数据:
Friends 5
Suits 4
Ray Donavon 2
Game of Thrones 5
Black Mirror 3
Breaking Bad 5
然而,查询中丢失的是,现在我不知道谁对什么进行了评分。所以我希望的结果是这样的:
Tom Friends 5
Tom Suits 4
Tom Ray Donavon 2
Jerry Game of Thrones 5
Jerry Black Mirror 3
Jerry Breaking Bad 5
现在我不想在 Tom & Jerry 的文档中添加一个无用的列,其中包含在每一行中复制的简单名称。必须有另一种方法,这样我才能在公式中使用它。所以问题:
如何在 Google 电子表格矩阵中添加名称列?
当猫和老鼠参与其中时,我怎么能不去挖掘答案呢?
将它放在 sheet 的单元格 H1 中将导致 H 列与 A 列具有相同的值,I 与 B 具有相同的值,J 与 C 具有放置 "Tom" 的附加功能(没有引号)在列 K:
={A1:C,ARRAYFORMULA(IF(ISBLANK(A1:A),,"Tom"))}
所以我们为 Importrange 函数稍微改变一下,得到:
={IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:A")
)
,,"Tom")
)
}
所以我们应该能够将它用于您的公式,将汤姆和杰瑞添加到导入的范围数组中,甚至可以稍微简化公式:
=QUERY(
{
{
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_TOM", "sheet1!A1:A")
)
,,"Tom"
)
)
};{
IMPORTRANGE("DOCUMENT_ID_JERRY", "sheet1!A1:C"),
ARRAYFORMULA(
IF(
ISBLANK(
IMPORTRANGE("DOCUMENT_ID_JERRY", "sheet1!A1:A")
)
,,"Jerry"
)
)
}
}
, "Select * where Col2 <> ''"
)
请注意,我使用命名范围并不是为了尽量减少各种范围的使用,而且还因为命名范围不会增长。创建范围时,它将转到 sheet 中的最后一行。
{} 中逗号和分号的使用决定了是将值添加到数组末尾还是创建新列。有关更多信息,请参阅 help on Arrays。