2017-02-10 67 views
2

问题:如何在包含值的行中查找所有单元格引用,并将它们显示在一个单元格中?

我有我使用用于使用进行质量检查测试例数列一个相当大的需求跟踪矩阵Excel表,和用于要求的行。我已经提供了通过在每个行使用COUNTIF为“x”请求req旁边的单元格来显示已针对单个需求使用的测试用例的数量的能力。虽然这会显示针对该要求所做的测试次数,但它并不显示实际使用的QA测试用例编号。这有时需要用户向左/向右滚动才能找到针对该需求使用的确切测试用例编号(在列标题中)。

  • 例如:Req 2.1.1显示“5”作为对其使用的测试用例的数量。用户必须向右滚动,直到找到单元格中的所有X,然后记下/记住它所在列中的QA编号。

我已经添加了屏幕截图以帮助显示我的意思。 RTM Example

我正在寻找:我想

增加一列旁边的“E”(一个计数X的),将显示每一个QA测试案例数(列标题G5:HR5)对于给定的要求/行具有“X”。例如:要求1.1.2在该行中有四个x,表示用于此要求的四种不同的测试用例(QA-466,QA-467,QA-468和QA-470)。我想在1.1.2要求显示“QA-466 QA-467 QA-468 QA-470”的某一行有一个单元格。

我有一种感觉,我需要更多的隐藏单元来运行一些公式来完成这项工作,而且我会在某些时候使用REFERENCE和OFFSET ...但是在哪里以及如何?

+0

你用什么excel? Office 365 Excel具有TEXTJOIN()函数,它将执行您所需的操作。 –

+1

下面是类似的东西,它是垂直不水平的,但应该稍微修改一下。 HTTP://计算器。com/questions/39532189/vlookup-with-multiple-criteria-returns-values-in-one-cell –

+0

@ScottCraner哎呀,意在添加!我正在使用Excel 2016(O365 ProPlus)。 TEXTJOIN()看起来像我用的东西,但首先我需要收集所有首先使用的QA编号。 –

回答

3

如果您有Office 365 Excel中,使用TEXTJOIN()在F9数组公式:

=TEXTJOIN(" ",TRUE,IF(G9:HR9="x",$G$5:$HR$5,"")) 

作为它需要被证实数组公式按Ctrl-Shift键输入,而不是退出编辑时输入模式。如果正确完成,Excel将在公式周围放置{}

小例子:

enter image description here


注意

TEXTJOIN Office 365中的Excel进行了介绍。

如果您没有TEXTJOIN功能,请将以下内容放入附加到工作簿的模块中。并使用上面描述的公式:

Function TEXTJOIN(delim As String, skipblank As Boolean, arr) 
    Dim d As Long 
    Dim c As Long 
    Dim arr2() 
    Dim t As Long, y As Long 
    t = -1 
    y = -1 
    If TypeName(arr) = "Range" Then 
     arr2 = arr.Value 
    Else 
     arr2 = arr 
    End If 
    On Error Resume Next 
    t = UBound(arr2, 2) 
    y = UBound(arr2, 1) 
    On Error GoTo 0 

    If t >= 0 And y >= 0 Then 
     For c = LBound(arr2, 1) To UBound(arr2, 1) 
      For d = LBound(arr2, 1) To UBound(arr2, 2) 
       If arr2(c, d) <> "" Or Not skipblank Then 
        TEXTJOIN = TEXTJOIN & arr2(c, d) & delim 
       End If 
      Next d 
     Next c 
    Else 
     For c = LBound(arr2) To UBound(arr2) 
      If arr2(c) <> "" Or Not skipblank Then 
       TEXTJOIN = TEXTJOIN & arr2(c) & delim 
      End If 
     Next c 
    End If 
    TEXTJOIN2 = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) 
End Function 
+0

绝对美妙 - 完美运作!非常非常感谢你。我正在查看以前的垂直修复链接,并试图弄清楚如何处理上面刚刚回答的IF(G9:HR9 =“x”,$ G $ 5:$ HR $ 5,“”)。 –

相关问题