包含日期操作的查询函数[DATE + X个月数]

时间:2019-04-02 14:00:45

标签: google-sheets google-query-language

我正在使用相对简单的表达式查询Google电子表格:

_viewer.utilities.setPivotPoint(hitPoint,true,true

此查询在 L M 列中生成办公室最后N个日期的列表-参见下图

接下来我要做的是

  1. 为最近N个日期分别添加6个月;
=QUERY(Sheet1!A1:J200, "Select A, J", 1)
  1. 查看任何结果日期是否等于或大于=IF(M2="","",DATE(YEAR(M2)+0,MONTH(M2)+6,DAY(M2)+0)) ;
  2. 如果是,请将“ ALARM”放入 O 列,然后将该列用作标识符,以过滤该行,将其用作其他标记。
TODAY()

我想知道是否有可能创建一个查询,在该查询中将已经向J列中的值添加了6个月,并且可能导致J列中经过过滤的结果IF值[i]大于或等于{{ 1}}。通过实现这一点,列J将仅包含=IF(today()>=X2,"ALARM","") TODAY(); 我检查过的所有示例似乎都以日期作为过滤器。

enter image description here

2 个答案:

答案 0 :(得分:1)

=QUERY({Sheet1!A1:A,
 ARRAYFORMULA(DATE(YEAR(Sheet1!J1:J), MONTH(Sheet1!J1:J)+6, DAY(Sheet1!J1:J)))}, 
 "select Col1,Col2,'ALARM' 
  where Col1 is not null 
    and Col2 >=date '"&TEXT(TODAY(), "yyyy-mm-dd")&"' 
  label Col2'ABCD', 'ALARM''alarm'
  format Col2 'dd-mmm-yyyy'", 1)

0

答案 1 :(得分:1)

SELECT email
      ,productname
      ,datepurchased
      ,IIF(LAG(productname) OVER (PARTITION BY email ORDER BY email, datepurchased) = productname, 1,0) AS SameProduct
      ,IIF(ROW_NUMBER() OVER (PARTITION BY email ORDER BY email, datepurchased) = 1, 0, 1) AS AnyProduct
  FROM #table1

0