Where子句不起作用

Where子句不起作用,where,google-sheets,Where,Google Sheets,=QUERY('Sheet8'!A:Z;“选择A,B其中'Year'=2016”) 我有这个问题,我想让这一年的部分动态,所以我尝试了这个 =QUERY('Sheet8'!A:Z;“选择A,B其中'Year'=Year(now())+4”) 但这不起作用,所以甚至尝试将值保存在单元格中,并在ARE子句中引用它们,如where'Year'=Sheet!B1但这也不起作用。如何创建一个where语句,使其看起来在执行比较之前执行操作?QUERY select子句中的year()函数必须引用其中一列。

=QUERY('Sheet8'!A:Z;“选择A,B其中'Year'=2016”)
我有这个问题,我想让这一年的部分动态,所以我尝试了这个
=QUERY('Sheet8'!A:Z;“选择A,B其中'Year'=Year(now())+4”)
但这不起作用,所以甚至尝试将值保存在单元格中,并在ARE子句中引用它们,如
where'Year'=Sheet!B1
但这也不起作用。如何创建一个where语句,使其看起来在执行比较之前执行操作?

QUERY select子句中的
year()
函数必须引用其中一列。因此,如果日期列在A列中,您将使用
where year(A)=

为了使它成为动态的,最好(IMO)连接从电子表格函数生成的值(而不是select子句,它似乎不根据电子表格时区生成)。比如:


=QUERY('Sheet8'!A:Z;”选择A,B,其中年份(A)=“&(year(NOW())+4))

这有所帮助(我没有收到任何错误),但仍然无法在年份列中找到任何有效匹配项。我无法控制该列的格式,也不确定它是否是字符串、数字等(它是从另一个数据源导入的)。尝试将其转换为年份会给我一个错误,尝试
text(N,“”)
通常未成功转换为数字日期的类似日期的条目将左对齐,但您也可以在备用单元格中使用eg
=ISNUMBER(A2)
测试它是否为数字。如果不是,则它们是文本字符串,在这种情况下,您可能希望尝试使用正则表达式匹配:
=QUERY('Sheet8'!a:Z;“选择a,B,其中a匹配“*”&(YEAR(NOW())+4)&“*”
,但是如果列中的一些是数字,一些是文本字符串,则需要进一步的解决方法来首先将它们全部转换为字符串。感谢正则表达式的工作。我想做的很简单,但是我很难在文档中找到任何有用的东西(更不用说错误消息并不总是有用的)。另外,我习惯于语法更有意义的编程语言;至少对我来说。