我需要查询表中的数据以及where子句使用来自另一个查询的结果
例如:
如何在此选项卡中查询行,其中A列上的日期大于或等于下面第二张图像所示选项卡上另一个查询的日期。我想只在查询中编写项目编号,或者将一个包含当前项目编号的单元格和查询项目与当前项目相同的开始和结束日期。
查询将是这样的:
你能帮助我吗?
答案 0 :(得分:0)
当然,如果您使用适当的语法,则可能。
我建议query
+ filter
组合:
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
Project Date1 Date2
1 3/29/2017 4/1/2017
2 4/2/2017 4/5/2017
3 4/6/2017 4/8/2017
公式为:
=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
关键字。