在Google电子表格

时间:2017-03-28 21:14:57

标签: google-sheets

我需要查询表中的数据以及where子句使用来自另一个查询的结果

例如:

如何在此选项卡中查询行,其中A列上的日期大于或等于下面第二张图像所示选项卡上另一个查询的日期。我想只在查询中编写项目编号,或者将一个包含当前项目编号的单元格和查询项目与当前项目相同的开始和结束日期。

Project Tasks

Project Dates

查询将是这样的:

Example Query

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

当然,如果您使用适当的语法,则可能。

我建议query + filter组合:

Sheet 1中

Date    Col1    Col2
3/29/2017   a   a2
3/30/2017   b   b3
3/31/2017   c   c4
4/1/2017    d   d5
4/2/2017    e   e6
4/3/2017    f   f7
4/4/2017    g   g8
4/5/2017    h   h9
4/6/2017    i   i10
4/7/2017    j   j11
4/8/2017    k   k12

Sheet2的

Project   Date1         Date2
1         3/29/2017     4/1/2017
2         4/2/2017      4/5/2017
3         4/6/2017      4/8/2017

Sheet3:产生的公式

公式为:

=QUERY({Sheet1!A:C},"select * where Col1 >= date '"&TEXT(FILTER(Sheet2!B:B,Sheet2!A:A=1),"YYYY-MM-DD")&"' and Col1 <= date '"&TEXT(FILTER(Sheet2!C:C,Sheet2!A:A=1),"YYYY-MM-DD")&"'")

结果:

Date    Col1    Col2
3/29/2017   a   a2
3/30/2017   b   b3
3/31/2017   c   c4
4/1/2017    d   d5

最好使用过滤器一次:

=FILTER(Sheet2!B:C,Sheet2!A:A=1)

获取项目#1的日期,然后引用它的结果。

甚至将其转换为日期格式:

=FILTER(text(Sheet2!B:C,"\dat\e 'YYYY-MM-DD'"),Sheet2!A:A=1)

并获得2个字符串:

date '2017-03-29'   date '2017-04-01'

我还尝试使用较短的查询:select * where Col1 between date '2017-03-29' and date '2017-04-01'但不支持between关键字。