2015-10-02 4 views
1

У меня есть таблица в Excel, которая настроена следующим образом; tABLE LAYOUTМне нужно вернуть несколько столбцов столбцов из таблицы на основе значений ячеек в строке

Что мне нужно, чтобы быть в состоянии сделать, это на другом листе, на основе значения выпадающего списка, где выбирается имя человека (т.е. Test 1, Тест 2, и т.д ...), выполните поиск по таблице и в ячейке рядом с выпадающим списком возвращают заголовки, где значение в ячейке равно Y.

Например, в соответствии с приведенной выше таблицей, если из выпадающего списка был выбран тест 1, Возвращаемое значение должно быть

навык 1, навык 4

Любые советы по этому вопросу будут высоко оценены. Я попытался выполнить инструкции в ответе на this post, но не увенчался успехом.

ответ

0

Попробуйте следующее UDF():

Public Function GetHeaders(r1 As Range, r2 As Range) As String 
    Dim r As Range, s As String, rr As Range, rTOP As Range 
    GetHeaders = "" 
    s = r1.Text 
    Set rTOP = r2.Rows(1).Cells 

    For Each r In r2.Columns(1).Cells 
     If r.Value = s Then 
     For Each rr In Intersect(r.EntireRow, r2).Cells 
      If rr.Value = "Y" Then 
       GetHeaders = GetHeaders & "," & Intersect(rr.EntireColumn, rTOP).Value 
      End If 
     Next rr 
     End If 
    Next r 
    GetHeaders = Mid(GetHeaders, 2) 
End Function 

Так с данными в Лист1, положить выпадающее в Sheet2 клеток B1 и в Sheet2 клеток A1 Ввод:

=GetHeaders(B1,Sheet1!A1:F5) 

enter image description here

УВЕДОМЛЕНИЕ: Мы передаем всю таблицу, включая строки/столбцы заголовков.

+0

Блестящий, спасибо. – theKingCat

+0

@ theKingCat Добро пожаловать! –