Arrays Google Sheets公式跟踪过去4周内事件发生的次数

Arrays Google Sheets公式跟踪过去4周内事件发生的次数,arrays,google-sheets,count,match,array-formulas,Arrays,Google Sheets,Count,Match,Array Formulas,在工作中,我们正在跟踪一个特定的事件,该事件每周为我们的每个客户发生一次。我们用于跟踪这一点的工作表示例如下所示: 我正在尝试创建一个索引,用于统计每个客户在过去4周内发生的事件数(即包含“OK”的单元格),但我希望它能够随着时间的推移而更新,而无需每周更改公式中的范围。有什么想法吗?谢谢 编辑:我们正在跟踪的事件与新冠病毒上下文相关,因此我们无法确定将跟踪多少周。样本中有8周,但我们可能会随着时间的推移添加矿石如果您想扩展周数,最好在第二个选项卡中进行计数。在B2单元格中输入的“JPV”选项

在工作中,我们正在跟踪一个特定的事件,该事件每周为我们的每个客户发生一次。我们用于跟踪这一点的工作表示例如下所示:

我正在尝试创建一个索引,用于统计每个客户在过去4周内发生的事件数(即包含“OK”的单元格),但我希望它能够随着时间的推移而更新,而无需每周更改公式中的范围。有什么想法吗?谢谢


编辑:我们正在跟踪的事件与新冠病毒上下文相关,因此我们无法确定将跟踪多少周。样本中有8周,但我们可能会随着时间的推移添加矿石

如果您想扩展周数,最好在第二个选项卡中进行计数。在B2单元格中输入的“JPV”选项卡中

=Arrayformula({Sheet1!A2:A, if(len(Sheet1!A2:A), mmult(N(Sheet1!B2:100="OK"), transpose(N(left(Sheet1!B1:1, 2)="WK"))),)})
看看这对你有用吗

更新

假设在将这些周的数据(从第2行到下一行)添加到表中时只添加新周(标题),您可以尝试

=Arrayformula({Sheet1!A2:A, if(len(Sheet1!A2:A), mmult(N(Sheet1!B2:100="OK"), transpose( (left(Sheet1!B1:1, 2)="WK") * (substitute(Sheet1!B1:1, "WK",)+0 > MAX(substitute(Sheet1!B1:1, "WK",)+0)-4))),)})
使用:

=数组公式({Sheet1!A2:A,IF(Sheet1!A2:A=”“,),,
MMULT(N)(i)错误(间接)(“表1!”)和地址(2,匹配(“WK”)和最大值(如果(
(左(Sheet1!1:1,2)=“WK”)*(Sheet1!2:2“”),列(Sheet1!1:1),)-3,
活页1!1:1,0),4)和“:100”)=“OK”,0”),
转置(N)(左)(间接(“Sheet1!”)和地址(1,匹配(“WK”)和最大值(如果(
(左(Sheet1!1:1,2)=“WK”)*(Sheet1!2:2“”),列(Sheet1!1:1),)-3,
活页1!1:1,0),4)和“:1”),2)等于“WK”)

总共只有8周吗?不,随着时间的推移,我们可能会增加更多的周数,我们无法确定会有多少周(该事件与新冠病毒相关,因此存在不确定性)。我会把问题修改得更清楚!这是一个开始!但我希望我能在过去的4周内把它算进去。。因此,在样本中,它将从第2周到第5周计数,然后在接下来的一周,它将从第3周到第6周计数,依此类推
=ARRAYFORMULA({Sheet1!A2:A, IF(Sheet1!A2:A="",, 
 MMULT( N(IFERROR(INDIRECT("Sheet1!"&ADDRESS(2, MATCH("WK"&MAX(IF(
 (LEFT(Sheet1!1:1, 2)="WK")*(Sheet1!2:2<>""), COLUMN(Sheet1!1:1), ))-3, 
       Sheet1!1:1, 0), 4)&":100")="OK", 0)), 
 TRANSPOSE(N(LEFT(INDIRECT("Sheet1!"&ADDRESS(1, MATCH("WK"&MAX(IF(
 (LEFT(Sheet1!1:1, 2)="WK")*(Sheet1!2:2<>""), COLUMN(Sheet1!1:1), ))-3, 
       Sheet1!1:1, 0), 4)&":1"), 2)="WK"))))})