如何在查询中比较两个日期和时间

How to compare two dates and time in Query

我在 class 中创建了一个用于现场出席的 sheet,带有两个选项卡(Sheet1 和 Sheet2), 在 sheet1 中,我有两列日期和时间。在 sheet2 中,我有一列数字(C 列)和一行日期以及两行时间(开盘和收盘时间)。

我需要写一个公式来查询 sheet1 和 select D 列 if :

  1. 日期是第一列,等于sheet2(row1)
  2. 中的日期
  3. sheet1(第 2 列)中的时间大于 sheet2(第 2 行)
  4. 中的开放时间
  5. sheet1(column2) 的时间低于 sheet2(row3) 的关闭时间 最后;
  6. 工作表 1(D 列)中的数字等于 sheet2(C 列)中的数字

这是我试过的:

=iferror(if(QUERY(sheet1!$A:$D, 
"select D 
where A = datevalue '"&TEXT(D, "MM-dd-yyyy")&"' 
and B >= timevalue '"&TEXT(D, "HH:mm:ss")&"' 
and B <= timevalue '"&TEXT(D, "HH:mm:ss")&"' 
and C = "&$C5, 0)=$C5,"✅", "❌"),"❌")

我不确定哪里出了问题。它不工作。这是共享 google sheet: https://docs.google.com/spreadsheets/d/1zPZQgFlbz19ULu19I8-z-8m9E1vdfYMKRaFW9IycCtg/edit?usp=sharing

如果 sheet1 是这样的:

然后你可以这样做(并将它拖到右边):

=ARRAYFORMULA(IFERROR(VLOOKUP($C:$C, 
 FILTER({sheet1!$D:$D, sheet1!$C:$C}, 
 sheet1!$A:$A=D1, sheet1!$B:$B>D2, sheet1!$B:$B<D3), 2, 0)))