2017-01-10 55 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