我需要从表中查询数据,对于where子句使用另一个查询的结果。
例如:
如何在此选项卡上查询A列上的日期大于或等于日期的行,从下面第二个图像中显示的选项卡上的另一个查询中查询。我只想在查询中写入项目编号,或者在项目与当前项目相等的情况下,使用当前项目号和开始日期和结束日期的查询单元格。


查询将如下所示:

你能帮帮我吗?
发布于 2017-03-29 06:13:44
当然,如果您使用适当的语法,这是可能的。
我建议query + filter组合:
Sheet1
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 k12Sheet2
Project Date1 Date2
1 3/29/2017 4/1/2017
2 4/2/2017 4/5/2017
3 4/6/2017 4/8/2017Sheet3:结果公式
公式是:
=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)
得到两个字符串:
date '2017-03-29' date '2017-04-01'我还尝试使用更短的查询:select * where Col1 between date '2017-03-29' and date '2017-04-01',但不支持between关键字。
https://stackoverflow.com/questions/43080088
复制相似问题