【发布时间】:2016-07-19 16:20:19
【问题描述】:
我在 Google 电子表格中编写了一个 =QUERY 公式。但是,我不仅想复制单元格的值,还想复制我正在执行查询的单元格范围内的嵌入链接。这是我写的:
=QUERY('Tab'!6:1963,"select C where (E='Major' and D >= now())")
必须有一种方法告诉查询将 URL 以及单元格的内容带入。
【问题讨论】:
标签: google-sheets formula
我在 Google 电子表格中编写了一个 =QUERY 公式。但是,我不仅想复制单元格的值,还想复制我正在执行查询的单元格范围内的嵌入链接。这是我写的:
=QUERY('Tab'!6:1963,"select C where (E='Major' and D >= now())")
必须有一种方法告诉查询将 URL 以及单元格的内容带入。
【问题讨论】:
标签: google-sheets formula
query函数只支持certain data types:
支持的数据类型有字符串、数字、布尔值、日期、日期时间和时间。
它不处理可能嵌入到电子表格中的其他内容,例如图像或超链接。 (超链接被强制转换为字符串。)毕竟,查询语言不是特定于表格的,它有自己的数据模型,仅在一定程度上与表格交互。
如果可能,解决方案是使用filter 而不是query。它可以做很多query 所做的事情。例如,
=QUERY(Tab!6:1963,"select C where (E='Major' and D >= now())")
可以替换为
=filter(Tab!C6:C1963, (Tab!E6:E1963="Major") * (Tab!E6:E1963 >= now()))
这将按预期返回链接。 (如果你有它们,甚至插入带有=image() 的图像。)乘法运算符在过滤器公式中是合乎逻辑的和。
【讨论】:
我知道这是三年后的事,但我遇到了这个问题,我的查询将转换为 FILTER 和 SORT 函数的复杂嵌套。所以我最终做了这样的事情:ARRAYFORMULA(VLOOKUP(QUERY('Tab'!6:1963,"select C where (E='Major' and D >= now())"),C:C,1,FALSE))
哪个有效。
【讨论】:
这个问题经常与IMPORTRANGE 有关。而谷歌的官方answer 并没有真正的帮助(即QUERY 仅适用于字符串等)。也可以将过滤器范围作为导入范围提供,然后它可以工作:
=FILTER(IMPORTRANGE("XXX","Data!A1:A),
IMPORTRANGE("XXX","Data!B1:B")>0)
A 列是您要导入的数据,B 列是过滤器
【讨论】: