如何找到子串位于数组

时间:2015-11-02 17:47:55

标签: excel excel-formula

我正在尝试编写一个搜索歌词列表并识别歌曲名称和艺术家的功能。这就是表格的样子:

编辑:图1 - "工作表1"

使用搜索字段,它当前能够确定查询是否存在于给定的歌词中。这就是它的样子,以及我用来证明它是否存在的功能:

编辑:图2 - "工作表2"

(" Lyrics"是包含所有歌词的数组范围。)

现在,我基本上需要获取查询所在的单元格。我希望它能抓住#34;歌曲ID#"与抒情诗有关。

编辑:虽然数据全部在工作表1中,但该功能将在工作表2的E4中。

2 个答案:

答案 0 :(得分:2)

试试这个:

=INDEX(A:A,MATCH(B5,D:D,))

<强>更新

事实证明,大多数单元格中的文本都是数千个字符。

如果匹配在击中超过255个字符的元素时没有匹配,则MATCH失败。

另一种有效的公式是:

=INDEX(SongID,MATCH(1,--ISNUMBER(SEARCH(B4,Lyrics)),))
  

这是一个数组公式,必须使用 Ctrl + Shift + Enter 确认。

答案 1 :(得分:1)

请尝试:

#pragma omp for schedule(static)

请注意,如果搜索字词出现在多首歌曲中,则只返回匹配的第一个#pragma omp for static

SO33483743 example

最后泄露了工作表名称:

=INDEX(A:A,MATCH("*"&B5&"*",D:D,0))
相关问题