我昨天提出了这个问题,并希望向VertexVortex大声说出他的解决方案。当我在工作表的工作副本上实现我的演示公式时,我无法使它工作 - 我第二行超出第一行的公式输出不正确。原始帖子在这里:
本工作簿的目的是,当测试人员完成每个步骤时,他们会标记产品是否通过。如果步骤失败,测试人员会记录为什么会发生这种情况。在第二张纸上,“执行摘要”,我需要它输出失败的所有步骤的列表以及失败原因的说明。
Here's a screenshot of the first worksheet -- the "steps" and pass/fail checkboxes
Here's the second worksheet -- where the failed steps and notes are supposed to be output
第二张纸上的前两个公式 - 返回失败的第一步和该步骤的注释。对于那些细胞,感谢VertexVortex,我使用了:
=INDEX(tests,MATCH(TRUE,fails,0)) ///formula for 'section/step' cell
=INDEX(notes,MATCH(TRUE,fails,0)) ///formula to output notes from first fail
我还应该提到我被告知要在第一个工作表上创建命名范围 - 'tests'是注明section / step的列,'failed'是包含fail复选框的列的命名范围,'' notes'是包含有关步骤失败原因的注释的列的命名范围。
除此之外的行让我感到困惑 - 该公式适用于我在之前的帖子中设置的演示,但不再返回任何值。我的公式是:
=IFERROR(INDEX(OFFSET(tests,MATCH(K57,tests,0),0),MATCH(TRUE,OFFSET(fails,MATCH(K57,tests,0),0),0)),"") ///formula for outputting the second 'section/step' cell that has failed
=IFERROR(INDEX(OFFSET(notes,MATCH(K57,tests,0),0),MATCH(TRUE,OFFSET(fails,MATCH(K57,tests,0),0),0)),"") //formula to output the notes from the second fail
如果有办法让这种情况发生,涉及一个宏观或不同的解决方案,我会全力以赴。我感谢大家对此的帮助。
答案 0 :(得分:0)
OFFSET
无法在完整列上运行,因此您应将命名范围更改为实际单元格范围。 make fails
(和其他范围)相等=Testing!$R$1:$R$10000
(您可以通过按CTRL + F3进行编辑),这使它对我有效。
但是进一步测试一下,如果存在具有相同名称的测试/步骤,例如25. Enter City/equivalent
,则此公式会中断,因为'history'查找依赖于从先前找到的测试的名称开始。< / p>
我建议使用一种不同的方法,在每次找到TRUE
之后缩小范围,方法是在执行摘要工作表中添加一个实用程序列(我使用了列H)。
在“步骤和备注”列中,使用
=IFERROR(INDEX(tests,$H57),"")
=IFERROR(INDEX(notes,$H57),"")
并在新列的第一个单元格(H57)中,将=MATCH(TRUE,fails,0)
放在以下行中,
=MATCH(TRUE,OFFSET(fails,$H57,0),0)+$H57
这应该可以解决问题。
编辑:我故意在后一栏中没有使用IFERROR
,因此如果需要调试会更容易。