我想在视频节目列表中搜索特定的电影标题,搜索MATCH,并使用Index返回其描述。我知道这可以通过A列过滤器中的文本搜索来完成,但我想用公式来做。
**编辑:我认为这个问题的第一个版本让我觉得我只有几部电影和头衔。这些统计信息可能有所帮助
Column A: 2,000 Total Video Titles (movie titles can appear more than once)
Column E: 50 Movie Titles
Column F: 50 Movie Descriptions
例:
Video titles (2000) Movie Titles Movie Description
Spiderman Review and BTS Spiderman Spiderman_description
Dark Knight clips Star Wars Star Wars_description
Fun Fact Star Wars Dark Knight Dark Night_description
Why I love Dark Knight
Dark Knight highlight
Always watch dark knight alone
在B2中,我可以输入
=if(isnumber(find("Spiderman",A2)),index(F2:F4,match("Spiderman",E2:E4,0)))
然后我可以为每部电影重复这个公式,但到目前为止,完整列表超过50部电影。我想创建这样的东西:
{Index($F$2:$F$4,match(TRUE,isnumber(find($E$2:$E$4,A2)),0))}
这样,我搜索A2以查看FIND是否从列表返回任何匹配,然后使用INDEX返回描述。但这个公式不起作用。我哪里做错了?
在我看来,单靠公式无法解决这个问题。 使用VBA可能会。
首先,添加一个新模块。
其次,添加以下功能:
Function GetRow(xCell As Range, xRange As Range)
i = 2
Do
If Cells(i, xRange.Column).Value = "" Then
Exit Do
ElseIf InStr(1, Cells(xCell.Row, xCell.Column).Value, Cells(i, xRange.Column).Value) > 0 Then
GetRow = Cells(i, xRange.Column + 1).Value
End If
i = i + 1
Loop
End Function
第三,在B列的所有行中添加公式:
=GetRow($A7; E:E)