如何根据列值为True
?得到“应用程序类型”的连接列表 - 我的列标题 - 。可能有几种应用程序类型。根据查找值和多个查找值获取范围内的标题值
请看到这一点:
的目标是把应用程序类型的数据合并到一列。例如。对于示例中的第1行,输出将是Application 1,Application 2
。
如何根据列值为True
?得到“应用程序类型”的连接列表 - 我的列标题 - 。可能有几种应用程序类型。根据查找值和多个查找值获取范围内的标题值
请看到这一点:
的目标是把应用程序类型的数据合并到一列。例如。对于示例中的第1行,输出将是Application 1,Application 2
。
如果您乐于使用VBA,则可以使用UDF(用户定义函数)来实现此目的。我嘲笑你设置的简单版本:
在单元格中公式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
这是非常直接的,所以尽量确保您在使用之前了解代码
谢谢CallumDA,工作! –
嗨CallumDA, 我试过了,但如果我要使用GetHeaders公式,我不能存储宏,并无法使用sub和end sub做到这一点,因此,它不能连续使用。 有没有办法做到这一点? –
为什么这需要成为一个子?它的作品,对吧? – CallumDA
您正在使用哪个版本的excel? – CallumDA
我正在使用Excel 2013. –
哦,无聊,我只是敲了一个INDEX MATCH,但只做第一个'TRUE'我要去查询项目1上的2个TRUES,但看到'可能有几个应用程序类型'。去一些VBA。在我放弃运营模块之前,我希望看到一些编码工作。 –