使用今天的年/月/周作为 Google 查询语言的参考

问题描述 投票:0回答:2

我正在尝试将一列数据、付款(会计)相对于另一列中的收据日期进行求和。我想隔离在给定年份、月份或星期内进行的付款,而无需更改查询代码中的任何内容。

这大致就是我正在处理的内容,尝试使用

TODAY()
NOW()
以便自动更新:

=query(amount,"select sum(H) where year(F) = year(today())")

我也尝试过做类似的事情,同时引用一个可以读取今天年份的单元格,但遇到了困难:

=query(amount,"select sum(H) where year(F) = '"&text(R1,"yyyy-MM-dd")&"'")

其中 R1 是单元格读数

=YEAR(TODAY))

如果我能得到第一个同时适用于年、月和周的公式,那就完美了。

google-sheets sum google-sheets-formula google-sheets-query google-query-language
2个回答
0
投票

可以完成,但您需要向查询添加更多参数...

=SUM(IFERROR(QUERY(A1:B, 
 "select sum(B) 
  where year(A)="&YEAR(TODAY())&"
  group by A 
  label sum(B)''", 0)))


0
投票

接受的答案是完美的。我尊重它。

但警告任何尝试类似操作的人,请使用 月(A) 而不是年份(A):

在 QUERY 列的 WHERE 子句中使用标量函数 Month() 实际上是从零开始的。所以一月是 0,十二月是 11。所以加一个减一。

如果您的结果相差一个月,请尝试以下操作:

where
 month(A) = " & MONTH(TODAY()) -1 & "

或者如果您在单元格中引用日期:

where
 year(C) = "& YEAR(C$16) &"
 and month(C) = "& MONTH(C$16) -1 &"

**参考:**

注意:我只是将其作为对上面已接受答案的评论,但我没有足够的“声誉”点来发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.