2017-01-10 80 views
1

如何根据列值为True?得到“应用程序类型”的连接列表 - 我的列标题 - 。可能有几种应用程序类型。根据查找值和多个查找值获取范围内的标题值

请看到这一点:

enter image description here

的目标是把应用程序类型的数据合并到一列。例如。对于示例中的第1行,输出将是Application 1,Application 2

+0

您正在使用哪个版本的excel? – CallumDA

+0

我正在使用Excel 2013. –

+0

哦,无聊,我只是敲了一个INDEX MATCH,但只做第一个'TRUE'我要去查询项目1上的2个TRUES,但看到'可能有几个应用程序类型'。去一些VBA。在我放弃运营模块之前,我希望看到一些编码工作。 –

回答

2

如果您乐于使用VBA,则可以使用UDF(用户定义函数)来实现此目的。我嘲笑你设置的简单版本:

enter image description here

在单元格中公式H2只是需要两个范围,当前行和标题(这需要一个绝对的参考,让您可以向下拖动公式)

=GetHeaders(B2:F2,$B$1:$F$1) 

为了能够使用此功能,您将需要导航到VBA编辑器,添加一个新的模块,并在此代码粘贴:

Public Function GetHeaders(dataRow As Range, headers As Range) 
    Dim i As Long 
    Dim result As String, split As String 

    split = ", " 

    For i = 1 To dataRow.Columns.Count 
     If dataRow.Cells(1, i).Value = True Then 
      result = result & headers.Cells(1, i).Value & split 
     End If 
    Next i 

    GetHeaders = Left(result, Len(result) - Len(split)) 
End Function 

这是非常直接的,所以尽量确保您在使用之前了解代码

+0

谢谢CallumDA,工作! –

+0

嗨CallumDA, 我试过了,但如果我要使用GetHeaders公式,我不能存储宏,并无法使用sub和end sub做到这一点,因此,它不能连续使用。 有没有办法做到这一点? –

+0

为什么这需要成为一个子?它的作品,对吧? – CallumDA