0

我昨天提出了这个问题,想向 VertexVortex 大喊他的解决方案。当我在工作表的工作副本上实现我的演示公式时,我无法让它工作——第一行之外的第二张工作表上的公式没有正确输出。原始线程在这里:

原始线程

本工作手册的目的是,当测试人员运行每个步骤时,他们会标记产品是通过还是失败。如果该步骤失败,测试人员会记录发生此情况的原因。在第二张表“执行摘要”上,我需要它输出所有失败步骤的列表以及失败原因的说明。

这是工作簿

这是第一个工作表的屏幕截图——“步骤”和通过/失败复选框

这是第二个工作表——应该输出失败的步骤和注释

第二张工作表上的前两个公式 - 返回失败的第一步和该步骤的注释。对于这些单元格,感谢 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”是记录部分/步骤的列,“fails”是包含失败复选框的列的命名范围,“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

如果有一种方法可以让这种情况发生,涉及到一个宏或不同的解决方案,我会全力以赴。我感谢大家对此的帮助。

4

1 回答 1

0

OFFSET不能在整列上工作,因此您应该将命名范围更改为实际的单元格范围。使fails(和其他范围)相等=Testing!$R$1:$R$10000(您可以通过按 CTRL+F3 来编辑它),这使它对我有用。

但是再进一步测试一下,如果有同名的测试/步骤,这个公式就会中断,比如25. Enter City/equivalent,因为“历史”查找依赖于从上一个找到的测试的名称开始。

我建议使用稍微不同的方法,TRUE通过在执行摘要工作表中添加一个实用程序列(我使用 H 列)来缩小每次找到后的范围。

在 Step 和 Notes 列中,使用

=IFERROR(INDEX(tests,$H57),"")
=IFERROR(INDEX(notes,$H57),"")

并在新列中,在第一个单元格(H57)中,将=MATCH(TRUE,fails,0)和 在以下行中,

=MATCH(TRUE,OFFSET(fails,$H57,0),0)+$H57

这应该可以解决问题。

编辑:我故意不在IFERROR后一栏中使用,以便在需要时进行调试会更容易。

于 2012-10-10T14:00:37.587 回答