根据具有多个查找值的查找值从范围中获取标头值

时间:2017-01-10 08:03:13

标签: excel vba excel-vba excel-formula

如何根据列值SET !TIMEOUT_STEP 1 SET !ERRORIGNORE YES TAG POS=1 TYPE=A ATTR=TXT:invite TAG POS=3 TYPE=A ATTR=TXT:SeeMore SET !ERRORIGNORE NO SET !TIMEOUT_STEP 6 获取“应用程序类型”的连锁列表 - 我的列标题?可能有一些应用程序类型。

请参阅:

enter image description here

目标是将应用程序类型数据放入一列。例如。对于示例中的第1行,输出将为True

1 个答案:

答案 0 :(得分: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

这很简单,所以在使用之前一定要确保你理解代码