我需要做的是,在另一张纸上,根据选择了人名的下拉框的值(即测试1,测试2等等),对表执行查找,并在下拉列表旁边的单元格中返回单元格中的值为Y的标题。
例如,根据上表,如果从下拉列表中选择了测试1,则返回的值应为
技能1,技能4
对此的任何建议都将非常感激。我试图按照this post上的答案中的说明进行操作但未成功。
答案 0 :(得分:1)
尝试以下 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
因此,使用 Sheet1 中的数据,将下拉列入 Sheet2 单元格 B1 和 Sheet2 单元 A1 输入:
=GetHeaders(B1,Sheet1!A1:F5)
注意:我们传递整个表格,包括标题行/列。