Google sheets 按周范围和行值查询数据

Google sheets 按周范围和行值查询数据,google-sheets,formula,google-sheets-formula,Google Sheets,Formula,Google Sheets Formula,我有一个Google工作表数据,按照下面的屏幕截图排列,我试图查询A1到C的范围,以返回前一周(weeknum(now)-1)发生的记录,并具有特定状态,即打开和关闭。 我已经设法只为一列编写了一个类似的查询,特别是针对“B”,这很好: =ArrayFormula(query({B2:B,if(len(B2:B),weeknum(B2:B),)}," select Col1 where Col2 = "&weeknum(now())&"",1)) 然而,我需要的是这样的东西

我有一个Google工作表数据,按照下面的屏幕截图排列,我试图查询A1到C的范围,以返回前一周
(weeknum(now)-1)
发生的记录,并具有特定状态,即
打开
关闭
。 我已经设法只为一列编写了一个类似的查询,特别是针对“B”,这很好:

=ArrayFormula(query({B2:B,if(len(B2:B),weeknum(B2:B),)}," select Col1 where Col2 = "&weeknum(now())&"",1))

然而,我需要的是这样的东西

QUERY(A1:C, "Select B, C, D WHERE B = "&weeknum(now())-1&" "AND (C = 'Open' OR C = 'Closed'"),1)
i、 e

上周的所有活动;状态为打开或关闭


虽然我知道查询不使用
WEEKNUM()
,因此上述操作显然不起作用。

尝试一下,看看它是否有效:

(编辑)

另一种(更简单的)方法是使用过滤器:

={B1:D1; filter(B:D, (C:C="Open")+(C:C="Closed"), weeknum(B:B)=weeknum(today())-1)}

还有一个问题,你能解释一下为什么在filter函数前面有{B1:D1;{B1:D1;}吗?{B1}创建了一个数组,第一行有B1:D1(因此它基本上复制了头),下面是filter。
={B1:D1; filter(B:D, (C:C="Open")+(C:C="Closed"), weeknum(B:B)=weeknum(today())-1)}