可以像条件格式自定义公式一样使用 ArrayFormula 吗?

Possible to use ArrayFormula like Conditional Formatting Custom Formula?

我有一个简单的 Google Sheets 电子表格,可以跟踪一组人完成的任务。当每个人完成一项任务时,我使用一个简单的复选框来标记完成:

Task:       A   B   C   D
Human 1     [x] []  []  []
Human 2     [x] [x] [x] []
Human 3     []  [x] []  [x]
Human 4     [x] [x] [x] [x]

我正在寻找一些方法来创建一个总结哪些任务尚未完成的专栏,例如:

Task:       A   B   C   D       Not Yet Completed:
Human 1     [x] []  []  []      B, C, D
Human 2     [x] [x] [x] []      D
Human 3     []  [x] []  [x]     A, C 
Human 4     [x] [x] [x] [x]     (Blank)

我的目标是使用单个公式来完成此操作,该公式将 运行 遍历每一行并连接未选中框的列名。

我试过将 ARRAYFORMULATEXTJOIN 结合使用,如下所示:

=TEXTJOIN(", ", TRUE, ARRAYFORMULA(IF(B2:E2=FALSE,$B:$E,"")))

这可以满足我的要求,但需要将该公式复制到我要跟踪的每一行。

当我尝试将文本连接应用到二维范围时,它会将所有文本连接到一个单元格中,而不是将它逐一应用到每一行:

=TEXTJOIN(", ", TRUE, ARRAYFORMULA(IF(B2:E5=FALSE,$B:$E,"")))

---Result---
Task:       A   B   C   D       Not Yet Completed:
Human 1     [x] []  []  []      B, C, D, D, A, C
Human 2     [x] [x] [x] [] 
Human 3     []  [x] []  [x] 
Human 4     [x] [x] [x] [x] 

相比之下,当我在条件格式中设置自定义公式时,它允许我 "Apply to Range"(即跨多行),但随后输入的公式仅限于单行。然后将此公式逐一应用于范围内的每一行。

是否有任何方法可以使用 ARRAYFORMULA 或 Google 工作表的其他原生功能在单元格中执行相同的 "Apply to Range" 概念?

尝试:

=ARRAYFORMULA(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(
 IF((B2:E<>"")*(B2:E=FALSE), B1:E1&",", )),,999^99))), ",$", ))

spreadsheet demo

困难的方法:使用 &(如果您有固定数量的列,这将有效,否则您将不得不不断更新公式)

={"Not Yet Completed:";arrayformula(if(A2:A="","",substitute(trim(if(B2:B," ",B1&" ")&if(C2:C," ",C1&" ")&if(D2:D," ",D1&" ")&if(E2:E," ",E1&" "))," ",", ")))}

简单方法:使用查询 Header(与 player0 的答案几乎相同,但方法略有不同)

={"Not Yet Completed:";arrayformula(if(A2:A="","",substitute(trim(transpose(query(transpose(if(B2:E5,"",B1:E1)),"",columns(B1:E1))))," ",", ")))}