Google 工作表 - 具有动态范围的 countif

Google Sheets - countif with dynamic range

sheet1 中有一列包含 ID 列表,每个 ID 都有一组状态:

ID  Apr   May      Jun
1   Load  Load     Complete
2   Load  Complete NA
3   Load  Load     Load

在单独的 sheet 中,sheet2 我有一个 ID 列表,我试图显示其中哪些是完整的。我的想法是使用 address 函数将 countif 与动态单元格范围一起使用:

=countif("'sheet1'!"&address(row(index('sheet1'!$A:$A,match(A2,'sheet1'!$A:$A,0),1)),3)&":"&ADDRESS(row(index('sheet1'!$A:$A,match(A5,'sheet1'!$A:$A0,0),1))+1,26),"Completed")

此公式应为每个 Id 找到相关行,然后检查该行中是否有任何 'Completed' 的值。当与 if 函数组合时,这应该在 sheet2 中给出以下输出:

ID Complete
1  Y
2  Y
3  N

但目前,它没有像 countif 公式为每一行返回 0 那样完整地注册任何内容。

这是因为 countif 无法使用 address 处理动态范围吗?如果有更好的方法,请告诉我。

鉴于您的数据,请尝试以下操作

=INDEX({A2:A,IF(A2:A="","",
        (IF(REGEXMATCH(B2:B&C2:C&D2:D,"Complete")=TRUE,"Y","N")))})

(一如既往,请根据您的需要调整范围)

使用的函数:

尝试:

=INDEX(IFNA(VLOOKUP(F2:F, QUERY({A2:A, FLATTEN(QUERY(TRANSPOSE(B2:D),,9^9))}, 
 "select Col1,'Complete' where Col2 contains 'Complete'"), 2, )))

或:

=INDEX(IF(F2:F="",,IFNA(VLOOKUP(F2:F, QUERY({A2:A, FLATTEN(QUERY(TRANSPOSE(B2:D),,9^9))}, 
 "select Col1,'Y' where Col2 contains 'Complete'"), 2, ), "N")))