我试图在单元格中输入某个值,在表格中搜索该值(垂直和水平),然后返回包含该值的列的列标题。我的公式有效,但它只返回1列标题,我需要它返回多个
公式:
{=INDEX(Sheet2!A1:J31,,MAX(IF(Sheet2!A1:J31=B2,COLUMN(Sheet2!A1:J1)-COLUMN(Sheet2!A1)+1)))}
答案 0 :(得分:1)
我不知道内置的Excel公式可以做到这一点,但这可以通过用户定义的函数来完成。
这是一个示例数据集,显示结果和使用的公式:
以下是用户定义函数的代码:
Function SearchColumns(SearchValue As String, SearchRange As Range, Delimiter As String) As String
SearchColumns = ""
Dim counter As Integer
For i = 1 To SearchRange.Columns.Count
counter = 0
For j = 1 To SearchRange.Rows.Count
If SearchRange.Cells(j, i).Value = SearchValue Then
counter = counter + 1
End If
Next j
If counter > 0 Then
SearchColumns = SearchColumns + SearchRange.Cells(1, i).Value + Delimiter + " "
End If
Next i
SearchColumns = Left(SearchColumns, Len(SearchColumns) - 2)
End Function
Function SearchRows(SearchValue As String, SearchRange As Range, Delimiter As String) As String
SearchRows = ""
Dim counter As Integer
For i = 1 To SearchRange.Rows.Count
counter = 0
For j = 1 To SearchRange.Columns.Count
If SearchRange.Cells(i, j).Value = SearchValue Then
counter = counter + 1
End If
Next j
If counter > 0 Then
SearchRows = SearchRows + SearchRange.Cells(i, 1).Value + Delimiter + " "
End If
Next i
SearchRows = Left(SearchRows, Len(SearchRows) - 2)
End Function