Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从电子表格中的所有工作表中获取与条件匹配的行_Excel_Google Sheets_Spreadsheet - Fatal编程技术网

Excel 从电子表格中的所有工作表中获取与条件匹配的行

Excel 从电子表格中的所有工作表中获取与条件匹配的行,excel,google-sheets,spreadsheet,Excel,Google Sheets,Spreadsheet,我有一个谷歌电子表格,大约有20张(每一张都有一个正确的名称,而不是Sheet1,Sheet2等),结构如下- Task Title | Description | Status | Comments1 | Comments 2 ------------------------------------------------------------------ Task1 | Xyz | Stage 1 | | Task2

我有一个谷歌电子表格,大约有20张(每一张都有一个正确的名称,而不是
Sheet1
Sheet2
等),结构如下-

Task Title  |  Description  |  Status  |  Comments1  |  Comments 2
------------------------------------------------------------------
Task1       |      Xyz      | Stage 1  |             |
Task2       |      Xyz      | Stage 2  |  abc        |
Task3       |      Xyz      | Done     |             |
Task4       |               | Done     |             |

如何为状态为“已完成”的所有任务(跨工作表)创建与上述结构相同的新工作表?您可以将新工作表添加到工作簿中并使用此公式(用实际工作表名称替换工作表1、工作表2、工作表3):

=QUERY({Sheet1!A:C;Sheet2!A:C;Sheet3!A:C},“where Col3='Done'”)

在{}中,您需要为每个单独的表添加A:C引用,每个表之间用

要同时返回标题行,请在查询末尾添加1:

=QUERY({Sheet1!A:E;Sheet2!A:E;Sheet3!A:E},“where Col3='Done',”,1)

或者,要返回单个列,可以包含select语句:


=QUERY({Sheet1!A:E;Sheet2!A:E;Sheet3!A:E},“选择Col1,其中Col3='Done',1)

当筛选列不是最后一列时,这似乎不起作用。我对问题进行了编辑,以更好地反映我的数据。只要您在数据集的正确列号中搜索“完成”,列数应该无关紧要。我建立了一个示例表:该公式适用于我给出的示例,但似乎不适用于我的具体数据-我不知道为什么。问题在于,结果第一行中的每个单元格都有
Sheet1
(公式中的第一页)的所有匹配行,即上面示例中的第一个单元格将读取
Task Title Task3 Task4
。然后在下面的几行中可以看到一个正确的结果。我用更多的示例公式更新了答案