【问题标题】:How to use Query, importrange, and indirect together for dynamic filter parameters? or something that will do the task动态过滤器参数如何使用Query、importrange和indirect一起使用?或者可以完成任务的东西
【发布时间】:2021-05-22 14:43:42
【问题描述】:

所以我不确定我在寻找这个答案时是否只是没有提出正确的问题。

但我希望将日期和时间范围更改为输入到不同单元格的日期和时间。

=query(importrange("URL", "SEA!A1:CS"), "SELECT Col61, Col97, Col60, Col51, Col50, Col42, Col43, Col49, Col38, Col44, Col41 WHERE (Col3 >= datetime '2021-04-21 21:00:00' AND Col3 <= datetime '2021-4-21 21:50:00') AND ((Col93 = 501)) AND (lower(Col60) contains 'goalie') Order by Col61 desc", TRUE)

其他单元格日期和时间 2021-05-06 21:10:00 和 2021-05-06 22:00:00

结果

=query(importrange"URL", "SEA!A1:CS"), "SELECT Col61, Col97, Col60, Col51, Col50, Col42, Col43, Col49, Col38, Col44, Col41 WHERE (Col3 >= datetime '2021-05-06 21:10:00' AND Col3 <= datetime '2021-05-06 22:00:00') AND ((Col93 = 501)) AND (lower(Col60) contains 'goalie') Order by Col61 desc", TRUE)

所以显然我的问题是一些如何被认为不够清楚,所以不宜使用场景。

我有两个单独的工作表,电子表格 (A) 和电子表格 (b)。我正在使用带有 importrange 的查询(如果需要说明,请参见上文)来生成从 Spreadsheet(A) Sheet1 到 Spreadsheet(B) Sheet1 的一组特定值。

现在在 Spreadsheet(B) sheet1 中有两个专门用于日期输入的单元格,让我们使用 A1 和 B1。这两个日期的目的是将要导入的数据缩小到用户需要的特定时间范围内。

类似这样的东西 A1 和 B1 空白

  =query(importrange("url", "Sheet1!A1:Z10"), "select Col1, Col2, Col3 where (Col1 > A1 and Col1 < B1)")

然后在 A1 中使用 01-01-1111 11:11:11 abd 在 B2 中使用 02-02-2222 22:22:22 然后该函数会将其参数更改为

  =query(importrange("url", "Sheet1!A1:Z10"), "select Col1, Col2, Col3 where (Col1 > 1111-01-01 11:11:11 and Col1 < 2222-02-02 22:22:22)")

另外我想补充一点,我尝试使用 INDIRECT 函数,该函数在同一个电子表格中使用查询时工作正常,但在使用 importrange 从不同电子表格查询时不起作用。

如果我的问题不够清楚,我可以清楚地解释一些如何使它更清楚吗?

【问题讨论】:

  • 请考虑提供电子表格的副本,以便直观地阐明您想要的目的。

标签: function datetime google-sheets


【解决方案1】:

如果您的问题是“当您使用电子表格 C 时,如何根据电子表格 B 中的日期从电子表格 A 中查询您的数据”,那么首先您需要分别运行每个 IMPORTRANGE 公式以允许访问您的电子表格 A 和 B。然后你可以试试:

=QUERY({IMPORTRANGE("URL A"; "SEA!A1:CS")}; 
 select Col61,Col97,Col60,Col51,Col50,Col42,Col43,Col49,Col38,Col44,Col41
 where Col3 >= datetime '"&TEXT(IMPORTRANGE("URL B"; "Sheet1!A1"); "yyyy-mm-dd hh:mm:ss")&"' 
   and Col3 <= datetime '"&TEXT(IMPORTRANGE("URL B"; "Sheet1!B1"); "yyyy-mm-dd hh:mm:ss")&"' 
   and Col93 = 501 
   and lower(Col60) contains 'goalie' 
 order by Col61 desc"; 1)

更新

=UNIQUE(QUERY(IMPORTRANGE("18AuN0rkrjUe0qK5ATS_MojgK49l5q6wf2nAMVEp54E4", A2&"!A1:FC1000"), 
 "select Col159,Col61,Col97,Col60,Col73,Col66,Col83,Col91,Col78,Col77,Col84,Col75,Col67,Col72,Col92,Col76,Col71,Col69,Col81 
  where Col93 = 501 
    and not lower(Col60) contains 'goalie'
    and Col159 >= datetime '"&TEXT(A3, "yyyy-mm-dd hh:mm:ss")&"'
    and Col159 <= datetime '"&TEXT(A4, "yyyy-mm-dd hh:mm:ss")&"' 
  order by Col3 desc
  label Col159'timestamp'", 1))

【讨论】:

  • 我不知道我想如何将这个公式函数添加到工作表中。复制/过去(在放入适当的网址、表格和范围之后)它会拆分。所以我把它浓缩到一行我得到一个公式解析错误,当我输入应用程序脚本时,我得到“无效或意外的令牌行”。我相信引号或其他东西,因为它注册了 11 个参数。
  • 我已经移动了一些东西,并为我需要的东西做了一个工作。但是如果出现我的解决方法无法解决的问题,仍然会很高兴。所以我希望输入 GET!A3 和 A4 的日期成为键 docs.google.com/spreadsheets/d/… 过滤 SEA!FC2:FC 中的日期(或任何其他表格,如果你看的话)docs.google.com/spreadsheets/d/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 2020-04-15
  • 1970-01-01
  • 2019-09-25
  • 2022-06-15
  • 1970-01-01
相关资源
最近更新 更多