Excel - 匹配来自选项列表的子字符串 - INDEX,MATCH和FIND一起使用


Answers

在我看来,这不能单靠公式来解决。
使用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)
Question

我想在视频标题列表中搜索特定的电影标题,搜索MATCH,并使用索引返回其描述。 我知道这可以通过列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

例:

A                                    B
Title                               Description
Spiderman Review and BTS       
Best Dark Knight clips
Bloopers: Liar Liar
Interviews with The Departed cast

.1996多个视频标题

在另外两栏中,我有标题和说明:

    E                                 F
Title                             Description
Dark Knight                       Dark Knight Description   
Spiderman                         Spider Man Description
The Departed                      The Departed    
Liar Liar                         Liar Liar Description

... 46更多的电影标题和描述

编辑:添加更多的视频标题:

Row   A (video titles)          B (description)
48   Titanic romantic scenes 
49   Dumb and Dumber bloopers
50   BTS Schindler's List
51   Story behind Get Out movie
52   Who are the X-Men?

在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是否从列表中返回ANY匹配,然后使用INDEX返回描述。 但是这个公式不起作用。 我哪里做错了?